Third batch going up...
unlike T3Q'sdick that goes left side
@ -6,7 +6,6 @@ Description:
|
|||||||
|
|
||||||
Since Kernel 5.11, multiple buffers are supported.
|
Since Kernel 5.11, multiple buffers are supported.
|
||||||
so, it is better to use, instead:
|
so, it is better to use, instead:
|
||||||
|
|
||||||
/sys/bus/iio/devices/iio:deviceX/bufferY/length
|
/sys/bus/iio/devices/iio:deviceX/bufferY/length
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/buffer/enable
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/enable
|
||||||
@ -18,7 +17,6 @@ Description:
|
|||||||
|
|
||||||
Since Kernel 5.11, multiple buffers are supported.
|
Since Kernel 5.11, multiple buffers are supported.
|
||||||
so, it is better to use, instead:
|
so, it is better to use, instead:
|
||||||
|
|
||||||
/sys/bus/iio/devices/iio:deviceX/bufferY/enable
|
/sys/bus/iio/devices/iio:deviceX/bufferY/enable
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/scan_elements
|
What: /sys/bus/iio/devices/iio:deviceX/scan_elements
|
||||||
@ -167,7 +165,6 @@ Description:
|
|||||||
|
|
||||||
Since Kernel 5.11, multiple buffers are supported.
|
Since Kernel 5.11, multiple buffers are supported.
|
||||||
so, it is better to use, instead:
|
so, it is better to use, instead:
|
||||||
|
|
||||||
/sys/bus/iio/devices/iio:deviceX/bufferY/watermark
|
/sys/bus/iio/devices/iio:deviceX/bufferY/watermark
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/buffer/data_available
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/data_available
|
||||||
@ -182,5 +179,4 @@ Description:
|
|||||||
|
|
||||||
Since Kernel 5.11, multiple buffers are supported.
|
Since Kernel 5.11, multiple buffers are supported.
|
||||||
so, it is better to use, instead:
|
so, it is better to use, instead:
|
||||||
|
|
||||||
/sys/bus/iio/devices/iio:deviceX/bufferY/data_available
|
/sys/bus/iio/devices/iio:deviceX/bufferY/data_available
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/fs/o2cb/
|
What: /sys/fs/o2cb/ (was /sys/o2cb)
|
||||||
Date: Dec 2005
|
Date: Dec 2005
|
||||||
KernelVersion: 2.6.16
|
KernelVersion: 2.6.16
|
||||||
Contact: ocfs2-devel@oss.oracle.com
|
Contact: ocfs2-devel@oss.oracle.com
|
||||||
|
@ -232,10 +232,10 @@ Description: The RoCE type of the associated GID resides at index <gid-index>.
|
|||||||
or "RoCE v2" for RoCE v2 based GIDs.
|
or "RoCE v2" for RoCE v2 based GIDs.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/infiniband_mad/umad<N>/ibdev
|
What: /sys/class/infiniband_mad/umadN/ibdev
|
||||||
What: /sys/class/infiniband_mad/umad<N>/port
|
What: /sys/class/infiniband_mad/umadN/port
|
||||||
What: /sys/class/infiniband_mad/issm<N>/ibdev
|
What: /sys/class/infiniband_mad/issmN/ibdev
|
||||||
What: /sys/class/infiniband_mad/issm<N>/port
|
What: /sys/class/infiniband_mad/issmN/port
|
||||||
Date: Apr, 2005
|
Date: Apr, 2005
|
||||||
KernelVersion: v2.6.12
|
KernelVersion: v2.6.12
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -261,8 +261,8 @@ Description:
|
|||||||
userspace ABI compatibility of umad & issm devices.
|
userspace ABI compatibility of umad & issm devices.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/infiniband_verbs/uverbs<N>/ibdev
|
What: /sys/class/infiniband_verbs/uverbsN/ibdev
|
||||||
What: /sys/class/infiniband_verbs/uverbs<N>/abi_version
|
What: /sys/class/infiniband_verbs/uverbsN/abi_version
|
||||||
Date: Sept, 2005
|
Date: Sept, 2005
|
||||||
KernelVersion: v2.6.14
|
KernelVersion: v2.6.14
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -471,7 +471,7 @@ Description:
|
|||||||
=============== ======================================================
|
=============== ======================================================
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/sl2vl/[0-15]
|
What: /sys/class/infiniband/qibX/ports/N/sl2vl/[0-15]
|
||||||
Date: May, 2010
|
Date: May, 2010
|
||||||
KernelVersion: v2.6.35
|
KernelVersion: v2.6.35
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -480,8 +480,8 @@ Description:
|
|||||||
the Service Level (SL). Listing the SL files returns the Virtual
|
the Service Level (SL). Listing the SL files returns the Virtual
|
||||||
Lane (VL) as programmed by the SL.
|
Lane (VL) as programmed by the SL.
|
||||||
|
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_settings_bin
|
What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_settings_bin
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_table_bin
|
What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_table_bin
|
||||||
Date: May, 2010
|
Date: May, 2010
|
||||||
KernelVersion: v2.6.35
|
KernelVersion: v2.6.35
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -499,11 +499,11 @@ Description:
|
|||||||
delay.
|
delay.
|
||||||
=============== ================================================
|
=============== ================================================
|
||||||
|
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/loopback
|
What: /sys/class/infiniband/qibX/ports/N/linkstate/loopback
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/led_override
|
What: /sys/class/infiniband/qibX/ports/N/linkstate/led_override
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/hrtbt_enable
|
What: /sys/class/infiniband/qibX/ports/N/linkstate/hrtbt_enable
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/status
|
What: /sys/class/infiniband/qibX/ports/N/linkstate/status
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/linkstate/status_str
|
What: /sys/class/infiniband/qibX/ports/N/linkstate/status_str
|
||||||
Date: May, 2010
|
Date: May, 2010
|
||||||
KernelVersion: v2.6.35
|
KernelVersion: v2.6.35
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -523,16 +523,16 @@ Description:
|
|||||||
"Fatal_Hardware_Error".
|
"Fatal_Hardware_Error".
|
||||||
=============== ===============================================
|
=============== ===============================================
|
||||||
|
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_resends
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_resends
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/seq_naks
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/seq_naks
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rdma_seq
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rdma_seq
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rnr_naks
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rnr_naks
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/other_naks
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/other_naks
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_timeouts
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_timeouts
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/look_pkts
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/look_pkts
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/pkt_drops
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/pkt_drops
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/dma_wait
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/dma_wait
|
||||||
What: /sys/class/infiniband/qibX/ports/<N>/diag_counters/unaligned
|
What: /sys/class/infiniband/qibX/ports/N/diag_counters/unaligned
|
||||||
Date: May, 2010
|
Date: May, 2010
|
||||||
KernelVersion: v2.6.35
|
KernelVersion: v2.6.35
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -650,9 +650,9 @@ Description:
|
|||||||
=============== =============================================
|
=============== =============================================
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_settings_bin
|
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_settings_bin
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_table_bin
|
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_table_bin
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_prescan
|
What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_prescan
|
||||||
Date: May, 2016
|
Date: May, 2016
|
||||||
KernelVersion: v4.6
|
KernelVersion: v4.6
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -675,9 +675,9 @@ Description:
|
|||||||
disable.
|
disable.
|
||||||
=============== ================================================
|
=============== ================================================
|
||||||
|
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/sc2vl/[0-31]
|
What: /sys/class/infiniband/hfi1_X/ports/N/sc2vl/[0-31]
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/sl2sc/[0-31]
|
What: /sys/class/infiniband/hfi1_X/ports/N/sl2sc/[0-31]
|
||||||
What: /sys/class/infiniband/hfi1_X/ports/<N>/vl2mtu/[0-15]
|
What: /sys/class/infiniband/hfi1_X/ports/N/vl2mtu/[0-15]
|
||||||
Date: May, 2016
|
Date: May, 2016
|
||||||
KernelVersion: v4.6
|
KernelVersion: v4.6
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
@ -691,8 +691,8 @@ Description:
|
|||||||
=============== ===================================================
|
=============== ===================================================
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/infiniband/hfi1_X/sdma_<N>/cpu_list
|
What: /sys/class/infiniband/hfi1_X/sdma_N/cpu_list
|
||||||
What: /sys/class/infiniband/hfi1_X/sdma_<N>/vl
|
What: /sys/class/infiniband/hfi1_X/sdma_N/vl
|
||||||
Date: Sept, 2016
|
Date: Sept, 2016
|
||||||
KernelVersion: v4.8
|
KernelVersion: v4.8
|
||||||
Contact: linux-rdma@vger.kernel.org
|
Contact: linux-rdma@vger.kernel.org
|
||||||
|
@ -195,7 +195,7 @@ Description: The "tpm_version_major" property shows the TCG spec major version
|
|||||||
|
|
||||||
2
|
2
|
||||||
|
|
||||||
What: /sys/class/tpm/tpmX/pcr-<H>/<N>
|
What: /sys/class/tpm/tpmX/pcr-H/N
|
||||||
Date: March 2021
|
Date: March 2021
|
||||||
KernelVersion: 5.12
|
KernelVersion: 5.12
|
||||||
Contact: linux-integrity@vger.kernel.org
|
Contact: linux-integrity@vger.kernel.org
|
||||||
|
@ -23,10 +23,3 @@ Contact: Device Tree mailing list <devicetree@vger.kernel.org>
|
|||||||
Description:
|
Description:
|
||||||
If CONFIG_OF is enabled, then this file is present. When
|
If CONFIG_OF is enabled, then this file is present. When
|
||||||
read, it returns full name of the device node.
|
read, it returns full name of the device node.
|
||||||
|
|
||||||
What: /sys/devices/*/dev
|
|
||||||
Date: Jun 2006
|
|
||||||
Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Description:
|
|
||||||
Major and minor numbers of the character device corresponding
|
|
||||||
to the device (in <major>:<minor> format).
|
|
||||||
|
@ -176,9 +176,3 @@ Contact: Keith Busch <keith.busch@intel.com>
|
|||||||
Description:
|
Description:
|
||||||
The cache write policy: 0 for write-back, 1 for write-through,
|
The cache write policy: 0 for write-back, 1 for write-through,
|
||||||
other or unknown.
|
other or unknown.
|
||||||
|
|
||||||
What: /sys/devices/system/node/nodeX/x86/sgx_total_bytes
|
|
||||||
Date: November 2021
|
|
||||||
Contact: Jarkko Sakkinen <jarkko@kernel.org>
|
|
||||||
Description:
|
|
||||||
The total amount of SGX physical memory in bytes.
|
|
||||||
|
@ -42,12 +42,6 @@ Description: the CPU core ID of cpuX. Typically it is the hardware platform's
|
|||||||
architecture and platform dependent.
|
architecture and platform dependent.
|
||||||
Values: integer
|
Values: integer
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/cluster_id
|
|
||||||
Description: the cluster ID of cpuX. Typically it is the hardware platform's
|
|
||||||
identifier (rather than the kernel's). The actual value is
|
|
||||||
architecture and platform dependent.
|
|
||||||
Values: integer
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/book_id
|
What: /sys/devices/system/cpu/cpuX/topology/book_id
|
||||||
Description: the book ID of cpuX. Typically it is the hardware platform's
|
Description: the book ID of cpuX. Typically it is the hardware platform's
|
||||||
identifier (rather than the kernel's). The actual value is
|
identifier (rather than the kernel's). The actual value is
|
||||||
@ -91,15 +85,6 @@ Description: human-readable list of CPUs within the same die.
|
|||||||
The format is like 0-3, 8-11, 14,17.
|
The format is like 0-3, 8-11, 14,17.
|
||||||
Values: decimal list.
|
Values: decimal list.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/cluster_cpus
|
|
||||||
Description: internal kernel map of CPUs within the same cluster.
|
|
||||||
Values: hexadecimal bitmask.
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/cluster_cpus_list
|
|
||||||
Description: human-readable list of CPUs within the same cluster.
|
|
||||||
The format is like 0-3, 8-11, 14,17.
|
|
||||||
Values: decimal list.
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/book_siblings
|
What: /sys/devices/system/cpu/cpuX/topology/book_siblings
|
||||||
Description: internal kernel map of cpuX's hardware threads within the same
|
Description: internal kernel map of cpuX's hardware threads within the same
|
||||||
book_id. it's only used on s390.
|
book_id. it's only used on s390.
|
||||||
|
@ -41,14 +41,14 @@ KernelVersion: 5.6.0
|
|||||||
Contact: dmaengine@vger.kernel.org
|
Contact: dmaengine@vger.kernel.org
|
||||||
Description: The maximum number of groups can be created under this device.
|
Description: The maximum number of groups can be created under this device.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/dsa<m>/max_read_buffers
|
What: /sys/bus/dsa/devices/dsa<m>/max_tokens
|
||||||
Date: Dec 10, 2021
|
Date: Oct 25, 2019
|
||||||
KernelVersion: 5.17.0
|
KernelVersion: 5.6.0
|
||||||
Contact: dmaengine@vger.kernel.org
|
Contact: dmaengine@vger.kernel.org
|
||||||
Description: The total number of read buffers supported by this device.
|
Description: The total number of bandwidth tokens supported by this device.
|
||||||
The read buffers represent resources within the DSA
|
The bandwidth tokens represent resources within the DSA
|
||||||
implementation, and these resources are allocated by engines to
|
implementation, and these resources are allocated by engines to
|
||||||
support operations. See DSA spec v1.2 9.2.4 Total Read Buffers.
|
support operations.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/dsa<m>/max_transfer_size
|
What: /sys/bus/dsa/devices/dsa<m>/max_transfer_size
|
||||||
Date: Oct 25, 2019
|
Date: Oct 25, 2019
|
||||||
@ -115,13 +115,13 @@ KernelVersion: 5.6.0
|
|||||||
Contact: dmaengine@vger.kernel.org
|
Contact: dmaengine@vger.kernel.org
|
||||||
Description: To indicate if this device is configurable or not.
|
Description: To indicate if this device is configurable or not.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/dsa<m>/read_buffer_limit
|
What: /sys/bus/dsa/devices/dsa<m>/token_limit
|
||||||
Date: Dec 10, 2021
|
Date: Oct 25, 2019
|
||||||
KernelVersion: 5.17.0
|
KernelVersion: 5.6.0
|
||||||
Contact: dmaengine@vger.kernel.org
|
Contact: dmaengine@vger.kernel.org
|
||||||
Description: The maximum number of read buffers that may be in use at
|
Description: The maximum number of bandwidth tokens that may be in use at
|
||||||
one time by operations that access low bandwidth memory in the
|
one time by operations that access low bandwidth memory in the
|
||||||
device. See DSA spec v1.2 9.2.8 GENCFG on Global Read Buffer Limit.
|
device.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/dsa<m>/cmd_status
|
What: /sys/bus/dsa/devices/dsa<m>/cmd_status
|
||||||
Date: Aug 28, 2020
|
Date: Aug 28, 2020
|
||||||
@ -220,38 +220,8 @@ Contact: dmaengine@vger.kernel.org
|
|||||||
Description: Show the current number of entries in this WQ if WQ Occupancy
|
Description: Show the current number of entries in this WQ if WQ Occupancy
|
||||||
Support bit WQ capabilities is 1.
|
Support bit WQ capabilities is 1.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/wq<m>.<n>/enqcmds_retries
|
|
||||||
Date Oct 29, 2021
|
|
||||||
KernelVersion: 5.17.0
|
|
||||||
Contact: dmaengine@vger.kernel.org
|
|
||||||
Description: Indicate the number of retires for an enqcmds submission on a sharedwq.
|
|
||||||
A max value to set attribute is capped at 64.
|
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/engine<m>.<n>/group_id
|
What: /sys/bus/dsa/devices/engine<m>.<n>/group_id
|
||||||
Date: Oct 25, 2019
|
Date: Oct 25, 2019
|
||||||
KernelVersion: 5.6.0
|
KernelVersion: 5.6.0
|
||||||
Contact: dmaengine@vger.kernel.org
|
Contact: dmaengine@vger.kernel.org
|
||||||
Description: The group that this engine belongs to.
|
Description: The group that this engine belongs to.
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/group<m>.<n>/use_read_buffer_limit
|
|
||||||
Date: Dec 10, 2021
|
|
||||||
KernelVersion: 5.17.0
|
|
||||||
Contact: dmaengine@vger.kernel.org
|
|
||||||
Description: Enable the use of global read buffer limit for the group. See DSA
|
|
||||||
spec v1.2 9.2.18 GRPCFG Use Global Read Buffer Limit.
|
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_allowed
|
|
||||||
Date: Dec 10, 2021
|
|
||||||
KernelVersion: 5.17.0
|
|
||||||
Contact: dmaengine@vger.kernel.org
|
|
||||||
Description: Indicates max number of read buffers that may be in use at one time
|
|
||||||
by all engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read
|
|
||||||
Buffers Allowed.
|
|
||||||
|
|
||||||
What: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_reserved
|
|
||||||
Date: Dec 10, 2021
|
|
||||||
KernelVersion: 5.17.0
|
|
||||||
Contact: dmaengine@vger.kernel.org
|
|
||||||
Description: Indicates the number of Read Buffers reserved for the use of
|
|
||||||
engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read Buffers
|
|
||||||
Reserved.
|
|
||||||
|
@ -223,247 +223,3 @@ Description: These files show with which CPLD part numbers and minor
|
|||||||
system.
|
system.
|
||||||
|
|
||||||
The files are read only.
|
The files are read only.
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/bios_active_image
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/bios_auth_fail
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/bios_upgrade_fail
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: The files represent BIOS statuses:
|
|
||||||
|
|
||||||
bios_active_image: location of current active BIOS image:
|
|
||||||
0: Top, 1: Bottom.
|
|
||||||
The reported value should correspond to value expected by OS
|
|
||||||
in case of BIOS safe mode is 0. This bit is related to Intel
|
|
||||||
top-swap feature of DualBios on the same flash.
|
|
||||||
|
|
||||||
bios_auth_fail: BIOS upgrade is failed because provided BIOS
|
|
||||||
image is not signed correctly.
|
|
||||||
|
|
||||||
bios_upgrade_fail: BIOS upgrade is failed by some other
|
|
||||||
reason not because authentication. For example due to
|
|
||||||
physical SPI flash problem.
|
|
||||||
|
|
||||||
The files are read only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc1_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc2_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc3_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc4_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc5_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc6_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc7_enable
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc8_enable
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files allow line cards enable state control.
|
|
||||||
Expected behavior:
|
|
||||||
When lc{n}_enable is written 1, related line card is released
|
|
||||||
from the reset state, when 0 - is hold in reset state.
|
|
||||||
|
|
||||||
The files are read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc1_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc2_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc3_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc4_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc5_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc6_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc7_pwr
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc8_pwr
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files switching line cards power on and off.
|
|
||||||
Expected behavior:
|
|
||||||
When lc{n}_pwr is written 1, related line card is powered
|
|
||||||
on, when written 0 - powered off.
|
|
||||||
|
|
||||||
The files are read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc1_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc2_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc3_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc4_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc5_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc6_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc7_rst_mask
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/lc8_rst_mask
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files clear line card reset bit enforced by ASIC, when it
|
|
||||||
sets it due to some abnormal ASIC behavior.
|
|
||||||
Expected behavior:
|
|
||||||
When lc{n}_rst_mask is written 1, related line card reset bit
|
|
||||||
is cleared, when written 0 - no effect.
|
|
||||||
|
|
||||||
The files are write only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/os_started
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: This file, when written 1, indicates to programmable devices
|
|
||||||
that OS is taking control over it.
|
|
||||||
|
|
||||||
The file is read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pm_mgmt_en
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: This file assigns power management control ownership.
|
|
||||||
When power management control is provided by hardware, hardware
|
|
||||||
will automatically power off one or more line previously
|
|
||||||
powered line cards in case system power budget is getting
|
|
||||||
insufficient. It could be in case when some of power units lost
|
|
||||||
power good state.
|
|
||||||
When pm_mgmt_en is written 1, power management control by
|
|
||||||
software is enabled, 0 - power management control by hardware.
|
|
||||||
Note that for any setting of pm_mgmt_en attribute hardware will
|
|
||||||
not allow to power on any new line card in case system power
|
|
||||||
budget is insufficient.
|
|
||||||
Same in case software will try to power on several line cards
|
|
||||||
at once - hardware will power line cards while system has
|
|
||||||
enough power budget.
|
|
||||||
Default is 0.
|
|
||||||
|
|
||||||
The file is read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/psu3_on
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/psu4_on
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files switching power supply units on and off.
|
|
||||||
Expected behavior:
|
|
||||||
When psu3_on or psu4_on is written 1, related unit will be
|
|
||||||
disconnected from the power source, when written 0 - connected.
|
|
||||||
|
|
||||||
The files are write only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/shutdown_unlock
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: This file allows to unlock ASIC after thermal shutdown event.
|
|
||||||
When system thermal shutdown is enforced by ASIC, ASIC is
|
|
||||||
getting locked and after system boot it will not be available.
|
|
||||||
Software can decide to unlock it by setting this attribute to
|
|
||||||
1 and then perform system power cycle by setting pwr_cycle
|
|
||||||
attribute to 1 (power cycle of main power domain).
|
|
||||||
Before setting shutdown_unlock to 1 it is recommended to
|
|
||||||
validate that system reboot cause is reset_asic_thermal or
|
|
||||||
reset_thermal_spc_or_pciesw.
|
|
||||||
In case shutdown_unlock is not set 1, the only way to release
|
|
||||||
ASIC from locking - is full system power cycle through the
|
|
||||||
external power distribution unit.
|
|
||||||
Default is 1.
|
|
||||||
|
|
||||||
The file is read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/cpld1_pn
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/cpld1_version
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/cpld1_version_min
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files show with which CPLD major and minor versions
|
|
||||||
and part number has been burned CPLD device on line card.
|
|
||||||
|
|
||||||
The files are read only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/fpga1_pn
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/fpga1_version
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/fpga1_version_min
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files show with which FPGA major and minor versions
|
|
||||||
and part number has been burned FPGA device on line card.
|
|
||||||
|
|
||||||
The files are read only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/vpd_wp
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: This file allow to overwrite line card VPD hardware write
|
|
||||||
protection mode. When attribute is set 1 - write protection is
|
|
||||||
disabled, when 0 - enabled.
|
|
||||||
Default is 0.
|
|
||||||
If the system is in locked-down mode writing this file will not
|
|
||||||
be allowed.
|
|
||||||
The purpose if this file is to allow line card VPD burning
|
|
||||||
during production flow.
|
|
||||||
|
|
||||||
The file is read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_aux_pwr_or_ref
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_dc_dc_pwr_fail
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_fpga_not_done
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_from_chassis
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_line_card
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/reset_pwr_off_from_chassis
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files show the line reset cause, as following: power
|
|
||||||
auxiliary outage or power refresh, DC-to-DC power failure, FPGA reset
|
|
||||||
failed, line card reset failed, power off from chassis.
|
|
||||||
Value 1 in file means this is reset cause, 0 - otherwise. Only one of
|
|
||||||
the above causes could be 1 at the same time, representing only last
|
|
||||||
reset cause.
|
|
||||||
|
|
||||||
The files are read only.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/cpld_upgrade_en
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/fpga_upgrade_en
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files allow CPLD and FPGA burning. Value 1 in file means burning
|
|
||||||
is enabled, 0 - otherwise.
|
|
||||||
If the system is in locked-down mode writing these files will
|
|
||||||
not be allowed.
|
|
||||||
The purpose of these files to allow line card CPLD and FPGA
|
|
||||||
upgrade through the JTAG daisy-chain.
|
|
||||||
|
|
||||||
The files are read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/qsfp_pwr_en
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/pwr_en
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files allow to power on/off all QSFP ports and whole line card.
|
|
||||||
The attributes are set 1 for power on, 0 - for power off.
|
|
||||||
|
|
||||||
The files are read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/agb_spi_burn_en
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/fpga_spi_burn_en
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files allow gearboxes and FPGA SPI flash burning.
|
|
||||||
The attributes are set 1 to enable burning, 0 - to disable.
|
|
||||||
If the system is in locked-down mode writing these files will
|
|
||||||
not be allowed.
|
|
||||||
The purpose of these files to allow line card Gearboxes and FPGA
|
|
||||||
burning during production flow.
|
|
||||||
|
|
||||||
The file is read/write.
|
|
||||||
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/max_power
|
|
||||||
What: /sys/devices/platform/mlxplat/i2c_mlxcpld.*/i2c-*/i2c-*/i2c-*/*-0032/mlxreg-io.*/hwmon/hwmon*/config
|
|
||||||
Date: October 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: Vadim Pasternak <vadimp@nvidia.com>
|
|
||||||
Description: These files provide the maximum powered required for line card
|
|
||||||
feeding and line card configuration Id.
|
|
||||||
|
|
||||||
The files are read only.
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
The /sys/module tree consists of the following structure:
|
What: /sys/module
|
||||||
|
|
||||||
What: /sys/module/<MODULENAME>
|
|
||||||
Description:
|
Description:
|
||||||
|
The /sys/module tree consists of the following structure:
|
||||||
|
|
||||||
|
/sys/module/MODULENAME
|
||||||
The name of the module that is in the kernel. This
|
The name of the module that is in the kernel. This
|
||||||
module name will always show up if the module is loaded as a
|
module name will always show up if the module is loaded as a
|
||||||
dynamic module. If it is built directly into the kernel, it
|
dynamic module. If it is built directly into the kernel, it
|
||||||
@ -11,8 +12,7 @@ Description:
|
|||||||
Note: The conditions of creation in the built-in case are not
|
Note: The conditions of creation in the built-in case are not
|
||||||
by design and may be removed in the future.
|
by design and may be removed in the future.
|
||||||
|
|
||||||
What: /sys/module/<MODULENAME>/parameters
|
/sys/module/MODULENAME/parameters
|
||||||
Description:
|
|
||||||
This directory contains individual files that are each
|
This directory contains individual files that are each
|
||||||
individual parameters of the module that are able to be
|
individual parameters of the module that are able to be
|
||||||
changed at runtime. See the individual module
|
changed at runtime. See the individual module
|
||||||
@ -25,23 +25,10 @@ Description:
|
|||||||
individual driver documentation for details as to the
|
individual driver documentation for details as to the
|
||||||
stability of the different parameters.
|
stability of the different parameters.
|
||||||
|
|
||||||
What: /sys/module/<MODULENAME>/refcnt
|
/sys/module/MODULENAME/refcnt
|
||||||
Description:
|
|
||||||
If the module is able to be unloaded from the kernel, this file
|
If the module is able to be unloaded from the kernel, this file
|
||||||
will contain the current reference count of the module.
|
will contain the current reference count of the module.
|
||||||
|
|
||||||
Note: If the module is built into the kernel, or if the
|
Note: If the module is built into the kernel, or if the
|
||||||
CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
|
CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
|
||||||
this file will not be present.
|
this file will not be present.
|
||||||
|
|
||||||
What: /sys/module/<MODULENAME>/srcversion
|
|
||||||
Date: Jun 2005
|
|
||||||
Description:
|
|
||||||
If the module source has MODULE_VERSION, this file will contain
|
|
||||||
the checksum of the the source code.
|
|
||||||
|
|
||||||
What: /sys/module/<MODULENAME>/version
|
|
||||||
Date: Jun 2005
|
|
||||||
Description:
|
|
||||||
If the module source has MODULE_VERSION, this file will contain
|
|
||||||
the version of the source code.
|
|
||||||
|
@ -4,29 +4,23 @@ KernelVersion: 4.14
|
|||||||
Description:
|
Description:
|
||||||
The attributes:
|
The attributes:
|
||||||
|
|
||||||
===================== =======================================
|
========== ===================================
|
||||||
c_chmask capture channel mask
|
c_chmask capture channel mask
|
||||||
c_srate capture sampling rate
|
c_srate capture sampling rate
|
||||||
c_ssize capture sample size (bytes)
|
c_ssize capture sample size (bytes)
|
||||||
c_mute_present capture mute control enable
|
c_mute_present capture mute control enable
|
||||||
c_volume_present capture volume control enable
|
c_volume_present capture volume control enable
|
||||||
c_volume_min capture volume control min value
|
c_volume_min capture volume control min value (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
c_volume_max capture volume control max value (in 1/256 dB)
|
||||||
c_volume_max capture volume control max value
|
c_volume_res capture volume control resolution (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
|
||||||
c_volume_res capture volume control resolution
|
|
||||||
(in 1/256 dB)
|
|
||||||
p_chmask playback channel mask
|
p_chmask playback channel mask
|
||||||
p_srate playback sampling rate
|
p_srate playback sampling rate
|
||||||
p_ssize playback sample size (bytes)
|
p_ssize playback sample size (bytes)
|
||||||
p_mute_present playback mute control enable
|
p_mute_present playback mute control enable
|
||||||
p_volume_present playback volume control enable
|
p_volume_present playback volume control enable
|
||||||
p_volume_min playback volume control min value
|
p_volume_min playback volume control min value (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
p_volume_max playback volume control max value (in 1/256 dB)
|
||||||
p_volume_max playback volume control max value
|
p_volume_res playback volume control resolution (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
req_number the number of pre-allocated request
|
||||||
p_volume_res playback volume control resolution
|
|
||||||
(in 1/256 dB)
|
|
||||||
req_number the number of pre-allocated requests
|
|
||||||
for both capture and playback
|
for both capture and playback
|
||||||
===================== =======================================
|
========== ===================================
|
||||||
|
@ -4,32 +4,23 @@ KernelVersion: 3.18
|
|||||||
Description:
|
Description:
|
||||||
The attributes:
|
The attributes:
|
||||||
|
|
||||||
===================== =======================================
|
========= ============================
|
||||||
c_chmask capture channel mask
|
c_chmask capture channel mask
|
||||||
c_srate capture sampling rate
|
c_srate capture sampling rate
|
||||||
c_ssize capture sample size (bytes)
|
c_ssize capture sample size (bytes)
|
||||||
c_sync capture synchronization type
|
c_sync capture synchronization type (async/adaptive)
|
||||||
(async/adaptive)
|
|
||||||
c_mute_present capture mute control enable
|
c_mute_present capture mute control enable
|
||||||
c_volume_present capture volume control enable
|
c_volume_present capture volume control enable
|
||||||
c_volume_min capture volume control min value
|
c_volume_min capture volume control min value (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
c_volume_max capture volume control max value (in 1/256 dB)
|
||||||
c_volume_max capture volume control max value
|
c_volume_res capture volume control resolution (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
|
||||||
c_volume_res capture volume control resolution
|
|
||||||
(in 1/256 dB)
|
|
||||||
fb_max maximum extra bandwidth in async mode
|
fb_max maximum extra bandwidth in async mode
|
||||||
p_chmask playback channel mask
|
p_chmask playback channel mask
|
||||||
p_srate playback sampling rate
|
p_srate playback sampling rate
|
||||||
p_ssize playback sample size (bytes)
|
p_ssize playback sample size (bytes)
|
||||||
p_mute_present playback mute control enable
|
p_mute_present playback mute control enable
|
||||||
p_volume_present playback volume control enable
|
p_volume_present playback volume control enable
|
||||||
p_volume_min playback volume control min value
|
p_volume_min playback volume control min value (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
p_volume_max playback volume control max value (in 1/256 dB)
|
||||||
p_volume_max playback volume control max value
|
p_volume_res playback volume control resolution (in 1/256 dB)
|
||||||
(in 1/256 dB)
|
========= ============================
|
||||||
p_volume_res playback volume control resolution
|
|
||||||
(in 1/256 dB)
|
|
||||||
req_number the number of pre-allocated requests
|
|
||||||
for both capture and playback
|
|
||||||
===================== =======================================
|
|
||||||
|
@ -155,13 +155,6 @@ Description: Triggers an I2C transaction that is generated by the device's
|
|||||||
CPU. Writing to this file generates a write transaction while
|
CPU. Writing to this file generates a write transaction while
|
||||||
reading from the file generates a read transaction
|
reading from the file generates a read transaction
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len
|
|
||||||
Date: Dec 2021
|
|
||||||
KernelVersion: 5.17
|
|
||||||
Contact: obitton@habana.ai
|
|
||||||
Description: Sets I2C length in bytes for I2C transaction that is generated by
|
|
||||||
the device's CPU
|
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
@ -240,12 +233,6 @@ Contact: ogabbay@kernel.org
|
|||||||
Description: Sets the stop-on_error option for the device engines. Value of
|
Description: Sets the stop-on_error option for the device engines. Value of
|
||||||
"0" is for disable, otherwise enable.
|
"0" is for disable, otherwise enable.
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/timeout_locked
|
|
||||||
Date: Sep 2021
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: obitton@habana.ai
|
|
||||||
Description: Sets the command submission timeout value in seconds.
|
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/userptr
|
What: /sys/kernel/debug/habanalabs/hl<n>/userptr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
What: /sys/kernel/security/evm
|
What: security/evm
|
||||||
What: /sys/kernel/security/*/evm
|
|
||||||
Date: March 2011
|
Date: March 2011
|
||||||
Contact: Mimi Zohar <zohar@us.ibm.com>
|
Contact: Mimi Zohar <zohar@us.ibm.com>
|
||||||
Description:
|
Description:
|
||||||
@ -94,7 +93,7 @@ Description:
|
|||||||
core/ima-setup) have support for loading keys at boot
|
core/ima-setup) have support for loading keys at boot
|
||||||
time.
|
time.
|
||||||
|
|
||||||
What: /sys/kernel/security/*/evm/evm_xattrs
|
What: security/integrity/evm/evm_xattrs
|
||||||
Date: April 2018
|
Date: April 2018
|
||||||
Contact: Matthew Garrett <mjg59@google.com>
|
Contact: Matthew Garrett <mjg59@google.com>
|
||||||
Description:
|
Description:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/kernel/security/*/ima/policy
|
What: security/ima/policy
|
||||||
Date: May 2008
|
Date: May 2008
|
||||||
Contact: Mimi Zohar <zohar@us.ibm.com>
|
Contact: Mimi Zohar <zohar@us.ibm.com>
|
||||||
Description:
|
Description:
|
||||||
@ -22,9 +22,8 @@ Description:
|
|||||||
action: measure | dont_measure | appraise | dont_appraise |
|
action: measure | dont_measure | appraise | dont_appraise |
|
||||||
audit | hash | dont_hash
|
audit | hash | dont_hash
|
||||||
condition:= base | lsm [option]
|
condition:= base | lsm [option]
|
||||||
base: [[func=] [mask=] [fsmagic=] [fsuuid=] [fsname=]
|
base: [[func=] [mask=] [fsmagic=] [fsuuid=] [uid=]
|
||||||
[uid=] [euid=] [gid=] [egid=]
|
[euid=] [fowner=] [fsname=]]
|
||||||
[fowner=] [fgroup=]]
|
|
||||||
lsm: [[subj_user=] [subj_role=] [subj_type=]
|
lsm: [[subj_user=] [subj_role=] [subj_type=]
|
||||||
[obj_user=] [obj_role=] [obj_type=]]
|
[obj_user=] [obj_role=] [obj_type=]]
|
||||||
option: [[appraise_type=]] [template=] [permit_directio]
|
option: [[appraise_type=]] [template=] [permit_directio]
|
||||||
@ -41,10 +40,7 @@ Description:
|
|||||||
fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6)
|
fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6)
|
||||||
uid:= decimal value
|
uid:= decimal value
|
||||||
euid:= decimal value
|
euid:= decimal value
|
||||||
gid:= decimal value
|
|
||||||
egid:= decimal value
|
|
||||||
fowner:= decimal value
|
fowner:= decimal value
|
||||||
fgroup:= decimal value
|
|
||||||
lsm: are LSM specific
|
lsm: are LSM specific
|
||||||
option:
|
option:
|
||||||
appraise_type:= [imasig] [imasig|modsig]
|
appraise_type:= [imasig] [imasig|modsig]
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
What: /sys/fs/pstore/...
|
What: /sys/fs/pstore/... (or /dev/pstore/...)
|
||||||
What: /dev/pstore/...
|
|
||||||
Date: March 2011
|
Date: March 2011
|
||||||
KernelVersion: 2.6.39
|
KernelVersion: 2.6.39
|
||||||
Contact: tony.luck@intel.com
|
Contact: tony.luck@intel.com
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/class/ata_*
|
What: /sys/class/ata_...
|
||||||
Description:
|
Description:
|
||||||
Provide a place in sysfs for storing the ATA topology of the
|
Provide a place in sysfs for storing the ATA topology of the
|
||||||
system. This allows retrieving various information about ATA
|
system. This allows retrieving various information about ATA
|
||||||
|
@ -203,27 +203,6 @@ Description:
|
|||||||
both edges:
|
both edges:
|
||||||
Any state transition.
|
Any state transition.
|
||||||
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/ceiling_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/floor_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/count_mode_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/direction_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/enable_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/error_noise_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/prescaler_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/preset_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/preset_enable_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/signalZ_action_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/cable_fault_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/cable_fault_enable_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/index_polarity_component_id
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/synchronous_mode_component_id
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: linux-iio@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Read-only attribute that indicates the component ID of the
|
|
||||||
respective extension or Synapse.
|
|
||||||
|
|
||||||
What: /sys/bus/counter/devices/counterX/countY/spike_filter_ns
|
What: /sys/bus/counter/devices/counterX/countY/spike_filter_ns
|
||||||
KernelVersion: 5.14
|
KernelVersion: 5.14
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
@ -233,14 +212,6 @@ Description:
|
|||||||
shorter or equal to configured value are ignored. Value 0 means
|
shorter or equal to configured value are ignored. Value 0 means
|
||||||
filter is disabled.
|
filter is disabled.
|
||||||
|
|
||||||
What: /sys/bus/counter/devices/counterX/events_queue_size
|
|
||||||
KernelVersion: 5.16
|
|
||||||
Contact: linux-iio@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Size of the Counter events queue in number of struct
|
|
||||||
counter_event data structures. The number of elements will be
|
|
||||||
rounded-up to a power of 2.
|
|
||||||
|
|
||||||
What: /sys/bus/counter/devices/counterX/name
|
What: /sys/bus/counter/devices/counterX/name
|
||||||
KernelVersion: 5.2
|
KernelVersion: 5.2
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
@ -315,14 +286,7 @@ What: /sys/bus/counter/devices/counterX/signalY/signal
|
|||||||
KernelVersion: 5.2
|
KernelVersion: 5.2
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Signal level state of Signal Y. The following signal level
|
Signal data of Signal Y represented as a string.
|
||||||
states are available:
|
|
||||||
|
|
||||||
low:
|
|
||||||
Low level state.
|
|
||||||
|
|
||||||
high:
|
|
||||||
High level state.
|
|
||||||
|
|
||||||
What: /sys/bus/counter/devices/counterX/signalY/synchronous_mode
|
What: /sys/bus/counter/devices/counterX/signalY/synchronous_mode
|
||||||
KernelVersion: 5.2
|
KernelVersion: 5.2
|
||||||
|
@ -429,7 +429,6 @@ What: /sys/bus/iio/devices/iio:deviceX/in_angl_scale
|
|||||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_x_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_x_scale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_y_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_y_scale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_z_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_z_scale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_co2_scale
|
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@ -1958,44 +1957,3 @@ Description:
|
|||||||
Specify the percent for light sensor relative to the channel
|
Specify the percent for light sensor relative to the channel
|
||||||
absolute value that a data field should change before an event
|
absolute value that a data field should change before an event
|
||||||
is generated. Units are a percentage of the prior reading.
|
is generated. Units are a percentage of the prior reading.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/calibration_auto_enable
|
|
||||||
Date: June 2020
|
|
||||||
KernelVersion: 5.8
|
|
||||||
Contact: linux-iio@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Some sensors have the ability to apply auto calibration at
|
|
||||||
runtime. For example, it may be necessary to compensate for
|
|
||||||
contaminant build-up in a measurement chamber or optical
|
|
||||||
element deterioration that would otherwise lead to sensor drift.
|
|
||||||
|
|
||||||
Writing 1 or 0 to this attribute will respectively activate or
|
|
||||||
deactivate this auto calibration function.
|
|
||||||
|
|
||||||
Upon reading, the current status is returned.
|
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/calibration_forced_value
|
|
||||||
Date: June 2020
|
|
||||||
KernelVersion: 5.8
|
|
||||||
Contact: linux-iio@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Some sensors have the ability to apply a manual calibration using
|
|
||||||
a known measurement value, perhaps obtained from an external
|
|
||||||
reference device.
|
|
||||||
|
|
||||||
Writing a value to this function will force such a calibration
|
|
||||||
change. For the scd30 the value should be from the range
|
|
||||||
[400 1 2000].
|
|
||||||
|
|
||||||
Note for the scd30 that a valid value may only be obtained once
|
|
||||||
it is has been written. Until then any read back of this value
|
|
||||||
should be ignored. As for the scd4x an error will be returned
|
|
||||||
immediately if the manual calibration has failed.
|
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/calibration_forced_value_available
|
|
||||||
KernelVersion: 5.15
|
|
||||||
Contact: linux-iio@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Available range for the forced calibration value, expressed as:
|
|
||||||
|
|
||||||
- a range specified as "[min step max]"
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
What: /sys/bus/mdio_bus/devices/.../statistics/
|
What: /sys/bus/mdio_bus/devices/.../statistics/
|
||||||
What: /sys/class/mdio_bus/.../statistics/
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -8,7 +7,6 @@ Description:
|
|||||||
MDIO bus address statistics.
|
MDIO bus address statistics.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/transfers
|
What: /sys/bus/mdio_bus/devices/.../statistics/transfers
|
||||||
What: /sys/class/mdio_bus/.../transfers
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -16,7 +14,6 @@ Description:
|
|||||||
Total number of transfers for this MDIO bus.
|
Total number of transfers for this MDIO bus.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/errors
|
What: /sys/bus/mdio_bus/devices/.../statistics/errors
|
||||||
What: /sys/class/mdio_bus/.../statistics/errors
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -24,7 +21,6 @@ Description:
|
|||||||
Total number of transfer errors for this MDIO bus.
|
Total number of transfer errors for this MDIO bus.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/writes
|
What: /sys/bus/mdio_bus/devices/.../statistics/writes
|
||||||
What: /sys/class/mdio_bus/.../statistics/writes
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -32,7 +28,6 @@ Description:
|
|||||||
Total number of write transactions for this MDIO bus.
|
Total number of write transactions for this MDIO bus.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/reads
|
What: /sys/bus/mdio_bus/devices/.../statistics/reads
|
||||||
What: /sys/class/mdio_bus/.../statistics/reads
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -40,7 +35,6 @@ Description:
|
|||||||
Total number of read transactions for this MDIO bus.
|
Total number of read transactions for this MDIO bus.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/transfers_<addr>
|
What: /sys/bus/mdio_bus/devices/.../statistics/transfers_<addr>
|
||||||
What: /sys/class/mdio_bus/.../statistics/transfers_<addr>
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -48,7 +42,6 @@ Description:
|
|||||||
Total number of transfers for this MDIO bus address.
|
Total number of transfers for this MDIO bus address.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/errors_<addr>
|
What: /sys/bus/mdio_bus/devices/.../statistics/errors_<addr>
|
||||||
What: /sys/class/mdio_bus/.../statistics/errors_<addr>
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -56,7 +49,6 @@ Description:
|
|||||||
Total number of transfer errors for this MDIO bus address.
|
Total number of transfer errors for this MDIO bus address.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/writes_<addr>
|
What: /sys/bus/mdio_bus/devices/.../statistics/writes_<addr>
|
||||||
What: /sys/class/mdio_bus/.../statistics/writes_<addr>
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
@ -64,7 +56,6 @@ Description:
|
|||||||
Total number of write transactions for this MDIO bus address.
|
Total number of write transactions for this MDIO bus address.
|
||||||
|
|
||||||
What: /sys/bus/mdio_bus/devices/.../statistics/reads_<addr>
|
What: /sys/bus/mdio_bus/devices/.../statistics/reads_<addr>
|
||||||
What: /sys/class/mdio_bus/.../statistics/reads_<addr>
|
|
||||||
Date: January 2020
|
Date: January 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
What: /sys/bus/pci/drivers/.../bind
|
What: /sys/bus/pci/drivers/.../bind
|
||||||
What: /sys/devices/pciX/.../bind
|
|
||||||
Date: December 2003
|
Date: December 2003
|
||||||
Contact: linux-pci@vger.kernel.org
|
Contact: linux-pci@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@ -15,7 +14,6 @@ Description:
|
|||||||
(Note: kernels before 2.6.28 may require echo -n).
|
(Note: kernels before 2.6.28 may require echo -n).
|
||||||
|
|
||||||
What: /sys/bus/pci/drivers/.../unbind
|
What: /sys/bus/pci/drivers/.../unbind
|
||||||
What: /sys/devices/pciX/.../unbind
|
|
||||||
Date: December 2003
|
Date: December 2003
|
||||||
Contact: linux-pci@vger.kernel.org
|
Contact: linux-pci@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@ -31,7 +29,6 @@ Description:
|
|||||||
(Note: kernels before 2.6.28 may require echo -n).
|
(Note: kernels before 2.6.28 may require echo -n).
|
||||||
|
|
||||||
What: /sys/bus/pci/drivers/.../new_id
|
What: /sys/bus/pci/drivers/.../new_id
|
||||||
What: /sys/devices/pciX/.../new_id
|
|
||||||
Date: December 2003
|
Date: December 2003
|
||||||
Contact: linux-pci@vger.kernel.org
|
Contact: linux-pci@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@ -50,7 +47,6 @@ Description:
|
|||||||
# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
|
# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id
|
||||||
|
|
||||||
What: /sys/bus/pci/drivers/.../remove_id
|
What: /sys/bus/pci/drivers/.../remove_id
|
||||||
What: /sys/devices/pciX/.../remove_id
|
|
||||||
Date: February 2009
|
Date: February 2009
|
||||||
Contact: Chris Wright <chrisw@sous-sol.org>
|
Contact: Chris Wright <chrisw@sous-sol.org>
|
||||||
Description:
|
Description:
|
||||||
@ -100,17 +96,6 @@ Description:
|
|||||||
This attribute indicates the mode that the irq vector named by
|
This attribute indicates the mode that the irq vector named by
|
||||||
the file is in (msi vs. msix)
|
the file is in (msi vs. msix)
|
||||||
|
|
||||||
What: /sys/bus/pci/devices/.../irq
|
|
||||||
Date: August 2021
|
|
||||||
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
|
||||||
Description:
|
|
||||||
If a driver has enabled MSI (not MSI-X), "irq" contains the
|
|
||||||
IRQ of the first MSI vector. Otherwise "irq" contains the
|
|
||||||
IRQ of the legacy INTx interrupt.
|
|
||||||
|
|
||||||
"irq" being set to 0 indicates that the device isn't
|
|
||||||
capable of generating legacy INTx interrupts.
|
|
||||||
|
|
||||||
What: /sys/bus/pci/devices/.../remove
|
What: /sys/bus/pci/devices/.../remove
|
||||||
Date: January 2009
|
Date: January 2009
|
||||||
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
Contact: Linux PCI developers <linux-pci@vger.kernel.org>
|
||||||
@ -175,7 +160,7 @@ Description:
|
|||||||
If the underlying VPD has a writable section then the
|
If the underlying VPD has a writable section then the
|
||||||
corresponding section of this file will be writable.
|
corresponding section of this file will be writable.
|
||||||
|
|
||||||
What: /sys/bus/pci/devices/.../virtfn<N>
|
What: /sys/bus/pci/devices/.../virtfnN
|
||||||
Date: March 2009
|
Date: March 2009
|
||||||
Contact: Yu Zhao <yu.zhao@intel.com>
|
Contact: Yu Zhao <yu.zhao@intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -202,24 +187,6 @@ Description:
|
|||||||
The symbolic link points to the PCI device sysfs entry of the
|
The symbolic link points to the PCI device sysfs entry of the
|
||||||
Physical Function this device associates with.
|
Physical Function this device associates with.
|
||||||
|
|
||||||
What: /sys/bus/pci/devices/.../modalias
|
|
||||||
Date: May 2005
|
|
||||||
Contact: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Description:
|
|
||||||
This attribute indicates the PCI ID of the device object.
|
|
||||||
|
|
||||||
That is in the format:
|
|
||||||
pci:vXXXXXXXXdXXXXXXXXsvXXXXXXXXsdXXXXXXXXbcXXscXXiXX,
|
|
||||||
where:
|
|
||||||
|
|
||||||
- vXXXXXXXX contains the vendor ID;
|
|
||||||
- dXXXXXXXX contains the device ID;
|
|
||||||
- svXXXXXXXX contains the sub-vendor ID;
|
|
||||||
- sdXXXXXXXX contains the subsystem device ID;
|
|
||||||
- bcXX contains the device class;
|
|
||||||
- scXX contains the device subclass;
|
|
||||||
- iXX contains the device class programming interface.
|
|
||||||
|
|
||||||
What: /sys/bus/pci/slots/.../module
|
What: /sys/bus/pci/slots/.../module
|
||||||
Date: June 2009
|
Date: June 2009
|
||||||
Contact: linux-pci@vger.kernel.org
|
Contact: linux-pci@vger.kernel.org
|
||||||
|
@ -42,15 +42,3 @@ Date: August 2021
|
|||||||
Contact: Barry Song <song.bao.hua@hisilicon.com>
|
Contact: Barry Song <song.bao.hua@hisilicon.com>
|
||||||
Description:
|
Description:
|
||||||
This attribute will show "msi" if <N> is a valid msi irq
|
This attribute will show "msi" if <N> is a valid msi irq
|
||||||
|
|
||||||
What: /sys/bus/platform/devices/.../modalias
|
|
||||||
Description:
|
|
||||||
Same as MODALIAS in the uevent at device creation.
|
|
||||||
|
|
||||||
A platform device that it is exposed via devicetree uses:
|
|
||||||
|
|
||||||
- of:N`of node name`T`type`
|
|
||||||
|
|
||||||
Other platform devices use, instead:
|
|
||||||
|
|
||||||
- platform:`driver name`
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>
|
What: /sys/bus/rapidio/devices/nn:d:iiii
|
||||||
Description:
|
Description:
|
||||||
For each RapidIO device, the RapidIO subsystem creates files in
|
For each RapidIO device, the RapidIO subsystem creates files in
|
||||||
an individual subdirectory with the following name format of
|
an individual subdirectory with the following name format of
|
||||||
@ -29,7 +29,7 @@ Description:
|
|||||||
Attributes Common for All RapidIO Devices
|
Attributes Common for All RapidIO Devices
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/did
|
What: /sys/bus/rapidio/devices/nn:d:iiii/did
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -37,7 +37,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) returns the device identifier
|
(RO) returns the device identifier
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/vid
|
What: /sys/bus/rapidio/devices/nn:d:iiii/vid
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -45,7 +45,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) returns the device vendor identifier
|
(RO) returns the device vendor identifier
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/device_rev
|
What: /sys/bus/rapidio/devices/nn:d:iiii/device_rev
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -53,7 +53,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) returns the device revision level
|
(RO) returns the device revision level
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_did
|
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_did
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -61,7 +61,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) returns identifier for the assembly containing the device
|
(RO) returns identifier for the assembly containing the device
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_rev
|
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_rev
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -70,7 +70,7 @@ Description:
|
|||||||
(RO) returns revision level of the assembly containing the
|
(RO) returns revision level of the assembly containing the
|
||||||
device
|
device
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/asm_vid
|
What: /sys/bus/rapidio/devices/nn:d:iiii/asm_vid
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -79,7 +79,7 @@ Description:
|
|||||||
(RO) returns vendor identifier of the assembly containing the
|
(RO) returns vendor identifier of the assembly containing the
|
||||||
device
|
device
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/destid
|
What: /sys/bus/rapidio/devices/nn:d:iiii/destid
|
||||||
Date: Mar, 2011
|
Date: Mar, 2011
|
||||||
KernelVersion: v2.6.3
|
KernelVersion: v2.6.3
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -88,7 +88,7 @@ Description:
|
|||||||
(RO) returns device destination ID assigned by the enumeration
|
(RO) returns device destination ID assigned by the enumeration
|
||||||
routine
|
routine
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/lprev
|
What: /sys/bus/rapidio/devices/nn:d:iiii/lprev
|
||||||
Date: Mar, 2011
|
Date: Mar, 2011
|
||||||
KernelVersion: v2.6.39
|
KernelVersion: v2.6.39
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -97,7 +97,7 @@ Description:
|
|||||||
(RO) returns name of previous device (switch) on the path to the
|
(RO) returns name of previous device (switch) on the path to the
|
||||||
device that that owns this attribute
|
device that that owns this attribute
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/modalias
|
What: /sys/bus/rapidio/devices/nn:d:iiii/modalias
|
||||||
Date: Jul, 2013
|
Date: Jul, 2013
|
||||||
KernelVersion: v3.11
|
KernelVersion: v3.11
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -105,7 +105,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) returns the device modalias
|
(RO) returns the device modalias
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/config
|
What: /sys/bus/rapidio/devices/nn:d:iiii/config
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -128,7 +128,7 @@ device-specific sysfs attributes by specifying a callback function that may be
|
|||||||
set by the switch initialization routine during enumeration or discovery
|
set by the switch initialization routine during enumeration or discovery
|
||||||
process.
|
process.
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/routes
|
What: /sys/bus/rapidio/devices/nn:s:iiii/routes
|
||||||
Date: Nov, 2005
|
Date: Nov, 2005
|
||||||
KernelVersion: v2.6.15
|
KernelVersion: v2.6.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -138,7 +138,7 @@ Description:
|
|||||||
This attribute reports only valid routing table entries, one
|
This attribute reports only valid routing table entries, one
|
||||||
line for each entry.
|
line for each entry.
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/destid
|
What: /sys/bus/rapidio/devices/nn:s:iiii/destid
|
||||||
Date: Mar, 2011
|
Date: Mar, 2011
|
||||||
KernelVersion: v2.6.3
|
KernelVersion: v2.6.3
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -147,7 +147,7 @@ Description:
|
|||||||
(RO) device destination ID of the associated device that defines
|
(RO) device destination ID of the associated device that defines
|
||||||
a route to the switch
|
a route to the switch
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/hopcount
|
What: /sys/bus/rapidio/devices/nn:s:iiii/hopcount
|
||||||
Date: Mar, 2011
|
Date: Mar, 2011
|
||||||
KernelVersion: v2.6.39
|
KernelVersion: v2.6.39
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -155,7 +155,7 @@ Contact: Matt Porter <mporter@kernel.crashing.org>,
|
|||||||
Description:
|
Description:
|
||||||
(RO) number of hops on the path to the switch
|
(RO) number of hops on the path to the switch
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/lnext
|
What: /sys/bus/rapidio/devices/nn:s:iiii/lnext
|
||||||
Date: Mar, 2011
|
Date: Mar, 2011
|
||||||
KernelVersion: v2.6.39
|
KernelVersion: v2.6.39
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -172,7 +172,7 @@ Device-specific Switch Attributes
|
|||||||
|
|
||||||
IDT_GEN2-
|
IDT_GEN2-
|
||||||
|
|
||||||
What: /sys/bus/rapidio/devices/<nn>:<s>:<iiii>/errlog
|
What: /sys/bus/rapidio/devices/nn:s:iiii/errlog
|
||||||
Date: Oct, 2010
|
Date: Oct, 2010
|
||||||
KernelVersion: v2.6.37
|
KernelVersion: v2.6.37
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
What: /sys/bus/soundwire/devices/sdw-master-<N>/revision
|
What: /sys/bus/soundwire/devices/sdw-master-N/revision
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/clk_stop_modes
|
/sys/bus/soundwire/devices/sdw-master-N/clk_stop_modes
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/clk_freq
|
/sys/bus/soundwire/devices/sdw-master-N/clk_freq
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/clk_gears
|
/sys/bus/soundwire/devices/sdw-master-N/clk_gears
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/default_col
|
/sys/bus/soundwire/devices/sdw-master-N/default_col
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/default_frame_rate
|
/sys/bus/soundwire/devices/sdw-master-N/default_frame_rate
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/default_row
|
/sys/bus/soundwire/devices/sdw-master-N/default_row
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/dynamic_shape
|
/sys/bus/soundwire/devices/sdw-master-N/dynamic_shape
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/err_threshold
|
/sys/bus/soundwire/devices/sdw-master-N/err_threshold
|
||||||
/sys/bus/soundwire/devices/sdw-master-<N>/max_clk_freq
|
/sys/bus/soundwire/devices/sdw-master-N/max_clk_freq
|
||||||
|
|
||||||
Date: April 2020
|
Date: April 2020
|
||||||
|
|
||||||
|
@ -64,37 +64,37 @@ Description: SoundWire Slave Data Port-0 DisCo properties.
|
|||||||
Data port 0 are used by the bus to configure the Data Port 0.
|
Data port 0 are used by the bus to configure the Data Port 0.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/bus/soundwire/devices/sdw:.../dp<N>_src/max_word
|
What: /sys/bus/soundwire/devices/sdw:.../dpN_src/max_word
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/min_word
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/min_word
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/words
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/words
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/type
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/type
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/max_grouping
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/max_grouping
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/simple_ch_prep_sm
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/simple_ch_prep_sm
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/ch_prep_timeout
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/ch_prep_timeout
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/imp_def_interrupts
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/imp_def_interrupts
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/min_ch
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/min_ch
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/max_ch
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/max_ch
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/channels
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/channels
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/ch_combinations
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/ch_combinations
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/max_async_buffer
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/max_async_buffer
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/block_pack_mode
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/block_pack_mode
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_src/port_encoding
|
/sys/bus/soundwire/devices/sdw:.../dpN_src/port_encoding
|
||||||
|
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/max_word
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/max_word
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/min_word
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/min_word
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/words
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/words
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/type
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/type
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/max_grouping
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/max_grouping
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/simple_ch_prep_sm
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/simple_ch_prep_sm
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/ch_prep_timeout
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/ch_prep_timeout
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/imp_def_interrupts
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/imp_def_interrupts
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/min_ch
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/min_ch
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/max_ch
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/max_ch
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/channels
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/channels
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/ch_combinations
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/ch_combinations
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/max_async_buffer
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/max_async_buffer
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/block_pack_mode
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/block_pack_mode
|
||||||
/sys/bus/soundwire/devices/sdw:.../dp<N>_sink/port_encoding
|
/sys/bus/soundwire/devices/sdw:.../dpN_sink/port_encoding
|
||||||
|
|
||||||
Date: May 2020
|
Date: May 2020
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/bus/usb/devices/<INTERFACE>/authorized
|
What: /sys/bus/usb/devices/INTERFACE/authorized
|
||||||
Date: August 2015
|
Date: August 2015
|
||||||
Description:
|
Description:
|
||||||
This allows to authorize (1) or deauthorize (0)
|
This allows to authorize (1) or deauthorize (0)
|
||||||
@ -166,14 +166,14 @@ Description:
|
|||||||
The file will be present for all speeds of USB devices, and will
|
The file will be present for all speeds of USB devices, and will
|
||||||
always read "no" for USB 1.1 and USB 2.0 devices.
|
always read "no" for USB 1.1 and USB 2.0 devices.
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>
|
What: /sys/bus/usb/devices/.../(hub interface)/portX
|
||||||
Date: August 2012
|
Date: August 2012
|
||||||
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
||||||
Description:
|
Description:
|
||||||
The /sys/bus/usb/devices/.../<hub_interface>/port<X>
|
The /sys/bus/usb/devices/.../(hub interface)/portX
|
||||||
is usb port device's sysfs directory.
|
is usb port device's sysfs directory.
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/connect_type
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type
|
||||||
Date: January 2013
|
Date: January 2013
|
||||||
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
Contact: Lan Tianyu <tianyu.lan@intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -182,7 +182,7 @@ Description:
|
|||||||
The file will read "hotplug", "hardwired" and "not used" if the
|
The file will read "hotplug", "hardwired" and "not used" if the
|
||||||
information is available, and "unknown" otherwise.
|
information is available, and "unknown" otherwise.
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/location
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/location
|
||||||
Date: October 2018
|
Date: October 2018
|
||||||
Contact: Bjørn Mork <bjorn@mork.no>
|
Contact: Bjørn Mork <bjorn@mork.no>
|
||||||
Description:
|
Description:
|
||||||
@ -192,7 +192,7 @@ Description:
|
|||||||
raw location value as a hex integer.
|
raw location value as a hex integer.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/quirks
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/quirks
|
||||||
Date: May 2018
|
Date: May 2018
|
||||||
Contact: Nicolas Boichat <drinkcat@chromium.org>
|
Contact: Nicolas Boichat <drinkcat@chromium.org>
|
||||||
Description:
|
Description:
|
||||||
@ -216,7 +216,7 @@ Description:
|
|||||||
used to help make enumeration work better on some high speed
|
used to help make enumeration work better on some high speed
|
||||||
devices.
|
devices.
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/over_current_count
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/over_current_count
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Richard Leitner <richard.leitner@skidata.com>
|
Contact: Richard Leitner <richard.leitner@skidata.com>
|
||||||
Description:
|
Description:
|
||||||
@ -230,10 +230,10 @@ Description:
|
|||||||
Any time this value changes the corresponding hub device will send a
|
Any time this value changes the corresponding hub device will send a
|
||||||
udev event with the following attributes::
|
udev event with the following attributes::
|
||||||
|
|
||||||
OVER_CURRENT_PORT=/sys/bus/usb/devices/.../<hub_interface>/port<X>
|
OVER_CURRENT_PORT=/sys/bus/usb/devices/.../(hub interface)/portX
|
||||||
OVER_CURRENT_COUNT=[current value of this sysfs attribute]
|
OVER_CURRENT_COUNT=[current value of this sysfs attribute]
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/usb3_lpm_permit
|
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
|
||||||
Date: November 2015
|
Date: November 2015
|
||||||
Contact: Lu Baolu <baolu.lu@linux.intel.com>
|
Contact: Lu Baolu <baolu.lu@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -244,15 +244,6 @@ Description:
|
|||||||
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
|
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
|
||||||
u2 are permitted.
|
u2 are permitted.
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/connector
|
|
||||||
Date: December 2021
|
|
||||||
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
|
||||||
Description:
|
|
||||||
Link to the USB Type-C connector when available. This link is
|
|
||||||
only created when USB Type-C Connector Class is enabled, and
|
|
||||||
only if the system firmware is capable of describing the
|
|
||||||
connection between a port and its connector.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||||
@ -297,277 +288,3 @@ Description:
|
|||||||
USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C.
|
USB 3.2 adds Dual-lane support, 2 rx and 2 tx -lanes over Type-C.
|
||||||
Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per
|
Inter-Chip SSIC devices support asymmetric lanes up to 4 lanes per
|
||||||
direction. Devices before USB 3.2 are single lane (tx_lanes = 1)
|
direction. Devices before USB 3.2 are single lane (tx_lanes = 1)
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bAlternateSetting
|
|
||||||
Description:
|
|
||||||
The current interface alternate setting number, in decimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bcdDevice
|
|
||||||
Description:
|
|
||||||
The device's release number, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bConfigurationValue
|
|
||||||
Description:
|
|
||||||
While a USB device typically have just one configuration
|
|
||||||
setting, some devices support multiple configurations.
|
|
||||||
|
|
||||||
This value shows the current configuration, in decimal.
|
|
||||||
|
|
||||||
Changing its value will change the device's configuration
|
|
||||||
to another setting.
|
|
||||||
|
|
||||||
The number of configurations supported by a device is at:
|
|
||||||
|
|
||||||
/sys/bus/usb/devices/usbX/bNumConfigurations
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bDeviceClass
|
|
||||||
Description:
|
|
||||||
Class code of the device, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bDeviceProtocol
|
|
||||||
Description:
|
|
||||||
Protocol code of the device, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bDeviceSubClass
|
|
||||||
Description:
|
|
||||||
Subclass code of the device, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bInterfaceClass
|
|
||||||
Description:
|
|
||||||
Class code of the interface, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bInterfaceNumber
|
|
||||||
Description:
|
|
||||||
Interface number, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bInterfaceProtocol
|
|
||||||
Description:
|
|
||||||
Protocol code of the interface, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bInterfaceSubClass
|
|
||||||
Description:
|
|
||||||
Subclass code of the interface, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bmAttributes
|
|
||||||
Description:
|
|
||||||
Attributes of the current configuration, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bMaxPacketSize0
|
|
||||||
Description:
|
|
||||||
Maximum endpoint 0 packet size, in decimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bMaxPower
|
|
||||||
Description:
|
|
||||||
Maximum power consumption of the active configuration of
|
|
||||||
the device, in miliamperes.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bNumConfigurations
|
|
||||||
Description:
|
|
||||||
Number of the possible configurations of the device, in
|
|
||||||
decimal. The current configuration is controlled via:
|
|
||||||
|
|
||||||
/sys/bus/usb/devices/usbX/bConfigurationValue
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bNumEndpoints
|
|
||||||
Description:
|
|
||||||
Number of endpoints used on this interface, in hexadecimal.
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/bNumInterfaces
|
|
||||||
Description:
|
|
||||||
Number of interfaces on this device, in decimal.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/busnum
|
|
||||||
Description:
|
|
||||||
Number of the bus.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/configuration
|
|
||||||
Description:
|
|
||||||
Contents of the string descriptor associated with the
|
|
||||||
current configuration. It may include the firmware version
|
|
||||||
of a device and/or its serial number.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/descriptors
|
|
||||||
Description:
|
|
||||||
Contains the interface descriptors, in binary.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/idProduct
|
|
||||||
Description:
|
|
||||||
Product ID, in hexadecimal.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/idVendor
|
|
||||||
Description:
|
|
||||||
Vendor ID, in hexadecimal.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/devspec
|
|
||||||
Description:
|
|
||||||
Displays the Device Tree Open Firmware node of the interface.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/avoid_reset_quirk
|
|
||||||
Description:
|
|
||||||
Most devices have this set to zero.
|
|
||||||
|
|
||||||
If the value is 1, enable a USB quirk that prevents this
|
|
||||||
device to use reset.
|
|
||||||
|
|
||||||
(read/write)
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/devnum
|
|
||||||
Description:
|
|
||||||
USB interface device number, in decimal.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/devpath
|
|
||||||
Description:
|
|
||||||
String containing the USB interface device path.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/manufacturer
|
|
||||||
Description:
|
|
||||||
Vendor specific string containing the name of the
|
|
||||||
manufacturer of the device.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/maxchild
|
|
||||||
Description:
|
|
||||||
Number of ports of an USB hub
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/persist
|
|
||||||
Description:
|
|
||||||
Keeps the device even if it gets disconnected.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/product
|
|
||||||
Description:
|
|
||||||
Vendor specific string containing the name of the
|
|
||||||
device's product.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/speed
|
|
||||||
Description:
|
|
||||||
Shows the device's max speed, according to the USB version,
|
|
||||||
in Mbps.
|
|
||||||
Can be:
|
|
||||||
|
|
||||||
======= ====================
|
|
||||||
Unknown speed unknown
|
|
||||||
1.5 Low speed
|
|
||||||
15 Full speed
|
|
||||||
480 High Speed
|
|
||||||
5000 Super Speed
|
|
||||||
10000 Super Speed+
|
|
||||||
20000 Super Speed+ Gen 2x2
|
|
||||||
======= ====================
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/supports_autosuspend
|
|
||||||
Description:
|
|
||||||
Returns 1 if the device doesn't support autosuspend.
|
|
||||||
Otherwise, returns 0.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/urbnum
|
|
||||||
Description:
|
|
||||||
Number of URBs submitted for the whole device.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/version
|
|
||||||
Description:
|
|
||||||
String containing the USB device version, as encoded
|
|
||||||
at the BCD descriptor.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/power/autosuspend
|
|
||||||
Description:
|
|
||||||
Time in milliseconds for the device to autosuspend. If the
|
|
||||||
value is negative, then autosuspend is prevented.
|
|
||||||
|
|
||||||
(read/write)
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/power/active_duration
|
|
||||||
Description:
|
|
||||||
The total time the device has not been suspended.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/power/connected_duration
|
|
||||||
Description:
|
|
||||||
The total time (in msec) that the device has been connected.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/power/level
|
|
||||||
Description:
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bEndpointAddress
|
|
||||||
Description:
|
|
||||||
The address of the endpoint described by this descriptor,
|
|
||||||
in hexadecimal. The endpoint direction on this bitmapped field
|
|
||||||
is also shown at:
|
|
||||||
|
|
||||||
/sys/bus/usb/devices/usbX/ep_<N>/direction
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bInterval
|
|
||||||
Description:
|
|
||||||
The interval of the endpoint as described on its descriptor,
|
|
||||||
in hexadecimal. The actual interval depends on the version
|
|
||||||
of the USB. Also shown in time units at
|
|
||||||
/sys/bus/usb/devices/usbX/ep_<N>/interval.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bLength
|
|
||||||
Description:
|
|
||||||
Number of bytes of the endpoint descriptor, in hexadecimal.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/bmAttributes
|
|
||||||
Description:
|
|
||||||
Attributes which apply to the endpoint as described on its
|
|
||||||
descriptor, in hexadecimal. The endpoint type on this
|
|
||||||
bitmapped field is also shown at:
|
|
||||||
|
|
||||||
/sys/bus/usb/devices/usbX/ep_<N>/type
|
|
||||||
|
|
||||||
See USB specs for its meaning.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/direction
|
|
||||||
Description:
|
|
||||||
Direction of the endpoint. Can be:
|
|
||||||
|
|
||||||
- both (on control endpoints)
|
|
||||||
- in
|
|
||||||
- out
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/interval
|
|
||||||
Description:
|
|
||||||
Interval for polling endpoint for data transfers, in
|
|
||||||
milisseconds or microseconds.
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/type
|
|
||||||
Description:
|
|
||||||
Descriptor type. Can be:
|
|
||||||
|
|
||||||
- Control
|
|
||||||
- Isoc
|
|
||||||
- Bulk
|
|
||||||
- Interrupt
|
|
||||||
- unknown
|
|
||||||
|
|
||||||
What: /sys/bus/usb/devices/usbX/ep_<N>/wMaxPacketSize
|
|
||||||
Description:
|
|
||||||
Maximum packet size this endpoint is capable of
|
|
||||||
sending or receiving, in hexadecimal.
|
|
||||||
|
@ -23,17 +23,14 @@ default
|
|||||||
The default backing dev, used for non-block device backed
|
The default backing dev, used for non-block device backed
|
||||||
filesystems which do not provide their own BDI.
|
filesystems which do not provide their own BDI.
|
||||||
|
|
||||||
What: /sys/class/bdi/<bdi>/read_ahead_kb
|
Files under /sys/class/bdi/<bdi>/
|
||||||
Date: January 2008
|
|
||||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
read_ahead_kb (read-write)
|
||||||
Description:
|
|
||||||
Size of the read-ahead window in kilobytes
|
Size of the read-ahead window in kilobytes
|
||||||
|
|
||||||
(read-write)
|
min_ratio (read-write)
|
||||||
What: /sys/class/bdi/<bdi>/min_ratio
|
|
||||||
Date: January 2008
|
|
||||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
|
||||||
Description:
|
|
||||||
Under normal circumstances each device is given a part of the
|
Under normal circumstances each device is given a part of the
|
||||||
total write-back cache that relates to its current average
|
total write-back cache that relates to its current average
|
||||||
writeout speed in relation to the other devices.
|
writeout speed in relation to the other devices.
|
||||||
@ -42,12 +39,8 @@ Description:
|
|||||||
percentage of the write-back cache to a particular device.
|
percentage of the write-back cache to a particular device.
|
||||||
For example, this is useful for providing a minimum QoS.
|
For example, this is useful for providing a minimum QoS.
|
||||||
|
|
||||||
(read-write)
|
max_ratio (read-write)
|
||||||
|
|
||||||
What: /sys/class/bdi/<bdi>/max_ratio
|
|
||||||
Date: January 2008
|
|
||||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
|
||||||
Description:
|
|
||||||
Allows limiting a particular device to use not more than the
|
Allows limiting a particular device to use not more than the
|
||||||
given percentage of the write-back cache. This is useful in
|
given percentage of the write-back cache. This is useful in
|
||||||
situations where we want to avoid one device taking all or
|
situations where we want to avoid one device taking all or
|
||||||
@ -55,12 +48,7 @@ Description:
|
|||||||
mount that is prone to get stuck, or a FUSE mount which cannot
|
mount that is prone to get stuck, or a FUSE mount which cannot
|
||||||
be trusted to play fair.
|
be trusted to play fair.
|
||||||
|
|
||||||
(read-write)
|
stable_pages_required (read-only)
|
||||||
What: /sys/class/bdi/<bdi>/stable_pages_required
|
|
||||||
Date: January 2008
|
|
||||||
Contact: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
|
||||||
Description:
|
|
||||||
If set, the backing device requires that all pages comprising a write
|
If set, the backing device requires that all pages comprising a write
|
||||||
request must not be changed until writeout is complete.
|
request must not be changed until writeout is complete.
|
||||||
|
|
||||||
(read-only)
|
|
||||||
|
@ -166,11 +166,10 @@ Description: read only
|
|||||||
Decimal value of the Per Process MMIO space length.
|
Decimal value of the Per Process MMIO space length.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
What: /sys/class/cxl/<afu>m/pp_mmio_off
|
What: /sys/class/cxl/<afu>m/pp_mmio_off (not in a guest)
|
||||||
Date: September 2014
|
Date: September 2014
|
||||||
Contact: linuxppc-dev@lists.ozlabs.org
|
Contact: linuxppc-dev@lists.ozlabs.org
|
||||||
Description: read only
|
Description: read only
|
||||||
(not in a guest)
|
|
||||||
Decimal value of the Per Process MMIO space offset.
|
Decimal value of the Per Process MMIO space offset.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
@ -191,31 +190,28 @@ Description: read only
|
|||||||
Identifies the revision level of the PSL.
|
Identifies the revision level of the PSL.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
What: /sys/class/cxl/<card>/base_image
|
What: /sys/class/cxl/<card>/base_image (not in a guest)
|
||||||
Date: September 2014
|
Date: September 2014
|
||||||
Contact: linuxppc-dev@lists.ozlabs.org
|
Contact: linuxppc-dev@lists.ozlabs.org
|
||||||
Description: read only
|
Description: read only
|
||||||
(not in a guest)
|
|
||||||
Identifies the revision level of the base image for devices
|
Identifies the revision level of the base image for devices
|
||||||
that support loadable PSLs. For FPGAs this field identifies
|
that support loadable PSLs. For FPGAs this field identifies
|
||||||
the image contained in the on-adapter flash which is loaded
|
the image contained in the on-adapter flash which is loaded
|
||||||
during the initial program load.
|
during the initial program load.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
What: /sys/class/cxl/<card>/image_loaded
|
What: /sys/class/cxl/<card>/image_loaded (not in a guest)
|
||||||
Date: September 2014
|
Date: September 2014
|
||||||
Contact: linuxppc-dev@lists.ozlabs.org
|
Contact: linuxppc-dev@lists.ozlabs.org
|
||||||
Description: read only
|
Description: read only
|
||||||
(not in a guest)
|
|
||||||
Will return "user" or "factory" depending on the image loaded
|
Will return "user" or "factory" depending on the image loaded
|
||||||
onto the card.
|
onto the card.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
What: /sys/class/cxl/<card>/load_image_on_perst
|
What: /sys/class/cxl/<card>/load_image_on_perst (not in a guest)
|
||||||
Date: December 2014
|
Date: December 2014
|
||||||
Contact: linuxppc-dev@lists.ozlabs.org
|
Contact: linuxppc-dev@lists.ozlabs.org
|
||||||
Description: read/write
|
Description: read/write
|
||||||
(not in a guest)
|
|
||||||
Valid entries are "none", "user", and "factory".
|
Valid entries are "none", "user", and "factory".
|
||||||
"none" means PERST will not cause image to be loaded to the
|
"none" means PERST will not cause image to be loaded to the
|
||||||
card. A power cycle is required to load the image.
|
card. A power cycle is required to load the image.
|
||||||
@ -239,11 +235,10 @@ Description: write only
|
|||||||
contexts on the card AFUs.
|
contexts on the card AFUs.
|
||||||
Users: https://github.com/ibm-capi/libcxl
|
Users: https://github.com/ibm-capi/libcxl
|
||||||
|
|
||||||
What: /sys/class/cxl/<card>/perst_reloads_same_image
|
What: /sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)
|
||||||
Date: July 2015
|
Date: July 2015
|
||||||
Contact: linuxppc-dev@lists.ozlabs.org
|
Contact: linuxppc-dev@lists.ozlabs.org
|
||||||
Description: read/write
|
Description: read/write
|
||||||
(not in a guest)
|
|
||||||
Trust that when an image is reloaded via PERST, it will not
|
Trust that when an image is reloaded via PERST, it will not
|
||||||
have changed.
|
have changed.
|
||||||
|
|
||||||
|
@ -161,15 +161,6 @@ Description:
|
|||||||
power-on:
|
power-on:
|
||||||
Representing a password required to use
|
Representing a password required to use
|
||||||
the system
|
the system
|
||||||
system-mgmt:
|
|
||||||
Representing System Management password.
|
|
||||||
See Lenovo extensions section for details
|
|
||||||
HDD:
|
|
||||||
Representing HDD password
|
|
||||||
See Lenovo extensions section for details
|
|
||||||
NVMe:
|
|
||||||
Representing NVMe password
|
|
||||||
See Lenovo extensions section for details
|
|
||||||
|
|
||||||
mechanism:
|
mechanism:
|
||||||
The means of authentication. This attribute is mandatory.
|
The means of authentication. This attribute is mandatory.
|
||||||
@ -216,13 +207,6 @@ Description:
|
|||||||
|
|
||||||
On Lenovo systems the following additional settings are available:
|
On Lenovo systems the following additional settings are available:
|
||||||
|
|
||||||
role: system-mgmt This gives the same authority as the bios-admin password to control
|
|
||||||
security related features. The authorities allocated can be set via
|
|
||||||
the BIOS menu SMP Access Control Policy
|
|
||||||
|
|
||||||
role: HDD & NVMe This password is used to unlock access to the drive at boot. Note see
|
|
||||||
'level' and 'index' extensions below.
|
|
||||||
|
|
||||||
lenovo_encoding:
|
lenovo_encoding:
|
||||||
The encoding method that is used. This can be either "ascii"
|
The encoding method that is used. This can be either "ascii"
|
||||||
or "scancode". Default is set to "ascii"
|
or "scancode". Default is set to "ascii"
|
||||||
@ -232,22 +216,6 @@ Description:
|
|||||||
two char code (e.g. "us", "fr", "gr") and may vary per platform.
|
two char code (e.g. "us", "fr", "gr") and may vary per platform.
|
||||||
Default is set to "us"
|
Default is set to "us"
|
||||||
|
|
||||||
level:
|
|
||||||
Available for HDD and NVMe authentication to set 'user' or 'master'
|
|
||||||
privilege level.
|
|
||||||
If only the user password is configured then this should be used to
|
|
||||||
unlock the drive at boot. If both master and user passwords are set
|
|
||||||
then either can be used. If a master password is set a user password
|
|
||||||
is required.
|
|
||||||
This attribute defaults to 'user' level
|
|
||||||
|
|
||||||
index:
|
|
||||||
Used with HDD and NVME authentication to set the drive index
|
|
||||||
that is being referenced (e.g hdd0, hdd1 etc)
|
|
||||||
This attribute defaults to device 0.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/firmware-attributes/*/attributes/pending_reboot
|
What: /sys/class/firmware-attributes/*/attributes/pending_reboot
|
||||||
Date: February 2021
|
Date: February 2021
|
||||||
KernelVersion: 5.11
|
KernelVersion: 5.11
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/class/gnss/gnss<N>/type
|
What: /sys/class/gnss/gnssN/type
|
||||||
Date: May 2018
|
Date: May 2018
|
||||||
KernelVersion: 4.18
|
KernelVersion: 4.18
|
||||||
Contact: Johan Hovold <johan@kernel.org>
|
Contact: Johan Hovold <johan@kernel.org>
|
||||||
|
@ -6,7 +6,7 @@ Description:
|
|||||||
The mei/ class sub-directory belongs to mei device class
|
The mei/ class sub-directory belongs to mei device class
|
||||||
|
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/
|
What: /sys/class/mei/meiN/
|
||||||
Date: May 2014
|
Date: May 2014
|
||||||
KernelVersion: 3.17
|
KernelVersion: 3.17
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -14,7 +14,7 @@ Description:
|
|||||||
The /sys/class/mei/meiN directory is created for
|
The /sys/class/mei/meiN directory is created for
|
||||||
each probed mei device
|
each probed mei device
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/fw_status
|
What: /sys/class/mei/meiN/fw_status
|
||||||
Date: Nov 2014
|
Date: Nov 2014
|
||||||
KernelVersion: 3.19
|
KernelVersion: 3.19
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -29,7 +29,7 @@ Description: Display fw status registers content
|
|||||||
Also number of registers varies between 1 and 6
|
Also number of registers varies between 1 and 6
|
||||||
depending on generation.
|
depending on generation.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/hbm_ver
|
What: /sys/class/mei/meiN/hbm_ver
|
||||||
Date: Aug 2016
|
Date: Aug 2016
|
||||||
KernelVersion: 4.9
|
KernelVersion: 4.9
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -38,7 +38,7 @@ Description: Display the negotiated HBM protocol version.
|
|||||||
The HBM protocol version negotiated
|
The HBM protocol version negotiated
|
||||||
between the driver and the device.
|
between the driver and the device.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/hbm_ver_drv
|
What: /sys/class/mei/meiN/hbm_ver_drv
|
||||||
Date: Aug 2016
|
Date: Aug 2016
|
||||||
KernelVersion: 4.9
|
KernelVersion: 4.9
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -46,7 +46,7 @@ Description: Display the driver HBM protocol version.
|
|||||||
|
|
||||||
The HBM protocol version supported by the driver.
|
The HBM protocol version supported by the driver.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/tx_queue_limit
|
What: /sys/class/mei/meiN/tx_queue_limit
|
||||||
Date: Jan 2018
|
Date: Jan 2018
|
||||||
KernelVersion: 4.16
|
KernelVersion: 4.16
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -55,7 +55,7 @@ Description: Configure tx queue limit
|
|||||||
Set maximal number of pending writes
|
Set maximal number of pending writes
|
||||||
per opened session.
|
per opened session.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/fw_ver
|
What: /sys/class/mei/meiN/fw_ver
|
||||||
Date: May 2018
|
Date: May 2018
|
||||||
KernelVersion: 4.18
|
KernelVersion: 4.18
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -66,7 +66,7 @@ Description: Display the ME firmware version.
|
|||||||
There can be up to three such blocks for different
|
There can be up to three such blocks for different
|
||||||
FW components.
|
FW components.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/dev_state
|
What: /sys/class/mei/meiN/dev_state
|
||||||
Date: Mar 2019
|
Date: Mar 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -81,7 +81,7 @@ Description: Display the ME device state.
|
|||||||
POWER_DOWN
|
POWER_DOWN
|
||||||
POWER_UP
|
POWER_UP
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/trc
|
What: /sys/class/mei/meiN/trc
|
||||||
Date: Nov 2019
|
Date: Nov 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
@ -91,7 +91,7 @@ Description: Display trc status register content
|
|||||||
status information into trc status register
|
status information into trc status register
|
||||||
for BIOS and OS to monitor fw health.
|
for BIOS and OS to monitor fw health.
|
||||||
|
|
||||||
What: /sys/class/mei/mei<N>/kind
|
What: /sys/class/mei/meiN/kind
|
||||||
Date: Jul 2020
|
Date: Jul 2020
|
||||||
KernelVersion: 5.8
|
KernelVersion: 5.8
|
||||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||||
|
@ -7,7 +7,7 @@ Description:
|
|||||||
Framework and provides a sysfs interface for using MUX
|
Framework and provides a sysfs interface for using MUX
|
||||||
controllers.
|
controllers.
|
||||||
|
|
||||||
What: /sys/class/mux/muxchip<N>/
|
What: /sys/class/mux/muxchipN/
|
||||||
Date: April 2017
|
Date: April 2017
|
||||||
KernelVersion: 4.13
|
KernelVersion: 4.13
|
||||||
Contact: Peter Rosin <peda@axentia.se>
|
Contact: Peter Rosin <peda@axentia.se>
|
||||||
|
@ -413,7 +413,7 @@ Description:
|
|||||||
"Over voltage", "Unspecified failure", "Cold",
|
"Over voltage", "Unspecified failure", "Cold",
|
||||||
"Watchdog timer expire", "Safety timer expire",
|
"Watchdog timer expire", "Safety timer expire",
|
||||||
"Over current", "Calibration required", "Warm",
|
"Over current", "Calibration required", "Warm",
|
||||||
"Cool", "Hot", "No battery"
|
"Cool", "Hot"
|
||||||
|
|
||||||
What: /sys/class/power_supply/<supply_name>/precharge_current
|
What: /sys/class/power_supply/<supply_name>/precharge_current
|
||||||
Date: June 2017
|
Date: June 2017
|
||||||
@ -455,21 +455,6 @@ Description:
|
|||||||
"Unknown", "Charging", "Discharging",
|
"Unknown", "Charging", "Discharging",
|
||||||
"Not charging", "Full"
|
"Not charging", "Full"
|
||||||
|
|
||||||
What: /sys/class/power_supply/<supply_name>/charge_behaviour
|
|
||||||
Date: November 2021
|
|
||||||
Contact: linux-pm@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Represents the charging behaviour.
|
|
||||||
|
|
||||||
Access: Read, Write
|
|
||||||
|
|
||||||
Valid values:
|
|
||||||
================ ====================================
|
|
||||||
auto: Charge normally, respect thresholds
|
|
||||||
inhibit-charge: Do not charge while AC is attached
|
|
||||||
force-discharge: Force discharge while AC is attached
|
|
||||||
================ ====================================
|
|
||||||
|
|
||||||
What: /sys/class/power_supply/<supply_name>/technology
|
What: /sys/class/power_supply/<supply_name>/technology
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
Contact: linux-pm@vger.kernel.org
|
Contact: linux-pm@vger.kernel.org
|
||||||
@ -495,19 +480,6 @@ Description:
|
|||||||
|
|
||||||
Valid values: Represented in microvolts
|
Valid values: Represented in microvolts
|
||||||
|
|
||||||
What: /sys/class/power_supply/<supply_name>/cycle_count
|
|
||||||
Date: January 2010
|
|
||||||
Contact: linux-pm@vger.kernel.org
|
|
||||||
Description:
|
|
||||||
Reports the number of full charge + discharge cycles the
|
|
||||||
battery has undergone.
|
|
||||||
|
|
||||||
Access: Read
|
|
||||||
|
|
||||||
Valid values:
|
|
||||||
Integer > 0: representing full cycles
|
|
||||||
Integer = 0: cycle_count info is not available
|
|
||||||
|
|
||||||
**USB Properties**
|
**USB Properties**
|
||||||
|
|
||||||
What: /sys/class/power_supply/<supply_name>/input_current_limit
|
What: /sys/class/power_supply/<supply_name>/input_current_limit
|
||||||
|
@ -7,7 +7,7 @@ Description:
|
|||||||
Framework and provides a sysfs interface for using PWM
|
Framework and provides a sysfs interface for using PWM
|
||||||
channels.
|
channels.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/
|
What: /sys/class/pwm/pwmchipN/
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
@ -16,14 +16,14 @@ Description:
|
|||||||
probed PWM controller/chip where N is the base of the
|
probed PWM controller/chip where N is the base of the
|
||||||
PWM chip.
|
PWM chip.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/npwm
|
What: /sys/class/pwm/pwmchipN/npwm
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
Description:
|
Description:
|
||||||
The number of PWM channels supported by the PWM chip.
|
The number of PWM channels supported by the PWM chip.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/export
|
What: /sys/class/pwm/pwmchipN/export
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
@ -31,14 +31,14 @@ Description:
|
|||||||
Exports a PWM channel from the PWM chip for sysfs control.
|
Exports a PWM channel from the PWM chip for sysfs control.
|
||||||
Value is between 0 and /sys/class/pwm/pwmchipN/npwm - 1.
|
Value is between 0 and /sys/class/pwm/pwmchipN/npwm - 1.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/unexport
|
What: /sys/class/pwm/pwmchipN/unexport
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
Description:
|
Description:
|
||||||
Unexports a PWM channel.
|
Unexports a PWM channel.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX
|
What: /sys/class/pwm/pwmchipN/pwmX
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
@ -47,21 +47,21 @@ Description:
|
|||||||
each exported PWM channel where X is the exported PWM
|
each exported PWM channel where X is the exported PWM
|
||||||
channel number.
|
channel number.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX/period
|
What: /sys/class/pwm/pwmchipN/pwmX/period
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
Description:
|
Description:
|
||||||
Sets the PWM signal period in nanoseconds.
|
Sets the PWM signal period in nanoseconds.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX/duty_cycle
|
What: /sys/class/pwm/pwmchipN/pwmX/duty_cycle
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
Description:
|
Description:
|
||||||
Sets the PWM signal duty cycle in nanoseconds.
|
Sets the PWM signal duty cycle in nanoseconds.
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX/polarity
|
What: /sys/class/pwm/pwmchipN/pwmX/polarity
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
@ -69,7 +69,7 @@ Description:
|
|||||||
Sets the output polarity of the PWM signal to "normal" or
|
Sets the output polarity of the PWM signal to "normal" or
|
||||||
"inversed".
|
"inversed".
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX/enable
|
What: /sys/class/pwm/pwmchipN/pwmX/enable
|
||||||
Date: May 2013
|
Date: May 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
Contact: H Hartley Sweeten <hsweeten@visionengravers.com>
|
||||||
@ -78,7 +78,7 @@ Description:
|
|||||||
0 is disabled
|
0 is disabled
|
||||||
1 is enabled
|
1 is enabled
|
||||||
|
|
||||||
What: /sys/class/pwm/pwmchip<N>/pwmX/capture
|
What: /sys/class/pwm/pwmchipN/pwmX/capture
|
||||||
Date: June 2016
|
Date: June 2016
|
||||||
KernelVersion: 4.8
|
KernelVersion: 4.8
|
||||||
Contact: Lee Jones <lee.jones@linaro.org>
|
Contact: Lee Jones <lee.jones@linaro.org>
|
||||||
|
@ -10,7 +10,7 @@ Description:
|
|||||||
NOTE: An mport ID is not a RapidIO destination ID assigned to a
|
NOTE: An mport ID is not a RapidIO destination ID assigned to a
|
||||||
given local mport device.
|
given local mport device.
|
||||||
|
|
||||||
What: /sys/class/rapidio_port/rapidio<N>/sys_size
|
What: /sys/class/rapidio_port/rapidioN/sys_size
|
||||||
Date: Apr, 2014
|
Date: Apr, 2014
|
||||||
KernelVersion: v3.15
|
KernelVersion: v3.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
@ -22,7 +22,7 @@ Description:
|
|||||||
|
|
||||||
1 = large (16-bit destination ID, max. 65536 devices).
|
1 = large (16-bit destination ID, max. 65536 devices).
|
||||||
|
|
||||||
What: /sys/class/rapidio_port/rapidio<N>/port_destid
|
What: /sys/class/rapidio_port/rapidioN/port_destid
|
||||||
Date: Apr, 2014
|
Date: Apr, 2014
|
||||||
KernelVersion: v3.15
|
KernelVersion: v3.15
|
||||||
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
Contact: Matt Porter <mporter@kernel.crashing.org>,
|
||||||
|
@ -7,7 +7,7 @@ Description:
|
|||||||
core and provides a sysfs interface for configuring infrared
|
core and provides a sysfs interface for configuring infrared
|
||||||
remote controller receivers.
|
remote controller receivers.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/
|
What: /sys/class/rc/rcN/
|
||||||
Date: Apr 2010
|
Date: Apr 2010
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -15,7 +15,7 @@ Description:
|
|||||||
A /sys/class/rc/rcN directory is created for each remote
|
A /sys/class/rc/rcN directory is created for each remote
|
||||||
control receiver device where N is the number of the receiver.
|
control receiver device where N is the number of the receiver.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/protocols
|
What: /sys/class/rc/rcN/protocols
|
||||||
Date: Jun 2010
|
Date: Jun 2010
|
||||||
KernelVersion: 2.6.36
|
KernelVersion: 2.6.36
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -40,7 +40,7 @@ Description:
|
|||||||
Write fails with EINVAL if an invalid protocol combination or
|
Write fails with EINVAL if an invalid protocol combination or
|
||||||
unknown protocol name is used.
|
unknown protocol name is used.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/filter
|
What: /sys/class/rc/rcN/filter
|
||||||
Date: Jan 2014
|
Date: Jan 2014
|
||||||
KernelVersion: 3.15
|
KernelVersion: 3.15
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -55,7 +55,7 @@ Description:
|
|||||||
|
|
||||||
This value may be reset to 0 if the current protocol is altered.
|
This value may be reset to 0 if the current protocol is altered.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/filter_mask
|
What: /sys/class/rc/rcN/filter_mask
|
||||||
Date: Jan 2014
|
Date: Jan 2014
|
||||||
KernelVersion: 3.15
|
KernelVersion: 3.15
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -72,7 +72,7 @@ Description:
|
|||||||
|
|
||||||
This value may be reset to 0 if the current protocol is altered.
|
This value may be reset to 0 if the current protocol is altered.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/wakeup_protocols
|
What: /sys/class/rc/rcN/wakeup_protocols
|
||||||
Date: Feb 2017
|
Date: Feb 2017
|
||||||
KernelVersion: 4.11
|
KernelVersion: 4.11
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -98,7 +98,7 @@ Description:
|
|||||||
unknown protocol name is used, or if wakeup is not supported by
|
unknown protocol name is used, or if wakeup is not supported by
|
||||||
the hardware.
|
the hardware.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/wakeup_filter
|
What: /sys/class/rc/rcN/wakeup_filter
|
||||||
Date: Jan 2014
|
Date: Jan 2014
|
||||||
KernelVersion: 3.15
|
KernelVersion: 3.15
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
@ -117,7 +117,7 @@ Description:
|
|||||||
|
|
||||||
This value may be reset to 0 if the wakeup protocol is altered.
|
This value may be reset to 0 if the wakeup protocol is altered.
|
||||||
|
|
||||||
What: /sys/class/rc/rc<N>/wakeup_filter_mask
|
What: /sys/class/rc/rcN/wakeup_filter_mask
|
||||||
Date: Jan 2014
|
Date: Jan 2014
|
||||||
KernelVersion: 3.15
|
KernelVersion: 3.15
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/class/rc/rc<N>/wakeup_data
|
What: /sys/class/rc/rcN/wakeup_data
|
||||||
Date: Mar 2016
|
Date: Mar 2016
|
||||||
KernelVersion: 4.6
|
KernelVersion: 4.6
|
||||||
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||||
|
@ -200,7 +200,7 @@ Description: USB Power Delivery Specification defines a set of product types
|
|||||||
amc Alternate Mode Controller
|
amc Alternate Mode Controller
|
||||||
====================== ==========================
|
====================== ==========================
|
||||||
|
|
||||||
What: /sys/class/typec/<port>-partner/identity/
|
What: /sys/class/typec/<port>-partner>/identity/
|
||||||
Date: April 2017
|
Date: April 2017
|
||||||
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
|
@ -18,14 +18,14 @@ Description:
|
|||||||
and it will be removed. The default is 3 superframes
|
and it will be removed. The default is 3 superframes
|
||||||
(~197 ms) as required by the specification.
|
(~197 ms) as required by the specification.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/
|
What: /sys/class/uwb_rc/uwbN/
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
An individual UWB radio controller.
|
An individual UWB radio controller.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/beacon
|
What: /sys/class/uwb_rc/uwbN/beacon
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -43,7 +43,7 @@ Description:
|
|||||||
Reading returns the currently active channel, or -1 if
|
Reading returns the currently active channel, or -1 if
|
||||||
the radio controller is not beaconing.
|
the radio controller is not beaconing.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/ASIE
|
What: /sys/class/uwb_rc/uwbN/ASIE
|
||||||
Date: August 2014
|
Date: August 2014
|
||||||
KernelVersion: 3.18
|
KernelVersion: 3.18
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -56,7 +56,7 @@ Description:
|
|||||||
Reading returns the current ASIE. Writing replaces
|
Reading returns the current ASIE. Writing replaces
|
||||||
the current ASIE with the one written.
|
the current ASIE with the one written.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/scan
|
What: /sys/class/uwb_rc/uwbN/scan
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -75,7 +75,7 @@ Description:
|
|||||||
4 scan (with start time of <bpst offset>)
|
4 scan (with start time of <bpst offset>)
|
||||||
== =======================================
|
== =======================================
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/mac_address
|
What: /sys/class/uwb_rc/uwbN/mac_address
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -85,7 +85,7 @@ Description:
|
|||||||
controller's EUI-48 but only do so while the device is
|
controller's EUI-48 but only do so while the device is
|
||||||
not beaconing or scanning.
|
not beaconing or scanning.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc
|
What: /sys/class/uwb_rc/uwbN/wusbhc
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -93,7 +93,7 @@ Description:
|
|||||||
A symlink to the device (if any) of the WUSB Host
|
A symlink to the device (if any) of the WUSB Host
|
||||||
Controller PAL using this radio controller.
|
Controller PAL using this radio controller.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -102,7 +102,7 @@ Description:
|
|||||||
as part of a scan or is a member of the radio
|
as part of a scan or is a member of the radio
|
||||||
controllers beacon group.
|
controllers beacon group.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/BPST
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/BPST
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -111,7 +111,7 @@ Description:
|
|||||||
interval superframe timer) of the last beacon from
|
interval superframe timer) of the last beacon from
|
||||||
this device was received.
|
this device was received.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/DevAddr
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/DevAddr
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -119,7 +119,7 @@ Description:
|
|||||||
The current DevAddr of this device in colon separated
|
The current DevAddr of this device in colon separated
|
||||||
hex octets.
|
hex octets.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/EUI_48
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/EUI_48
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -128,7 +128,7 @@ Description:
|
|||||||
The EUI-48 of this device in colon separated hex
|
The EUI-48 of this device in colon separated hex
|
||||||
octets.
|
octets.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/IEs
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/IEs
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -136,7 +136,7 @@ Description:
|
|||||||
The latest IEs included in this device's beacon, in
|
The latest IEs included in this device's beacon, in
|
||||||
space separated hex octets with one IE per line.
|
space separated hex octets with one IE per line.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/LQE
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/LQE
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
@ -146,7 +146,7 @@ Description:
|
|||||||
This gives an estimate on a suitable PHY rate. Refer
|
This gives an estimate on a suitable PHY rate. Refer
|
||||||
to [ECMA-368] section 13.3 for more details.
|
to [ECMA-368] section 13.3 for more details.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/<EUI-48>/RSSI
|
What: /sys/class/uwb_rc/uwbN/<EUI-48>/RSSI
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: linux-usb@vger.kernel.org
|
Contact: linux-usb@vger.kernel.org
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_chid
|
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_chid
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: David Vrabel <david.vrabel@csr.com>
|
Contact: David Vrabel <david.vrabel@csr.com>
|
||||||
@ -9,7 +9,7 @@ Description:
|
|||||||
|
|
||||||
Set an all zero CHID to stop the host controller.
|
Set an all zero CHID to stop the host controller.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_trust_timeout
|
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_trust_timeout
|
||||||
Date: July 2008
|
Date: July 2008
|
||||||
KernelVersion: 2.6.27
|
KernelVersion: 2.6.27
|
||||||
Contact: David Vrabel <david.vrabel@csr.com>
|
Contact: David Vrabel <david.vrabel@csr.com>
|
||||||
@ -24,7 +24,7 @@ Description:
|
|||||||
lifetime of PTKs and GTKs) it should not be changed
|
lifetime of PTKs and GTKs) it should not be changed
|
||||||
from the default.
|
from the default.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_phy_rate
|
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_phy_rate
|
||||||
Date: August 2009
|
Date: August 2009
|
||||||
KernelVersion: 2.6.32
|
KernelVersion: 2.6.32
|
||||||
Contact: David Vrabel <david.vrabel@csr.com>
|
Contact: David Vrabel <david.vrabel@csr.com>
|
||||||
@ -37,7 +37,7 @@ Description:
|
|||||||
Refer to [ECMA-368] section 10.3.1.1 for the value to
|
Refer to [ECMA-368] section 10.3.1.1 for the value to
|
||||||
use.
|
use.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_dnts
|
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_dnts
|
||||||
Date: June 2013
|
Date: June 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
||||||
@ -47,7 +47,7 @@ Description:
|
|||||||
often the devices will have the opportunity to send
|
often the devices will have the opportunity to send
|
||||||
notifications to the host.
|
notifications to the host.
|
||||||
|
|
||||||
What: /sys/class/uwb_rc/uwb<N>/wusbhc/wusb_retry_count
|
What: /sys/class/uwb_rc/uwbN/wusbhc/wusb_retry_count
|
||||||
Date: June 2013
|
Date: June 2013
|
||||||
KernelVersion: 3.11
|
KernelVersion: 3.11
|
||||||
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
Contact: Thomas Pugliese <thomas.pugliese@gmail.com>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/devices/platform/dock.<N>/docked
|
What: /sys/devices/platform/dock.N/docked
|
||||||
Date: Dec, 2006
|
Date: Dec, 2006
|
||||||
KernelVersion: 2.6.19
|
KernelVersion: 2.6.19
|
||||||
Contact: linux-acpi@vger.kernel.org
|
Contact: linux-acpi@vger.kernel.org
|
||||||
@ -6,7 +6,7 @@ Description:
|
|||||||
(RO) Value 1 or 0 indicates whether the software believes the
|
(RO) Value 1 or 0 indicates whether the software believes the
|
||||||
laptop is docked in a docking station.
|
laptop is docked in a docking station.
|
||||||
|
|
||||||
What: /sys/devices/platform/dock.<N>/undock
|
What: /sys/devices/platform/dock.N/undock
|
||||||
Date: Dec, 2006
|
Date: Dec, 2006
|
||||||
KernelVersion: 2.6.19
|
KernelVersion: 2.6.19
|
||||||
Contact: linux-acpi@vger.kernel.org
|
Contact: linux-acpi@vger.kernel.org
|
||||||
@ -14,14 +14,14 @@ Description:
|
|||||||
(WO) Writing to this file causes the software to initiate an
|
(WO) Writing to this file causes the software to initiate an
|
||||||
undock request to the firmware.
|
undock request to the firmware.
|
||||||
|
|
||||||
What: /sys/devices/platform/dock.<N>/uid
|
What: /sys/devices/platform/dock.N/uid
|
||||||
Date: Feb, 2007
|
Date: Feb, 2007
|
||||||
KernelVersion: v2.6.21
|
KernelVersion: v2.6.21
|
||||||
Contact: linux-acpi@vger.kernel.org
|
Contact: linux-acpi@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
(RO) Displays the docking station the laptop is docked to.
|
(RO) Displays the docking station the laptop is docked to.
|
||||||
|
|
||||||
What: /sys/devices/platform/dock.<N>/flags
|
What: /sys/devices/platform/dock.N/flags
|
||||||
Date: May, 2007
|
Date: May, 2007
|
||||||
KernelVersion: v2.6.21
|
KernelVersion: v2.6.21
|
||||||
Contact: linux-acpi@vger.kernel.org
|
Contact: linux-acpi@vger.kernel.org
|
||||||
@ -30,7 +30,7 @@ Description:
|
|||||||
request has been made by the user (from the immediate_undock
|
request has been made by the user (from the immediate_undock
|
||||||
option).
|
option).
|
||||||
|
|
||||||
What: /sys/devices/platform/dock.<N>/type
|
What: /sys/devices/platform/dock.N/type
|
||||||
Date: Aug, 2008
|
Date: Aug, 2008
|
||||||
KernelVersion: v2.6.27
|
KernelVersion: v2.6.27
|
||||||
Contact: linux-acpi@vger.kernel.org
|
Contact: linux-acpi@vger.kernel.org
|
||||||
|
@ -269,39 +269,3 @@ Description:
|
|||||||
the current runtime PM status of the device, which may be
|
the current runtime PM status of the device, which may be
|
||||||
"suspended", "suspending", "resuming", "active", "error" (fatal
|
"suspended", "suspending", "resuming", "active", "error" (fatal
|
||||||
error), or "unsupported" (runtime PM is disabled).
|
error), or "unsupported" (runtime PM is disabled).
|
||||||
|
|
||||||
What: /sys/devices/.../power/runtime_active_time
|
|
||||||
Date: Jul 2010
|
|
||||||
Contact: Arjan van de Ven <arjan@linux.intel.com>
|
|
||||||
Description:
|
|
||||||
Reports the total time that the device has been active.
|
|
||||||
Used for runtime PM statistics.
|
|
||||||
|
|
||||||
What: /sys/devices/.../power/runtime_suspended_time
|
|
||||||
Date: Jul 2010
|
|
||||||
Contact: Arjan van de Ven <arjan@linux.intel.com>
|
|
||||||
Description:
|
|
||||||
Reports total time that the device has been suspended.
|
|
||||||
Used for runtime PM statistics.
|
|
||||||
|
|
||||||
What: /sys/devices/.../power/runtime_usage
|
|
||||||
Date: Apr 2010
|
|
||||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
|
||||||
Description:
|
|
||||||
Reports the runtime PM usage count of a device.
|
|
||||||
|
|
||||||
What: /sys/devices/.../power/runtime_enabled
|
|
||||||
Date: Apr 2010
|
|
||||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
|
||||||
Description:
|
|
||||||
Is runtime PM enabled for this device?
|
|
||||||
States are "enabled", "disabled", "forbidden" or a
|
|
||||||
combination of the latter two.
|
|
||||||
|
|
||||||
What: /sys/devices/.../power/runtime_active_kids
|
|
||||||
Date: Apr 2010
|
|
||||||
Contact: Dominik Brodowski <linux@dominikbrodowski.net>
|
|
||||||
Description:
|
|
||||||
Reports the runtime PM children usage count of a device, or
|
|
||||||
0 if the the children will be ignored.
|
|
||||||
|
|
||||||
|
@ -7,12 +7,10 @@ Description:
|
|||||||
bus / platform-specific way. This attribute is only present for
|
bus / platform-specific way. This attribute is only present for
|
||||||
devices that can support determining such information:
|
devices that can support determining such information:
|
||||||
|
|
||||||
=========== ===================================================
|
"removable": device can be removed from the platform by the user
|
||||||
"removable" device can be removed from the platform by the user
|
"fixed": device is fixed to the platform / cannot be removed
|
||||||
"fixed" device is fixed to the platform / cannot be removed
|
|
||||||
by the user.
|
by the user.
|
||||||
"unknown" The information is unavailable / cannot be deduced.
|
"unknown": The information is unavailable / cannot be deduced.
|
||||||
=========== ===================================================
|
|
||||||
|
|
||||||
Currently this is only supported by USB (which infers the
|
Currently this is only supported by USB (which infers the
|
||||||
information from a combination of hub descriptor bits and
|
information from a combination of hub descriptor bits and
|
||||||
|
@ -7,7 +7,7 @@ Description:
|
|||||||
Individual CPU attributes are contained in subdirectories
|
Individual CPU attributes are contained in subdirectories
|
||||||
named by the kernel's logical CPU number, e.g.:
|
named by the kernel's logical CPU number, e.g.:
|
||||||
|
|
||||||
/sys/devices/system/cpu/cpuX/
|
/sys/devices/system/cpu/cpu#/
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/kernel_max
|
What: /sys/devices/system/cpu/kernel_max
|
||||||
/sys/devices/system/cpu/offline
|
/sys/devices/system/cpu/offline
|
||||||
@ -53,7 +53,7 @@ Description: Dynamic addition and removal of CPU's. This is not hotplug
|
|||||||
the system. Information written to the file to remove CPU's
|
the system. Information written to the file to remove CPU's
|
||||||
is architecture specific.
|
is architecture specific.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/node
|
What: /sys/devices/system/cpu/cpu#/node
|
||||||
Date: October 2009
|
Date: October 2009
|
||||||
Contact: Linux memory management mailing list <linux-mm@kvack.org>
|
Contact: Linux memory management mailing list <linux-mm@kvack.org>
|
||||||
Description: Discover NUMA node a CPU belongs to
|
Description: Discover NUMA node a CPU belongs to
|
||||||
@ -67,41 +67,41 @@ Description: Discover NUMA node a CPU belongs to
|
|||||||
/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
|
/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/topology/core_id
|
What: /sys/devices/system/cpu/cpu#/topology/core_id
|
||||||
/sys/devices/system/cpu/cpuX/topology/core_siblings
|
/sys/devices/system/cpu/cpu#/topology/core_siblings
|
||||||
/sys/devices/system/cpu/cpuX/topology/core_siblings_list
|
/sys/devices/system/cpu/cpu#/topology/core_siblings_list
|
||||||
/sys/devices/system/cpu/cpuX/topology/physical_package_id
|
/sys/devices/system/cpu/cpu#/topology/physical_package_id
|
||||||
/sys/devices/system/cpu/cpuX/topology/thread_siblings
|
/sys/devices/system/cpu/cpu#/topology/thread_siblings
|
||||||
/sys/devices/system/cpu/cpuX/topology/thread_siblings_list
|
/sys/devices/system/cpu/cpu#/topology/thread_siblings_list
|
||||||
Date: December 2008
|
Date: December 2008
|
||||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||||
Description: CPU topology files that describe a logical CPU's relationship
|
Description: CPU topology files that describe a logical CPU's relationship
|
||||||
to other cores and threads in the same physical package.
|
to other cores and threads in the same physical package.
|
||||||
|
|
||||||
One cpuX directory is created per logical CPU in the system,
|
One cpu# directory is created per logical CPU in the system,
|
||||||
e.g. /sys/devices/system/cpu/cpu42/.
|
e.g. /sys/devices/system/cpu/cpu42/.
|
||||||
|
|
||||||
Briefly, the files above are:
|
Briefly, the files above are:
|
||||||
|
|
||||||
core_id: the CPU core ID of cpuX. Typically it is the
|
core_id: the CPU core ID of cpu#. Typically it is the
|
||||||
hardware platform's identifier (rather than the kernel's).
|
hardware platform's identifier (rather than the kernel's).
|
||||||
The actual value is architecture and platform dependent.
|
The actual value is architecture and platform dependent.
|
||||||
|
|
||||||
core_siblings: internal kernel map of cpuX's hardware threads
|
core_siblings: internal kernel map of cpu#'s hardware threads
|
||||||
within the same physical_package_id.
|
within the same physical_package_id.
|
||||||
|
|
||||||
core_siblings_list: human-readable list of the logical CPU
|
core_siblings_list: human-readable list of the logical CPU
|
||||||
numbers within the same physical_package_id as cpuX.
|
numbers within the same physical_package_id as cpu#.
|
||||||
|
|
||||||
physical_package_id: physical package id of cpuX. Typically
|
physical_package_id: physical package id of cpu#. Typically
|
||||||
corresponds to a physical socket number, but the actual value
|
corresponds to a physical socket number, but the actual value
|
||||||
is architecture and platform dependent.
|
is architecture and platform dependent.
|
||||||
|
|
||||||
thread_siblings: internal kernel map of cpuX's hardware
|
thread_siblings: internal kernel map of cpu#'s hardware
|
||||||
threads within the same core as cpuX
|
threads within the same core as cpu#
|
||||||
|
|
||||||
thread_siblings_list: human-readable list of cpuX's hardware
|
thread_siblings_list: human-readable list of cpu#'s hardware
|
||||||
threads within the same core as cpuX
|
threads within the same core as cpu#
|
||||||
|
|
||||||
See Documentation/admin-guide/cputopology.rst for more information.
|
See Documentation/admin-guide/cputopology.rst for more information.
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ Description: Discover cpuidle policy and mechanism
|
|||||||
Documentation/driver-api/pm/cpuidle.rst for more information.
|
Documentation/driver-api/pm/cpuidle.rst for more information.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/name
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/name
|
||||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
|
/sys/devices/system/cpu/cpuX/cpuidle/stateN/latency
|
||||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/power
|
/sys/devices/system/cpu/cpuX/cpuidle/stateN/power
|
||||||
/sys/devices/system/cpu/cpuX/cpuidle/stateN/time
|
/sys/devices/system/cpu/cpuX/cpuidle/stateN/time
|
||||||
@ -174,7 +174,7 @@ Description:
|
|||||||
(a count).
|
(a count).
|
||||||
======== ==== =================================================
|
======== ==== =================================================
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/desc
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/desc
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: v2.6.25
|
KernelVersion: v2.6.25
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -182,7 +182,7 @@ Description:
|
|||||||
(RO) A small description about the idle state (string).
|
(RO) A small description about the idle state (string).
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/disable
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/disable
|
||||||
Date: March 2012
|
Date: March 2012
|
||||||
KernelVersion: v3.10
|
KernelVersion: v3.10
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -195,14 +195,14 @@ Description:
|
|||||||
does not reflect it. Likewise, if one enables a deep state but a
|
does not reflect it. Likewise, if one enables a deep state but a
|
||||||
lighter state still is disabled, then this has no effect.
|
lighter state still is disabled, then this has no effect.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/default_status
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/default_status
|
||||||
Date: December 2019
|
Date: December 2019
|
||||||
KernelVersion: v5.6
|
KernelVersion: v5.6
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
Description:
|
Description:
|
||||||
(RO) The default status of this state, "enabled" or "disabled".
|
(RO) The default status of this state, "enabled" or "disabled".
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/residency
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/residency
|
||||||
Date: March 2014
|
Date: March 2014
|
||||||
KernelVersion: v3.15
|
KernelVersion: v3.15
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -211,7 +211,7 @@ Description:
|
|||||||
time (in microseconds) this cpu should spend in this idle state
|
time (in microseconds) this cpu should spend in this idle state
|
||||||
to make the transition worth the effort.
|
to make the transition worth the effort.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/
|
||||||
Date: March 2018
|
Date: March 2018
|
||||||
KernelVersion: v4.17
|
KernelVersion: v4.17
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -221,7 +221,7 @@ Description:
|
|||||||
This attribute group is only present for states that can be
|
This attribute group is only present for states that can be
|
||||||
used in suspend-to-idle with suspended timekeeping.
|
used in suspend-to-idle with suspended timekeeping.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/time
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/time
|
||||||
Date: March 2018
|
Date: March 2018
|
||||||
KernelVersion: v4.17
|
KernelVersion: v4.17
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -229,7 +229,7 @@ Description:
|
|||||||
Total time spent by the CPU in suspend-to-idle (with scheduler
|
Total time spent by the CPU in suspend-to-idle (with scheduler
|
||||||
tick suspended) after requesting this state.
|
tick suspended) after requesting this state.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpuidle/state<N>/s2idle/usage
|
What: /sys/devices/system/cpu/cpuX/cpuidle/stateN/s2idle/usage
|
||||||
Date: March 2018
|
Date: March 2018
|
||||||
KernelVersion: v4.17
|
KernelVersion: v4.17
|
||||||
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
Contact: Linux power management list <linux-pm@vger.kernel.org>
|
||||||
@ -237,7 +237,7 @@ Description:
|
|||||||
Total number of times this state has been requested by the CPU
|
Total number of times this state has been requested by the CPU
|
||||||
while entering suspend-to-idle.
|
while entering suspend-to-idle.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpufreq/*
|
What: /sys/devices/system/cpu/cpu#/cpufreq/*
|
||||||
Date: pre-git history
|
Date: pre-git history
|
||||||
Contact: linux-pm@vger.kernel.org
|
Contact: linux-pm@vger.kernel.org
|
||||||
Description: Discover and change clock speed of CPUs
|
Description: Discover and change clock speed of CPUs
|
||||||
@ -252,7 +252,7 @@ Description: Discover and change clock speed of CPUs
|
|||||||
See files in Documentation/cpu-freq/ for more information.
|
See files in Documentation/cpu-freq/ for more information.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpufreq/freqdomain_cpus
|
What: /sys/devices/system/cpu/cpu#/cpufreq/freqdomain_cpus
|
||||||
Date: June 2013
|
Date: June 2013
|
||||||
Contact: linux-pm@vger.kernel.org
|
Contact: linux-pm@vger.kernel.org
|
||||||
Description: Discover CPUs in the same CPU frequency coordination domain
|
Description: Discover CPUs in the same CPU frequency coordination domain
|
||||||
@ -301,16 +301,16 @@ Description: Processor frequency boosting control
|
|||||||
Documentation/admin-guide/pm/cpufreq.rst
|
Documentation/admin-guide/pm/cpufreq.rst
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/crash_notes
|
What: /sys/devices/system/cpu/cpu#/crash_notes
|
||||||
/sys/devices/system/cpu/cpuX/crash_notes_size
|
/sys/devices/system/cpu/cpu#/crash_notes_size
|
||||||
Date: April 2013
|
Date: April 2013
|
||||||
Contact: kexec@lists.infradead.org
|
Contact: kexec@lists.infradead.org
|
||||||
Description: address and size of the percpu note.
|
Description: address and size of the percpu note.
|
||||||
|
|
||||||
crash_notes: the physical address of the memory that holds the
|
crash_notes: the physical address of the memory that holds the
|
||||||
note of cpuX.
|
note of cpu#.
|
||||||
|
|
||||||
crash_notes_size: size of the note of cpuX.
|
crash_notes_size: size of the note of cpu#.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
|
What: /sys/devices/system/cpu/intel_pstate/max_perf_pct
|
||||||
@ -503,12 +503,12 @@ Description: Identifies the subset of CPUs in the system that can execute
|
|||||||
If absent, then all or none of the CPUs can execute AArch32
|
If absent, then all or none of the CPUs can execute AArch32
|
||||||
applications and execve() will behave accordingly.
|
applications and execve() will behave accordingly.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/cpu_capacity
|
What: /sys/devices/system/cpu/cpu#/cpu_capacity
|
||||||
Date: December 2016
|
Date: December 2016
|
||||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||||
Description: information about CPUs heterogeneity.
|
Description: information about CPUs heterogeneity.
|
||||||
|
|
||||||
cpu_capacity: capacity of cpuX.
|
cpu_capacity: capacity of cpu#.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/vulnerabilities
|
What: /sys/devices/system/cpu/vulnerabilities
|
||||||
/sys/devices/system/cpu/vulnerabilities/meltdown
|
/sys/devices/system/cpu/vulnerabilities/meltdown
|
||||||
@ -560,7 +560,7 @@ Description: Control Symmetric Multi Threading (SMT)
|
|||||||
If control status is "forceoff" or "notsupported" writes
|
If control status is "forceoff" or "notsupported" writes
|
||||||
are rejected.
|
are rejected.
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
|
What: /sys/devices/system/cpu/cpu#/power/energy_perf_bias
|
||||||
Date: March 2019
|
Date: March 2019
|
||||||
Contact: linux-pm@vger.kernel.org
|
Contact: linux-pm@vger.kernel.org
|
||||||
Description: Intel Energy and Performance Bias Hint (EPB)
|
Description: Intel Energy and Performance Bias Hint (EPB)
|
||||||
@ -666,18 +666,3 @@ Description: Preferred MTE tag checking mode
|
|||||||
================ ==============================================
|
================ ==============================================
|
||||||
|
|
||||||
See also: Documentation/arm64/memory-tagging-extension.rst
|
See also: Documentation/arm64/memory-tagging-extension.rst
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/nohz_full
|
|
||||||
Date: Apr 2015
|
|
||||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
|
||||||
Description:
|
|
||||||
(RO) the list of CPUs that are in nohz_full mode.
|
|
||||||
These CPUs are set by boot parameter "nohz_full=".
|
|
||||||
|
|
||||||
What: /sys/devices/system/cpu/isolated
|
|
||||||
Date: Apr 2015
|
|
||||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
|
||||||
Description:
|
|
||||||
(RO) the list of CPUs that are isolated and don't
|
|
||||||
participate in load balancing. These CPUs are set by
|
|
||||||
boot parameter "isolcpus=".
|
|
||||||
|
@ -13,7 +13,6 @@ Description:
|
|||||||
Interface specification for more details.
|
Interface specification for more details.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_type
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_type
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_type
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the device type. This is one of the UFS
|
Description: This file shows the device type. This is one of the UFS
|
||||||
@ -23,7 +22,6 @@ Description: This file shows the device type. This is one of the UFS
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_class
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_class
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_class
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the device class. This is one of the UFS
|
Description: This file shows the device class. This is one of the UFS
|
||||||
@ -33,7 +31,6 @@ Description: This file shows the device class. This is one of the UFS
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_sub_class
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_sub_class
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_sub_class
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the UFS storage subclass. This is one of
|
Description: This file shows the UFS storage subclass. This is one of
|
||||||
@ -43,7 +40,6 @@ Description: This file shows the UFS storage subclass. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/protocol
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/protocol
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/protocol
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the protocol supported by an UFS device.
|
Description: This file shows the protocol supported by an UFS device.
|
||||||
@ -54,7 +50,6 @@ Description: This file shows the protocol supported by an UFS device.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_luns
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_luns
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_luns
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows number of logical units. This is one of
|
Description: This file shows number of logical units. This is one of
|
||||||
@ -64,7 +59,6 @@ Description: This file shows number of logical units. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_wluns
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_wluns
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_wluns
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows number of well known logical units.
|
Description: This file shows number of well known logical units.
|
||||||
@ -75,7 +69,6 @@ Description: This file shows number of well known logical units.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/boot_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/boot_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/boot_enable
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows value that indicates whether the device is
|
Description: This file shows value that indicates whether the device is
|
||||||
@ -86,7 +79,6 @@ Description: This file shows value that indicates whether the device is
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/descriptor_access_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/descriptor_access_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/descriptor_access_enable
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows value that indicates whether the device
|
Description: This file shows value that indicates whether the device
|
||||||
@ -98,7 +90,6 @@ Description: This file shows value that indicates whether the device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_power_mode
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_power_mode
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/initial_power_mode
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows value that defines the power mode after
|
Description: This file shows value that defines the power mode after
|
||||||
@ -109,7 +100,6 @@ Description: This file shows value that defines the power mode after
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/high_priority_lun
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/high_priority_lun
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/high_priority_lun
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the high priority lun. This is one of
|
Description: This file shows the high priority lun. This is one of
|
||||||
@ -119,7 +109,6 @@ Description: This file shows the high priority lun. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/secure_removal_type
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/secure_removal_type
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/secure_removal_type
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the secure removal type. This is one of
|
Description: This file shows the secure removal type. This is one of
|
||||||
@ -129,7 +118,6 @@ Description: This file shows the secure removal type. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/support_security_lun
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/support_security_lun
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/support_security_lun
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the security lun is supported.
|
Description: This file shows whether the security lun is supported.
|
||||||
@ -140,7 +128,6 @@ Description: This file shows whether the security lun is supported.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/bkops_termination_latency
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/bkops_termination_latency
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/bkops_termination_latency
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the background operations termination
|
Description: This file shows the background operations termination
|
||||||
@ -151,7 +138,6 @@ Description: This file shows the background operations termination
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_active_icc_level
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/initial_active_icc_level
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/initial_active_icc_level
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the initial active ICC level. This is one
|
Description: This file shows the initial active ICC level. This is one
|
||||||
@ -161,7 +147,6 @@ Description: This file shows the initial active ICC level. This is one
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/specification_version
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/specification_version
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/specification_version
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the specification version. This is one
|
Description: This file shows the specification version. This is one
|
||||||
@ -171,7 +156,6 @@ Description: This file shows the specification version. This is one
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturing_date
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturing_date
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/manufacturing_date
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the manufacturing date in BCD format.
|
Description: This file shows the manufacturing date in BCD format.
|
||||||
@ -182,7 +166,6 @@ Description: This file shows the manufacturing date in BCD format.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturer_id
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/manufacturer_id
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/manufacturer_id
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the manufacturer ID. This is one of the
|
Description: This file shows the manufacturer ID. This is one of the
|
||||||
@ -192,7 +175,6 @@ Description: This file shows the manufacturer ID. This is one of the
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtt_capability
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtt_capability
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/rtt_capability
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum number of outstanding RTTs
|
Description: This file shows the maximum number of outstanding RTTs
|
||||||
@ -203,7 +185,6 @@ Description: This file shows the maximum number of outstanding RTTs
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtc_update
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/rtc_update
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/rtc_update
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the frequency and method of the realtime
|
Description: This file shows the frequency and method of the realtime
|
||||||
@ -214,7 +195,6 @@ Description: This file shows the frequency and method of the realtime
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ufs_features
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ufs_features
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/ufs_features
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows which features are supported by the device.
|
Description: This file shows which features are supported by the device.
|
||||||
@ -225,7 +205,6 @@ Description: This file shows which features are supported by the device.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ffu_timeout
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/ffu_timeout
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/ffu_timeout
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the FFU timeout. This is one of the
|
Description: This file shows the FFU timeout. This is one of the
|
||||||
@ -235,7 +214,6 @@ Description: This file shows the FFU timeout. This is one of the
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/queue_depth
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/queue_depth
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/queue_depth
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the device queue depth. This is one of the
|
Description: This file shows the device queue depth. This is one of the
|
||||||
@ -245,7 +223,6 @@ Description: This file shows the device queue depth. This is one of the
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_version
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/device_version
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/device_version
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the device version. This is one of the
|
Description: This file shows the device version. This is one of the
|
||||||
@ -255,7 +232,6 @@ Description: This file shows the device version. This is one of the
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_secure_wpa
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/number_of_secure_wpa
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/number_of_secure_wpa
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows number of secure write protect areas
|
Description: This file shows number of secure write protect areas
|
||||||
@ -266,7 +242,6 @@ Description: This file shows number of secure write protect areas
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_max_data_size
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_max_data_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/psa_max_data_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum amount of data that may be
|
Description: This file shows the maximum amount of data that may be
|
||||||
@ -278,7 +253,6 @@ Description: This file shows the maximum amount of data that may be
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_state_timeout
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/psa_state_timeout
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/psa_state_timeout
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the command maximum timeout for a change
|
Description: This file shows the command maximum timeout for a change
|
||||||
@ -290,7 +264,6 @@ Description: This file shows the command maximum timeout for a change
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/unipro_version
|
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/unipro_version
|
||||||
What: /sys/bus/platform/devices/*.ufs/interconnect_descriptor/unipro_version
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the MIPI UniPro version number in BCD format.
|
Description: This file shows the MIPI UniPro version number in BCD format.
|
||||||
@ -301,7 +274,6 @@ Description: This file shows the MIPI UniPro version number in BCD format.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/mphy_version
|
What: /sys/bus/platform/drivers/ufshcd/*/interconnect_descriptor/mphy_version
|
||||||
What: /sys/bus/platform/devices/*.ufs/interconnect_descriptor/mphy_version
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the MIPI M-PHY version number in BCD format.
|
Description: This file shows the MIPI M-PHY version number in BCD format.
|
||||||
@ -313,7 +285,6 @@ Description: This file shows the MIPI M-PHY version number in BCD format.
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/raw_device_capacity
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/raw_device_capacity
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/raw_device_capacity
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the total memory quantity available to
|
Description: This file shows the total memory quantity available to
|
||||||
@ -325,7 +296,6 @@ Description: This file shows the total memory quantity available to
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_luns
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_luns
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_number_of_luns
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum number of logical units
|
Description: This file shows the maximum number of logical units
|
||||||
@ -336,7 +306,6 @@ Description: This file shows the maximum number of logical units
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/segment_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/segment_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/segment_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the segment size. This is one of the UFS
|
Description: This file shows the segment size. This is one of the UFS
|
||||||
@ -346,7 +315,6 @@ Description: This file shows the segment size. This is one of the UFS
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/allocation_unit_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/allocation_unit_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/allocation_unit_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the allocation unit size. This is one of
|
Description: This file shows the allocation unit size. This is one of
|
||||||
@ -356,7 +324,6 @@ Description: This file shows the allocation unit size. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/min_addressable_block_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/min_addressable_block_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/min_addressable_block_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the minimum addressable block size. This
|
Description: This file shows the minimum addressable block size. This
|
||||||
@ -367,7 +334,6 @@ Description: This file shows the minimum addressable block size. This
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_read_block_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_read_block_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/optimal_read_block_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the optimal read block size. This is one
|
Description: This file shows the optimal read block size. This is one
|
||||||
@ -378,7 +344,6 @@ Description: This file shows the optimal read block size. This is one
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_write_block_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/optimal_write_block_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/optimal_write_block_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the optimal write block size. This is one
|
Description: This file shows the optimal write block size. This is one
|
||||||
@ -389,7 +354,6 @@ Description: This file shows the optimal write block size. This is one
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_in_buffer_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_in_buffer_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_in_buffer_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum data-in buffer size. This
|
Description: This file shows the maximum data-in buffer size. This
|
||||||
@ -400,7 +364,6 @@ Description: This file shows the maximum data-in buffer size. This
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_out_buffer_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_out_buffer_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_out_buffer_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum data-out buffer size. This
|
Description: This file shows the maximum data-out buffer size. This
|
||||||
@ -411,7 +374,6 @@ Description: This file shows the maximum data-out buffer size. This
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/rpmb_rw_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/rpmb_rw_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/rpmb_rw_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum number of RPMB frames allowed
|
Description: This file shows the maximum number of RPMB frames allowed
|
||||||
@ -422,7 +384,6 @@ Description: This file shows the maximum number of RPMB frames allowed
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/dyn_capacity_resource_policy
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/dyn_capacity_resource_policy
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/dyn_capacity_resource_policy
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the dynamic capacity resource policy. This
|
Description: This file shows the dynamic capacity resource policy. This
|
||||||
@ -433,7 +394,6 @@ Description: This file shows the dynamic capacity resource policy. This
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/data_ordering
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/data_ordering
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/data_ordering
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows support for out-of-order data transfer.
|
Description: This file shows support for out-of-order data transfer.
|
||||||
@ -444,7 +404,6 @@ Description: This file shows support for out-of-order data transfer.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_contexts
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/max_number_of_contexts
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/max_number_of_contexts
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows maximum available number of contexts which
|
Description: This file shows maximum available number of contexts which
|
||||||
@ -455,7 +414,6 @@ Description: This file shows maximum available number of contexts which
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_unit_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_unit_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/sys_data_tag_unit_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows system data tag unit size. This is one of
|
Description: This file shows system data tag unit size. This is one of
|
||||||
@ -465,7 +423,6 @@ Description: This file shows system data tag unit size. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_resource_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/sys_data_tag_resource_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/sys_data_tag_resource_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows maximum storage area size allocated by
|
Description: This file shows maximum storage area size allocated by
|
||||||
@ -477,7 +434,6 @@ Description: This file shows maximum storage area size allocated by
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/secure_removal_types
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/secure_removal_types
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/secure_removal_types
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows supported secure removal types. This is
|
Description: This file shows supported secure removal types. This is
|
||||||
@ -488,7 +444,6 @@ Description: This file shows supported secure removal types. This is
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/memory_types
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/memory_types
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/memory_types
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows supported memory types. This is one of
|
Description: This file shows supported memory types. This is one of
|
||||||
@ -499,7 +454,6 @@ Description: This file shows supported memory types. This is one of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_max_alloc_units
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_max_alloc_units
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/*_memory_max_alloc_units
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum number of allocation units for
|
Description: This file shows the maximum number of allocation units for
|
||||||
@ -511,7 +465,6 @@ Description: This file shows the maximum number of allocation units for
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_capacity_adjustment_factor
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/*_memory_capacity_adjustment_factor
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/*_memory_capacity_adjustment_factor
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the memory capacity adjustment factor for
|
Description: This file shows the memory capacity adjustment factor for
|
||||||
@ -524,7 +477,6 @@ Description: This file shows the memory capacity adjustment factor for
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/eol_info
|
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/eol_info
|
||||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/eol_info
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows preend of life information. This is one
|
Description: This file shows preend of life information. This is one
|
||||||
@ -535,7 +487,6 @@ Description: This file shows preend of life information. This is one
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_a
|
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_a
|
||||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/life_time_estimation_a
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows indication of the device life time
|
Description: This file shows indication of the device life time
|
||||||
@ -546,7 +497,6 @@ Description: This file shows indication of the device life time
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_b
|
What: /sys/bus/platform/drivers/ufshcd/*/health_descriptor/life_time_estimation_b
|
||||||
What: /sys/bus/platform/devices/*.ufs/health_descriptor/life_time_estimation_b
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows indication of the device life time
|
Description: This file shows indication of the device life time
|
||||||
@ -558,7 +508,6 @@ Description: This file shows indication of the device life time
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/power_descriptor/active_icc_levels_vcc*
|
What: /sys/bus/platform/drivers/ufshcd/*/power_descriptor/active_icc_levels_vcc*
|
||||||
What: /sys/bus/platform/devices/*.ufs/power_descriptor/active_icc_levels_vcc*
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows maximum VCC, VCCQ and VCCQ2 value for
|
Description: This file shows maximum VCC, VCCQ and VCCQ2 value for
|
||||||
@ -570,7 +519,6 @@ Description: This file shows maximum VCC, VCCQ and VCCQ2 value for
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/manufacturer_name
|
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/manufacturer_name
|
||||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/manufacturer_name
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file contains a device manufacturer name string.
|
Description: This file contains a device manufacturer name string.
|
||||||
@ -580,7 +528,6 @@ Description: This file contains a device manufacturer name string.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_name
|
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_name
|
||||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/product_name
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file contains a product name string. The full information
|
Description: This file contains a product name string. The full information
|
||||||
@ -589,7 +536,6 @@ Description: This file contains a product name string. The full information
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/oem_id
|
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/oem_id
|
||||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/oem_id
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file contains a OEM ID string. The full information
|
Description: This file contains a OEM ID string. The full information
|
||||||
@ -598,7 +544,6 @@ Description: This file contains a OEM ID string. The full information
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/serial_number
|
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/serial_number
|
||||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/serial_number
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file contains a device serial number string. The full
|
Description: This file contains a device serial number string. The full
|
||||||
@ -608,7 +553,6 @@ Description: This file contains a device serial number string. The full
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_revision
|
What: /sys/bus/platform/drivers/ufshcd/*/string_descriptors/product_revision
|
||||||
What: /sys/bus/platform/devices/*.ufs/string_descriptors/product_revision
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file contains a product revision string. The full
|
Description: This file contains a product revision string. The full
|
||||||
@ -740,7 +684,6 @@ Description: This file shows the granularity of the LUN. This is one of
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/device_init
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/device_init
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/device_init
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the device init status. The full information
|
Description: This file shows the device init status. The full information
|
||||||
@ -749,7 +692,6 @@ Description: This file shows the device init status. The full information
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/permanent_wpe
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/permanent_wpe
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/permanent_wpe
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether permanent write protection is enabled.
|
Description: This file shows whether permanent write protection is enabled.
|
||||||
@ -759,7 +701,6 @@ Description: This file shows whether permanent write protection is enabled.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/power_on_wpe
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/power_on_wpe
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/power_on_wpe
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether write protection is enabled on all
|
Description: This file shows whether write protection is enabled on all
|
||||||
@ -770,7 +711,6 @@ Description: This file shows whether write protection is enabled on all
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/bkops_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/bkops_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/bkops_enable
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the device background operations are
|
Description: This file shows whether the device background operations are
|
||||||
@ -780,7 +720,6 @@ Description: This file shows whether the device background operations are
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/life_span_mode_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/life_span_mode_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/life_span_mode_enable
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the device life span mode is enabled.
|
Description: This file shows whether the device life span mode is enabled.
|
||||||
@ -790,7 +729,6 @@ Description: This file shows whether the device life span mode is enabled.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/phy_resource_removal
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/phy_resource_removal
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/phy_resource_removal
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether physical resource removal is enable.
|
Description: This file shows whether physical resource removal is enable.
|
||||||
@ -800,7 +738,6 @@ Description: This file shows whether physical resource removal is enable.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/busy_rtc
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/busy_rtc
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/busy_rtc
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the device is executing internal
|
Description: This file shows whether the device is executing internal
|
||||||
@ -810,7 +747,6 @@ Description: This file shows whether the device is executing internal
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/disable_fw_update
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/disable_fw_update
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/disable_fw_update
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the device FW update is permanently
|
Description: This file shows whether the device FW update is permanently
|
||||||
@ -821,7 +757,6 @@ Description: This file shows whether the device FW update is permanently
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/boot_lun_enabled
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/boot_lun_enabled
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/boot_lun_enabled
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the boot lun enabled UFS device attribute.
|
Description: This file provides the boot lun enabled UFS device attribute.
|
||||||
@ -831,7 +766,6 @@ Description: This file provides the boot lun enabled UFS device attribute.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/current_power_mode
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/current_power_mode
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/current_power_mode
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the current power mode UFS device attribute.
|
Description: This file provides the current power mode UFS device attribute.
|
||||||
@ -841,7 +775,6 @@ Description: This file provides the current power mode UFS device attribute.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/active_icc_level
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/active_icc_level
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/active_icc_level
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the active icc level UFS device attribute.
|
Description: This file provides the active icc level UFS device attribute.
|
||||||
@ -851,7 +784,6 @@ Description: This file provides the active icc level UFS device attribute.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ooo_data_enabled
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ooo_data_enabled
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/ooo_data_enabled
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the out of order data transfer enabled UFS
|
Description: This file provides the out of order data transfer enabled UFS
|
||||||
@ -861,7 +793,6 @@ Description: This file provides the out of order data transfer enabled UFS
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/bkops_status
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/bkops_status
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/bkops_status
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the background operations status UFS device
|
Description: This file provides the background operations status UFS device
|
||||||
@ -871,7 +802,6 @@ Description: This file provides the background operations status UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/purge_status
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/purge_status
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/purge_status
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the purge operation status UFS device
|
Description: This file provides the purge operation status UFS device
|
||||||
@ -881,7 +811,6 @@ Description: This file provides the purge operation status UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_in_size
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_in_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_in_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum data size in a DATA IN
|
Description: This file shows the maximum data size in a DATA IN
|
||||||
@ -891,7 +820,6 @@ Description: This file shows the maximum data size in a DATA IN
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_out_size
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_out_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_out_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the maximum number of bytes that can be
|
Description: This file shows the maximum number of bytes that can be
|
||||||
@ -901,7 +829,6 @@ Description: This file shows the maximum number of bytes that can be
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/reference_clock_frequency
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/reference_clock_frequency
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/reference_clock_frequency
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the reference clock frequency UFS device
|
Description: This file provides the reference clock frequency UFS device
|
||||||
@ -911,7 +838,6 @@ Description: This file provides the reference clock frequency UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/configuration_descriptor_lock
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/configuration_descriptor_lock
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/configuration_descriptor_lock
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows whether the configuration descriptor is locked.
|
Description: This file shows whether the configuration descriptor is locked.
|
||||||
@ -919,7 +845,6 @@ Description: This file shows whether the configuration descriptor is locked.
|
|||||||
UFS specifications 2.1. The file is read only.
|
UFS specifications 2.1. The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_number_of_rtt
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_number_of_rtt
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_number_of_rtt
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the maximum current number of
|
Description: This file provides the maximum current number of
|
||||||
@ -930,7 +855,6 @@ Description: This file provides the maximum current number of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_control
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_control
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/exception_event_control
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the exception event control UFS device
|
Description: This file provides the exception event control UFS device
|
||||||
@ -940,7 +864,6 @@ Description: This file provides the exception event control UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_status
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/exception_event_status
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/exception_event_status
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the exception event status UFS device
|
Description: This file provides the exception event status UFS device
|
||||||
@ -950,7 +873,6 @@ Description: This file provides the exception event status UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ffu_status
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/ffu_status
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/ffu_status
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file provides the ffu status UFS device attribute.
|
Description: This file provides the ffu status UFS device attribute.
|
||||||
@ -960,7 +882,6 @@ Description: This file provides the ffu status UFS device attribute.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_state
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_state
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/psa_state
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file show the PSA feature status. The full information
|
Description: This file show the PSA feature status. The full information
|
||||||
@ -969,7 +890,6 @@ Description: This file show the PSA feature status. The full information
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_data_size
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/psa_data_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/psa_data_size
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the amount of data that the host plans to
|
Description: This file shows the amount of data that the host plans to
|
||||||
@ -983,7 +903,7 @@ Description: This file shows the amount of data that the host plans to
|
|||||||
What: /sys/class/scsi_device/*/device/dyn_cap_needed
|
What: /sys/class/scsi_device/*/device/dyn_cap_needed
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
Contact: Stanislav Nijnikov <stanislav.nijnikov@wdc.com>
|
||||||
Description: This file shows the amount of physical memory needed
|
Description: This file shows the The amount of physical memory needed
|
||||||
to be removed from the physical memory resources pool of
|
to be removed from the physical memory resources pool of
|
||||||
the particular logical unit. The full information about
|
the particular logical unit. The full information about
|
||||||
the attribute could be found at UFS specifications 2.1.
|
the attribute could be found at UFS specifications 2.1.
|
||||||
@ -992,7 +912,6 @@ Description: This file shows the amount of physical memory needed
|
|||||||
|
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_lvl
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_lvl
|
||||||
What: /sys/bus/platform/devices/*.ufs/rpm_lvl
|
|
||||||
Date: September 2014
|
Date: September 2014
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
@ -1019,7 +938,6 @@ Description: This entry could be used to set or show the UFS device
|
|||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
||||||
What: /sys/bus/platform/devices/*.ufs/rpm_target_dev_state
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry shows the target power mode of an UFS device
|
Description: This entry shows the target power mode of an UFS device
|
||||||
@ -1028,7 +946,6 @@ Description: This entry shows the target power mode of an UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_link_state
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_link_state
|
||||||
What: /sys/bus/platform/devices/*.ufs/rpm_target_link_state
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry shows the target state of an UFS UIC link
|
Description: This entry shows the target state of an UFS UIC link
|
||||||
@ -1037,7 +954,6 @@ Description: This entry shows the target state of an UFS UIC link
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_lvl
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_lvl
|
||||||
What: /sys/bus/platform/devices/*.ufs/spm_lvl
|
|
||||||
Date: September 2014
|
Date: September 2014
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
@ -1064,7 +980,6 @@ Description: This entry could be used to set or show the UFS device
|
|||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
||||||
What: /sys/bus/platform/devices/*.ufs/spm_target_dev_state
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry shows the target power mode of an UFS device
|
Description: This entry shows the target power mode of an UFS device
|
||||||
@ -1073,7 +988,6 @@ Description: This entry shows the target power mode of an UFS device
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_link_state
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_link_state
|
||||||
What: /sys/bus/platform/devices/*.ufs/spm_target_link_state
|
|
||||||
Date: February 2018
|
Date: February 2018
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry shows the target state of an UFS UIC link
|
Description: This entry shows the target state of an UFS UIC link
|
||||||
@ -1082,7 +996,6 @@ Description: This entry shows the target state of an UFS UIC link
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/monitor_enable
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the status of performance monitor enablement
|
Description: This file shows the status of performance monitor enablement
|
||||||
@ -1090,7 +1003,6 @@ Description: This file shows the status of performance monitor enablement
|
|||||||
is stopped, the performance data collected is also cleared.
|
is stopped, the performance data collected is also cleared.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_chunk_size
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/monitor_chunk_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/monitor_chunk_size
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file tells the monitor to focus on requests transferring
|
Description: This file tells the monitor to focus on requests transferring
|
||||||
@ -1098,7 +1010,6 @@ Description: This file tells the monitor to focus on requests transferring
|
|||||||
It can only be changed when monitor is disabled.
|
It can only be changed when monitor is disabled.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_sectors
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_sectors
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_total_sectors
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how many sectors (in 512 Bytes) have been
|
Description: This file shows how many sectors (in 512 Bytes) have been
|
||||||
@ -1107,7 +1018,6 @@ Description: This file shows how many sectors (in 512 Bytes) have been
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_busy
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_total_busy
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_total_busy
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how long (in micro seconds) has been spent
|
Description: This file shows how long (in micro seconds) has been spent
|
||||||
@ -1116,7 +1026,6 @@ Description: This file shows how long (in micro seconds) has been spent
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_nr_requests
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_nr_requests
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_nr_requests
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how many read requests have been sent after
|
Description: This file shows how many read requests have been sent after
|
||||||
@ -1125,7 +1034,6 @@ Description: This file shows how many read requests have been sent after
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_max
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_max
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_max
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the maximum latency (in micro seconds) of
|
Description: This file shows the maximum latency (in micro seconds) of
|
||||||
@ -1134,7 +1042,6 @@ Description: This file shows the maximum latency (in micro seconds) of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_min
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_min
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_min
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the minimum latency (in micro seconds) of
|
Description: This file shows the minimum latency (in micro seconds) of
|
||||||
@ -1143,7 +1050,6 @@ Description: This file shows the minimum latency (in micro seconds) of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_avg
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_avg
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_avg
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the average latency (in micro seconds) of
|
Description: This file shows the average latency (in micro seconds) of
|
||||||
@ -1152,7 +1058,6 @@ Description: This file shows the average latency (in micro seconds) of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_sum
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/read_req_latency_sum
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/read_req_latency_sum
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the total latency (in micro seconds) of
|
Description: This file shows the total latency (in micro seconds) of
|
||||||
@ -1161,7 +1066,6 @@ Description: This file shows the total latency (in micro seconds) of
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_sectors
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_sectors
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_total_sectors
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how many sectors (in 512 Bytes) have been sent
|
Description: This file shows how many sectors (in 512 Bytes) have been sent
|
||||||
@ -1170,7 +1074,6 @@ Description: This file shows how many sectors (in 512 Bytes) have been sent
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_busy
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_total_busy
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_total_busy
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how long (in micro seconds) has been spent
|
Description: This file shows how long (in micro seconds) has been spent
|
||||||
@ -1179,7 +1082,6 @@ Description: This file shows how long (in micro seconds) has been spent
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_nr_requests
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_nr_requests
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_nr_requests
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows how many write requests have been sent after
|
Description: This file shows how many write requests have been sent after
|
||||||
@ -1188,7 +1090,6 @@ Description: This file shows how many write requests have been sent after
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_max
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_max
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_max
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the maximum latency (in micro seconds) of write
|
Description: This file shows the maximum latency (in micro seconds) of write
|
||||||
@ -1197,7 +1098,6 @@ Description: This file shows the maximum latency (in micro seconds) of write
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_min
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_min
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_min
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the minimum latency (in micro seconds) of write
|
Description: This file shows the minimum latency (in micro seconds) of write
|
||||||
@ -1206,7 +1106,6 @@ Description: This file shows the minimum latency (in micro seconds) of write
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_avg
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_avg
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_avg
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the average latency (in micro seconds) of write
|
Description: This file shows the average latency (in micro seconds) of write
|
||||||
@ -1215,7 +1114,6 @@ Description: This file shows the average latency (in micro seconds) of write
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_sum
|
What: /sys/bus/platform/drivers/ufshcd/*/monitor/write_req_latency_sum
|
||||||
What: /sys/bus/platform/devices/*.ufs/monitor/write_req_latency_sum
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Can Guo <cang@codeaurora.org>
|
Contact: Can Guo <cang@codeaurora.org>
|
||||||
Description: This file shows the total latency (in micro seconds) of write
|
Description: This file shows the total latency (in micro seconds) of write
|
||||||
@ -1224,7 +1122,6 @@ Description: This file shows the total latency (in micro seconds) of write
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_presv_us_en
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_presv_us_en
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_presv_us_en
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows if preserve user-space was configured
|
Description: This entry shows if preserve user-space was configured
|
||||||
@ -1232,7 +1129,6 @@ Description: This entry shows if preserve user-space was configured
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_shared_alloc_units
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_shared_alloc_units
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_shared_alloc_units
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the shared allocated units of WB buffer
|
Description: This entry shows the shared allocated units of WB buffer
|
||||||
@ -1240,7 +1136,6 @@ Description: This entry shows the shared allocated units of WB buffer
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_type
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/wb_type
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/wb_type
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the configured WB type.
|
Description: This entry shows the configured WB type.
|
||||||
@ -1249,7 +1144,6 @@ Description: This entry shows the configured WB type.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_buff_cap_adj
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_buff_cap_adj
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_buff_cap_adj
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the total user-space decrease in shared
|
Description: This entry shows the total user-space decrease in shared
|
||||||
@ -1260,7 +1154,6 @@ Description: This entry shows the total user-space decrease in shared
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_alloc_units
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_alloc_units
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_max_alloc_units
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the Maximum total WriteBooster Buffer size
|
Description: This entry shows the Maximum total WriteBooster Buffer size
|
||||||
@ -1269,7 +1162,6 @@ Description: This entry shows the Maximum total WriteBooster Buffer size
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_wb_luns
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_max_wb_luns
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_max_wb_luns
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the maximum number of luns that can support
|
Description: This entry shows the maximum number of luns that can support
|
||||||
@ -1278,7 +1170,6 @@ Description: This entry shows the maximum number of luns that can support
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_red_type
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_red_type
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_sup_red_type
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: The supportability of user space reduction mode
|
Description: The supportability of user space reduction mode
|
||||||
@ -1293,7 +1184,6 @@ Description: The supportability of user space reduction mode
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_wb_type
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/wb_sup_wb_type
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/wb_sup_wb_type
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: The supportability of WriteBooster Buffer type.
|
Description: The supportability of WriteBooster Buffer type.
|
||||||
@ -1308,7 +1198,6 @@ Description: The supportability of WriteBooster Buffer type.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_enable
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the status of WriteBooster.
|
Description: This entry shows the status of WriteBooster.
|
||||||
@ -1321,7 +1210,6 @@ Description: This entry shows the status of WriteBooster.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_en
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_en
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_flush_en
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows if flush is enabled.
|
Description: This entry shows if flush is enabled.
|
||||||
@ -1334,7 +1222,6 @@ Description: This entry shows if flush is enabled.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_during_h8
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/wb_flush_during_h8
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/wb_flush_during_h8
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: Flush WriteBooster Buffer during hibernate state.
|
Description: Flush WriteBooster Buffer during hibernate state.
|
||||||
@ -1349,7 +1236,6 @@ Description: Flush WriteBooster Buffer during hibernate state.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_avail_buf
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_avail_buf
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_avail_buf
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the amount of unused WriteBooster buffer
|
Description: This entry shows the amount of unused WriteBooster buffer
|
||||||
@ -1358,7 +1244,6 @@ Description: This entry shows the amount of unused WriteBooster buffer
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_cur_buf
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_cur_buf
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_cur_buf
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the amount of unused current buffer.
|
Description: This entry shows the amount of unused current buffer.
|
||||||
@ -1366,7 +1251,6 @@ Description: This entry shows the amount of unused current buffer.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_flush_status
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_flush_status
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_flush_status
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows the flush operation status.
|
Description: This entry shows the flush operation status.
|
||||||
@ -1383,7 +1267,6 @@ Description: This entry shows the flush operation status.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_life_time_est
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/wb_life_time_est
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/wb_life_time_est
|
|
||||||
Date: June 2020
|
Date: June 2020
|
||||||
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
Contact: Asutosh Das <asutoshd@codeaurora.org>
|
||||||
Description: This entry shows an indication of the WriteBooster Buffer
|
Description: This entry shows an indication of the WriteBooster Buffer
|
||||||
@ -1406,7 +1289,6 @@ Description: This entry shows the configured size of WriteBooster buffer.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/wb_on
|
What: /sys/bus/platform/drivers/ufshcd/*/wb_on
|
||||||
What: /sys/bus/platform/devices/*.ufs/wb_on
|
|
||||||
Date: January 2021
|
Date: January 2021
|
||||||
Contact: Bean Huo <beanhuo@micron.com>
|
Contact: Bean Huo <beanhuo@micron.com>
|
||||||
Description: This node is used to set or display whether UFS WriteBooster is
|
Description: This node is used to set or display whether UFS WriteBooster is
|
||||||
@ -1418,7 +1300,6 @@ Description: This node is used to set or display whether UFS WriteBooster is
|
|||||||
disable/enable WriteBooster through this sysfs node.
|
disable/enable WriteBooster through this sysfs node.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_version
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the HPB specification version.
|
Description: This entry shows the HPB specification version.
|
||||||
@ -1429,7 +1310,6 @@ Description: This entry shows the HPB specification version.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
|
What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
|
||||||
What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_control
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows an indication of the HPB control mode.
|
Description: This entry shows an indication of the HPB control mode.
|
||||||
@ -1439,7 +1319,6 @@ Description: This entry shows an indication of the HPB control mode.
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_region_size
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the bHPBRegionSize which can be calculated
|
Description: This entry shows the bHPBRegionSize which can be calculated
|
||||||
@ -1449,7 +1328,6 @@ Description: This entry shows the bHPBRegionSize which can be calculated
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_number_lu
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the maximum number of HPB LU supported by
|
Description: This entry shows the maximum number of HPB LU supported by
|
||||||
@ -1460,7 +1338,6 @@ Description: This entry shows the maximum number of HPB LU supported by
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_subregion_size
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the bHPBSubRegionSize, which can be
|
Description: This entry shows the bHPBSubRegionSize, which can be
|
||||||
@ -1472,7 +1349,6 @@ Description: This entry shows the bHPBSubRegionSize, which can be
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_max_active_regions
|
What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_max_active_regions
|
||||||
What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_max_active_regions
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the maximum number of active HPB regions that
|
Description: This entry shows the maximum number of active HPB regions that
|
||||||
@ -1558,7 +1434,6 @@ Description: This entry shows the requeue timeout threshold for write buffer
|
|||||||
this entry.
|
this entry.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_size_hpb_single_cmd
|
What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_size_hpb_single_cmd
|
||||||
What: /sys/bus/platform/devices/*.ufs/attributes/max_data_size_hpb_single_cmd
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the maximum HPB data size for using a single HPB
|
Description: This entry shows the maximum HPB data size for using a single HPB
|
||||||
@ -1575,7 +1450,6 @@ Description: This entry shows the maximum HPB data size for using a single HPB
|
|||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/flags/hpb_enable
|
What: /sys/bus/platform/drivers/ufshcd/*/flags/hpb_enable
|
||||||
What: /sys/bus/platform/devices/*.ufs/flags/hpb_enable
|
|
||||||
Date: June 2021
|
Date: June 2021
|
||||||
Contact: Daejun Park <daejun7.park@samsung.com>
|
Contact: Daejun Park <daejun7.park@samsung.com>
|
||||||
Description: This entry shows the status of HPB.
|
Description: This entry shows the status of HPB.
|
||||||
|
@ -29,7 +29,7 @@ Description:
|
|||||||
What: /sys/module/xen_blkback/parameters/buffer_squeeze_duration_ms
|
What: /sys/module/xen_blkback/parameters/buffer_squeeze_duration_ms
|
||||||
Date: December 2019
|
Date: December 2019
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: SeongJae Park <sj@kernel.org>
|
Contact: SeongJae Park <sjpark@amazon.de>
|
||||||
Description:
|
Description:
|
||||||
When memory pressure is reported to blkback this option
|
When memory pressure is reported to blkback this option
|
||||||
controls the duration in milliseconds that blkback will not
|
controls the duration in milliseconds that blkback will not
|
||||||
@ -39,7 +39,7 @@ Description:
|
|||||||
What: /sys/module/xen_blkback/parameters/feature_persistent
|
What: /sys/module/xen_blkback/parameters/feature_persistent
|
||||||
Date: September 2020
|
Date: September 2020
|
||||||
KernelVersion: 5.10
|
KernelVersion: 5.10
|
||||||
Contact: SeongJae Park <sj@kernel.org>
|
Contact: SeongJae Park <sjpark@amazon.de>
|
||||||
Description:
|
Description:
|
||||||
Whether to enable the persistent grants feature or not. Note
|
Whether to enable the persistent grants feature or not. Note
|
||||||
that this option only takes effect on newly created backends.
|
that this option only takes effect on newly created backends.
|
||||||
|
@ -12,7 +12,7 @@ Description:
|
|||||||
What: /sys/module/xen_blkfront/parameters/feature_persistent
|
What: /sys/module/xen_blkfront/parameters/feature_persistent
|
||||||
Date: September 2020
|
Date: September 2020
|
||||||
KernelVersion: 5.10
|
KernelVersion: 5.10
|
||||||
Contact: SeongJae Park <sj@kernel.org>
|
Contact: SeongJae Park <sjpark@amazon.de>
|
||||||
Description:
|
Description:
|
||||||
Whether to enable the persistent grants feature or not. Note
|
Whether to enable the persistent grants feature or not. Note
|
||||||
that this option only takes effect on newly created frontends.
|
that this option only takes effect on newly created frontends.
|
||||||
|
@ -24,14 +24,14 @@ Date: February 2015
|
|||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: The version of the ESRT structure provided by the firmware.
|
Description: The version of the ESRT structure provided by the firmware.
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/
|
What: /sys/firmware/efi/esrt/entries/entry$N/
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: Each ESRT entry is identified by a GUID, and each gets a
|
Description: Each ESRT entry is identified by a GUID, and each gets a
|
||||||
subdirectory under entries/ .
|
subdirectory under entries/ .
|
||||||
example: /sys/firmware/efi/esrt/entries/entry0/
|
example: /sys/firmware/efi/esrt/entries/entry0/
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_type
|
What: /sys/firmware/efi/esrt/entries/entry$N/fw_type
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: What kind of firmware entry this is:
|
Description: What kind of firmware entry this is:
|
||||||
@ -43,33 +43,33 @@ Description: What kind of firmware entry this is:
|
|||||||
3 UEFI Driver
|
3 UEFI Driver
|
||||||
== ===============
|
== ===============
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_class
|
What: /sys/firmware/efi/esrt/entries/entry$N/fw_class
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: This is the entry's guid, and will match the directory name.
|
Description: This is the entry's guid, and will match the directory name.
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/fw_version
|
What: /sys/firmware/efi/esrt/entries/entry$N/fw_version
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: The version of the firmware currently installed. This is a
|
Description: The version of the firmware currently installed. This is a
|
||||||
32-bit unsigned integer.
|
32-bit unsigned integer.
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/lowest_supported_fw_version
|
What: /sys/firmware/efi/esrt/entries/entry$N/lowest_supported_fw_version
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: The lowest version of the firmware that can be installed.
|
Description: The lowest version of the firmware that can be installed.
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/capsule_flags
|
What: /sys/firmware/efi/esrt/entries/entry$N/capsule_flags
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: Flags that must be passed to UpdateCapsule()
|
Description: Flags that must be passed to UpdateCapsule()
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/last_attempt_version
|
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_version
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: The last firmware version for which an update was attempted.
|
Description: The last firmware version for which an update was attempted.
|
||||||
|
|
||||||
What: /sys/firmware/efi/esrt/entries/entry<N>/last_attempt_status
|
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_status
|
||||||
Date: February 2015
|
Date: February 2015
|
||||||
Contact: Peter Jones <pjones@redhat.com>
|
Contact: Peter Jones <pjones@redhat.com>
|
||||||
Description: The result of the last firmware update attempt for the
|
Description: The result of the last firmware update attempt for the
|
||||||
|
@ -112,11 +112,6 @@ Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
|||||||
Description: Set timeout to issue discard commands during umount.
|
Description: Set timeout to issue discard commands during umount.
|
||||||
Default: 5 secs
|
Default: 5 secs
|
||||||
|
|
||||||
What: /sys/fs/f2fs/<disk>/pending_discard
|
|
||||||
Date: November 2021
|
|
||||||
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
|
||||||
Description: Shows the number of pending discard commands in the queue.
|
|
||||||
|
|
||||||
What: /sys/fs/f2fs/<disk>/max_victim_search
|
What: /sys/fs/f2fs/<disk>/max_victim_search
|
||||||
Date: January 2014
|
Date: January 2014
|
||||||
Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
|
Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
|
||||||
@ -517,26 +512,3 @@ Date: July 2021
|
|||||||
Contact: "Daeho Jeong" <daehojeong@google.com>
|
Contact: "Daeho Jeong" <daehojeong@google.com>
|
||||||
Description: You can control the multiplier value of bdi device readahead window size
|
Description: You can control the multiplier value of bdi device readahead window size
|
||||||
between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option.
|
between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option.
|
||||||
|
|
||||||
What: /sys/fs/f2fs/<disk>/max_fragment_chunk
|
|
||||||
Date: August 2021
|
|
||||||
Contact: "Daeho Jeong" <daehojeong@google.com>
|
|
||||||
Description: With "mode=fragment:block" mount options, we can scatter block allocation.
|
|
||||||
f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
|
|
||||||
in the length of 1..<max_fragment_hole> by turns. This value can be set
|
|
||||||
between 1..512 and the default value is 4.
|
|
||||||
|
|
||||||
What: /sys/fs/f2fs/<disk>/max_fragment_hole
|
|
||||||
Date: August 2021
|
|
||||||
Contact: "Daeho Jeong" <daehojeong@google.com>
|
|
||||||
Description: With "mode=fragment:block" mount options, we can scatter block allocation.
|
|
||||||
f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
|
|
||||||
in the length of 1..<max_fragment_hole> by turns. This value can be set
|
|
||||||
between 1..512 and the default value is 4.
|
|
||||||
|
|
||||||
What: /sys/fs/f2fs/<disk>/gc_urgent_high_remaining
|
|
||||||
Date: December 2021
|
|
||||||
Contact: "Daeho Jeong" <daehojeong@google.com>
|
|
||||||
Description: You can set the trial count limit for GC urgent high mode with this value.
|
|
||||||
If GC thread gets to the limit, the mode will turn back to GC normal mode.
|
|
||||||
By default, the value is zero, which means there is no limit like before.
|
|
||||||
|
@ -10,7 +10,7 @@ Description:
|
|||||||
any cache it aliases, if any).
|
any cache it aliases, if any).
|
||||||
Users: kernel memory tuning tools
|
Users: kernel memory tuning tools
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/aliases
|
What: /sys/kernel/slab/cache/aliases
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -19,7 +19,7 @@ Description:
|
|||||||
The aliases file is read-only and specifies how many caches
|
The aliases file is read-only and specifies how many caches
|
||||||
have merged into this cache.
|
have merged into this cache.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/align
|
What: /sys/kernel/slab/cache/align
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -28,7 +28,7 @@ Description:
|
|||||||
The align file is read-only and specifies the cache's object
|
The align file is read-only and specifies the cache's object
|
||||||
alignment in bytes.
|
alignment in bytes.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_calls
|
What: /sys/kernel/slab/cache/alloc_calls
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -39,7 +39,7 @@ Description:
|
|||||||
The alloc_calls file only contains information if debugging is
|
The alloc_calls file only contains information if debugging is
|
||||||
enabled for that cache (see Documentation/vm/slub.rst).
|
enabled for that cache (see Documentation/vm/slub.rst).
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_fastpath
|
What: /sys/kernel/slab/cache/alloc_fastpath
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -50,7 +50,7 @@ Description:
|
|||||||
current count.
|
current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_from_partial
|
What: /sys/kernel/slab/cache/alloc_from_partial
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -62,7 +62,7 @@ Description:
|
|||||||
count.
|
count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_refill
|
What: /sys/kernel/slab/cache/alloc_refill
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -73,7 +73,7 @@ Description:
|
|||||||
remote cpu frees. It can be written to clear the current count.
|
remote cpu frees. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_slab
|
What: /sys/kernel/slab/cache/alloc_slab
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -84,7 +84,7 @@ Description:
|
|||||||
clear the current count.
|
clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/alloc_slowpath
|
What: /sys/kernel/slab/cache/alloc_slowpath
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -96,7 +96,7 @@ Description:
|
|||||||
clear the current count.
|
clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/cache_dma
|
What: /sys/kernel/slab/cache/cache_dma
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -106,7 +106,7 @@ Description:
|
|||||||
are from ZONE_DMA.
|
are from ZONE_DMA.
|
||||||
Available when CONFIG_ZONE_DMA is enabled.
|
Available when CONFIG_ZONE_DMA is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/cpu_slabs
|
What: /sys/kernel/slab/cache/cpu_slabs
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -115,7 +115,7 @@ Description:
|
|||||||
The cpu_slabs file is read-only and displays how many cpu slabs
|
The cpu_slabs file is read-only and displays how many cpu slabs
|
||||||
are active and their NUMA locality.
|
are active and their NUMA locality.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/cpuslab_flush
|
What: /sys/kernel/slab/cache/cpuslab_flush
|
||||||
Date: April 2009
|
Date: April 2009
|
||||||
KernelVersion: 2.6.31
|
KernelVersion: 2.6.31
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -128,7 +128,7 @@ Description:
|
|||||||
current count.
|
current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/ctor
|
What: /sys/kernel/slab/cache/ctor
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -138,7 +138,7 @@ Description:
|
|||||||
constructor function, which is invoked for each object when a
|
constructor function, which is invoked for each object when a
|
||||||
new slab is allocated.
|
new slab is allocated.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/deactivate_empty
|
What: /sys/kernel/slab/cache/deactivate_empty
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -148,7 +148,7 @@ Description:
|
|||||||
was deactivated. It can be written to clear the current count.
|
was deactivated. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/deactivate_full
|
What: /sys/kernel/slab/cache/deactivate_full
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -158,7 +158,7 @@ Description:
|
|||||||
was deactivated. It can be written to clear the current count.
|
was deactivated. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/deactivate_remote_frees
|
What: /sys/kernel/slab/cache/deactivate_remote_frees
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -169,7 +169,7 @@ Description:
|
|||||||
remotely. It can be written to clear the current count.
|
remotely. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/deactivate_to_head
|
What: /sys/kernel/slab/cache/deactivate_to_head
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -180,7 +180,7 @@ Description:
|
|||||||
list. It can be written to clear the current count.
|
list. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/deactivate_to_tail
|
What: /sys/kernel/slab/cache/deactivate_to_tail
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -191,7 +191,7 @@ Description:
|
|||||||
list. It can be written to clear the current count.
|
list. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/destroy_by_rcu
|
What: /sys/kernel/slab/cache/destroy_by_rcu
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -200,7 +200,7 @@ Description:
|
|||||||
The destroy_by_rcu file is read-only and specifies whether
|
The destroy_by_rcu file is read-only and specifies whether
|
||||||
slabs (not objects) are freed by rcu.
|
slabs (not objects) are freed by rcu.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_add_partial
|
What: /sys/kernel/slab/cache/free_add_partial
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -211,7 +211,7 @@ Description:
|
|||||||
partial list. It can be written to clear the current count.
|
partial list. It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_calls
|
What: /sys/kernel/slab/cache/free_calls
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -221,7 +221,7 @@ Description:
|
|||||||
object frees if slab debugging is enabled (see
|
object frees if slab debugging is enabled (see
|
||||||
Documentation/vm/slub.rst).
|
Documentation/vm/slub.rst).
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_fastpath
|
What: /sys/kernel/slab/cache/free_fastpath
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -232,7 +232,7 @@ Description:
|
|||||||
It can be written to clear the current count.
|
It can be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_frozen
|
What: /sys/kernel/slab/cache/free_frozen
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -243,7 +243,7 @@ Description:
|
|||||||
clear the current count.
|
clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_remove_partial
|
What: /sys/kernel/slab/cache/free_remove_partial
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -255,7 +255,7 @@ Description:
|
|||||||
count.
|
count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_slab
|
What: /sys/kernel/slab/cache/free_slab
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -266,7 +266,7 @@ Description:
|
|||||||
the current count.
|
the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/free_slowpath
|
What: /sys/kernel/slab/cache/free_slowpath
|
||||||
Date: February 2008
|
Date: February 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -277,7 +277,7 @@ Description:
|
|||||||
be written to clear the current count.
|
be written to clear the current count.
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/hwcache_align
|
What: /sys/kernel/slab/cache/hwcache_align
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -286,7 +286,7 @@ Description:
|
|||||||
The hwcache_align file is read-only and specifies whether
|
The hwcache_align file is read-only and specifies whether
|
||||||
objects are aligned on cachelines.
|
objects are aligned on cachelines.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/min_partial
|
What: /sys/kernel/slab/cache/min_partial
|
||||||
Date: February 2009
|
Date: February 2009
|
||||||
KernelVersion: 2.6.30
|
KernelVersion: 2.6.30
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -297,7 +297,7 @@ Description:
|
|||||||
allocating new slabs. Such slabs may be reclaimed by utilizing
|
allocating new slabs. Such slabs may be reclaimed by utilizing
|
||||||
the shrink file.
|
the shrink file.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/object_size
|
What: /sys/kernel/slab/cache/object_size
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -306,7 +306,7 @@ Description:
|
|||||||
The object_size file is read-only and specifies the cache's
|
The object_size file is read-only and specifies the cache's
|
||||||
object size.
|
object size.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/objects
|
What: /sys/kernel/slab/cache/objects
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -315,7 +315,7 @@ Description:
|
|||||||
The objects file is read-only and displays how many objects are
|
The objects file is read-only and displays how many objects are
|
||||||
active and from which nodes they are from.
|
active and from which nodes they are from.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/objects_partial
|
What: /sys/kernel/slab/cache/objects_partial
|
||||||
Date: April 2008
|
Date: April 2008
|
||||||
KernelVersion: 2.6.26
|
KernelVersion: 2.6.26
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -325,7 +325,7 @@ Description:
|
|||||||
objects are on partial slabs and from which nodes they are
|
objects are on partial slabs and from which nodes they are
|
||||||
from.
|
from.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/objs_per_slab
|
What: /sys/kernel/slab/cache/objs_per_slab
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -333,9 +333,9 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
|||||||
Description:
|
Description:
|
||||||
The file objs_per_slab is read-only and specifies how many
|
The file objs_per_slab is read-only and specifies how many
|
||||||
objects may be allocated from a single slab of the order
|
objects may be allocated from a single slab of the order
|
||||||
specified in /sys/kernel/slab/<cache>/order.
|
specified in /sys/kernel/slab/cache/order.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/order
|
What: /sys/kernel/slab/cache/order
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -352,7 +352,7 @@ Description:
|
|||||||
order is used and this sysfs entry can not be used to change
|
order is used and this sysfs entry can not be used to change
|
||||||
the order at run time.
|
the order at run time.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/order_fallback
|
What: /sys/kernel/slab/cache/order_fallback
|
||||||
Date: April 2008
|
Date: April 2008
|
||||||
KernelVersion: 2.6.26
|
KernelVersion: 2.6.26
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -365,7 +365,7 @@ Description:
|
|||||||
|
|
||||||
Available when CONFIG_SLUB_STATS is enabled.
|
Available when CONFIG_SLUB_STATS is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/partial
|
What: /sys/kernel/slab/cache/partial
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -374,7 +374,7 @@ Description:
|
|||||||
The partial file is read-only and displays how long many
|
The partial file is read-only and displays how long many
|
||||||
partial slabs there are and how long each node's list is.
|
partial slabs there are and how long each node's list is.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/poison
|
What: /sys/kernel/slab/cache/poison
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -383,7 +383,7 @@ Description:
|
|||||||
The poison file specifies whether objects should be poisoned
|
The poison file specifies whether objects should be poisoned
|
||||||
when a new slab is allocated.
|
when a new slab is allocated.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/reclaim_account
|
What: /sys/kernel/slab/cache/reclaim_account
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -392,7 +392,7 @@ Description:
|
|||||||
The reclaim_account file specifies whether the cache's objects
|
The reclaim_account file specifies whether the cache's objects
|
||||||
are reclaimable (and grouped by their mobility).
|
are reclaimable (and grouped by their mobility).
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/red_zone
|
What: /sys/kernel/slab/cache/red_zone
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -401,7 +401,7 @@ Description:
|
|||||||
The red_zone file specifies whether the cache's objects are red
|
The red_zone file specifies whether the cache's objects are red
|
||||||
zoned.
|
zoned.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/remote_node_defrag_ratio
|
What: /sys/kernel/slab/cache/remote_node_defrag_ratio
|
||||||
Date: January 2008
|
Date: January 2008
|
||||||
KernelVersion: 2.6.25
|
KernelVersion: 2.6.25
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -415,7 +415,7 @@ Description:
|
|||||||
|
|
||||||
Available when CONFIG_NUMA is enabled.
|
Available when CONFIG_NUMA is enabled.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/sanity_checks
|
What: /sys/kernel/slab/cache/sanity_checks
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -426,7 +426,7 @@ Description:
|
|||||||
checks. Caches that enable sanity_checks cannot be merged with
|
checks. Caches that enable sanity_checks cannot be merged with
|
||||||
caches that do not.
|
caches that do not.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/shrink
|
What: /sys/kernel/slab/cache/shrink
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -442,7 +442,7 @@ Description:
|
|||||||
adversely impact other running applications. So it
|
adversely impact other running applications. So it
|
||||||
should be used with care.
|
should be used with care.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/slab_size
|
What: /sys/kernel/slab/cache/slab_size
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -451,7 +451,7 @@ Description:
|
|||||||
The slab_size file is read-only and specifies the object size
|
The slab_size file is read-only and specifies the object size
|
||||||
with metadata (debugging information and alignment) in bytes.
|
with metadata (debugging information and alignment) in bytes.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/slabs
|
What: /sys/kernel/slab/cache/slabs
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -461,7 +461,7 @@ Description:
|
|||||||
there are (both cpu and partial) and from which nodes they are
|
there are (both cpu and partial) and from which nodes they are
|
||||||
from.
|
from.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/store_user
|
What: /sys/kernel/slab/cache/store_user
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -470,7 +470,7 @@ Description:
|
|||||||
The store_user file specifies whether the location of
|
The store_user file specifies whether the location of
|
||||||
allocation or free should be tracked for a cache.
|
allocation or free should be tracked for a cache.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/total_objects
|
What: /sys/kernel/slab/cache/total_objects
|
||||||
Date: April 2008
|
Date: April 2008
|
||||||
KernelVersion: 2.6.26
|
KernelVersion: 2.6.26
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -479,7 +479,7 @@ Description:
|
|||||||
The total_objects file is read-only and displays how many total
|
The total_objects file is read-only and displays how many total
|
||||||
objects a cache has and from which nodes they are from.
|
objects a cache has and from which nodes they are from.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/trace
|
What: /sys/kernel/slab/cache/trace
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -488,7 +488,7 @@ Description:
|
|||||||
The trace file specifies whether object allocations and frees
|
The trace file specifies whether object allocations and frees
|
||||||
should be traced.
|
should be traced.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/validate
|
What: /sys/kernel/slab/cache/validate
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
||||||
@ -496,24 +496,3 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
|
|||||||
Description:
|
Description:
|
||||||
Writing to the validate file causes SLUB to traverse all of its
|
Writing to the validate file causes SLUB to traverse all of its
|
||||||
cache's objects and check the validity of metadata.
|
cache's objects and check the validity of metadata.
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/usersize
|
|
||||||
Date: Jun 2017
|
|
||||||
Contact: David Windsor <dave@nullcore.net>
|
|
||||||
Description:
|
|
||||||
The usersize file is read-only and contains the usercopy
|
|
||||||
region size.
|
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/slabs_cpu_partial
|
|
||||||
Date: Aug 2011
|
|
||||||
Contact: Christoph Lameter <cl@linux.com>
|
|
||||||
Description:
|
|
||||||
This read-only file shows the number of partialli allocated
|
|
||||||
frozen slabs.
|
|
||||||
|
|
||||||
What: /sys/kernel/slab/<cache>/cpu_partial
|
|
||||||
Date: Aug 2011
|
|
||||||
Contact: Christoph Lameter <cl@linux.com>
|
|
||||||
Description:
|
|
||||||
This read-only file shows the number of per cpu partial
|
|
||||||
pages to keep around.
|
|
||||||
|
@ -41,13 +41,6 @@ KernelVersion: 3.3
|
|||||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
||||||
Description: Module size in bytes.
|
Description: Module size in bytes.
|
||||||
|
|
||||||
What: /sys/module/*/initstate
|
|
||||||
Date: Nov 2006
|
|
||||||
KernelVersion: 2.6.19
|
|
||||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
|
||||||
Description: Show the initialization state(live, coming, going) of
|
|
||||||
the module.
|
|
||||||
|
|
||||||
What: /sys/module/*/taint
|
What: /sys/module/*/taint
|
||||||
Date: Jan 2012
|
Date: Jan 2012
|
||||||
KernelVersion: 3.3
|
KernelVersion: 3.3
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
||||||
Date: Apr 2021
|
Date: Apr 2021
|
||||||
KernelVersion: 5.13
|
KernelVersion: 5.13
|
||||||
Contact: "<perry.yuan@dell.com>"
|
Contact: "perry.yuan@dell.com>"
|
||||||
Description:
|
Description:
|
||||||
Display which dell hardware level privacy devices are supported
|
Display which dell hardware level privacy devices are supported
|
||||||
“Dell Privacy” is a set of HW, FW, and SW features to enhance
|
“Dell Privacy” is a set of HW, FW, and SW features to enhance
|
||||||
Dell’s commitment to platform privacy for MIC, Camera, and
|
Dell’s commitment to platform privacy for MIC, Camera, and
|
||||||
ePrivacy screens.
|
ePrivacy screens.
|
||||||
The supported hardware privacy devices are:
|
The supported hardware privacy devices are:
|
||||||
|
Attributes:
|
||||||
Attributes:
|
|
||||||
Microphone Mute:
|
Microphone Mute:
|
||||||
Identifies the local microphone can be muted by hardware, no applications
|
Identifies the local microphone can be muted by hardware, no applications
|
||||||
is available to capture system mic sound
|
is available to capture system mic sound
|
||||||
@ -19,15 +18,13 @@ Description:
|
|||||||
shutter assembly that is built onto the camera module to block capturing images
|
shutter assembly that is built onto the camera module to block capturing images
|
||||||
from outside the laptop
|
from outside the laptop
|
||||||
|
|
||||||
Values:
|
|
||||||
|
|
||||||
supported:
|
supported:
|
||||||
The privacy device is supported by this system
|
The privacy device is supported by this system
|
||||||
|
|
||||||
unsupported:
|
unsupported:
|
||||||
The privacy device is not supported on this system
|
The privacy device is not supported on this system
|
||||||
|
|
||||||
For example to check which privacy devices are supported::
|
For example to check which privacy devices are supported:
|
||||||
|
|
||||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
||||||
[Microphone Mute] [supported]
|
[Microphone Mute] [supported]
|
||||||
@ -37,34 +34,21 @@ Description:
|
|||||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
||||||
Date: Apr 2021
|
Date: Apr 2021
|
||||||
KernelVersion: 5.13
|
KernelVersion: 5.13
|
||||||
Contact: "<perry.yuan@dell.com>"
|
Contact: "perry.yuan@dell.com>"
|
||||||
Description:
|
Description:
|
||||||
Allow user space to check current dell privacy device state.
|
Allow user space to check current dell privacy device state.
|
||||||
Describes the Device State class exposed by BIOS which can be
|
Describes the Device State class exposed by BIOS which can be
|
||||||
consumed by various applications interested in knowing the Privacy
|
consumed by various applications interested in knowing the Privacy
|
||||||
feature capabilities
|
feature capabilities
|
||||||
|
Attributes:
|
||||||
Attributes:
|
|
||||||
Microphone:
|
|
||||||
Identifies the local microphone can be muted by hardware, no applications
|
|
||||||
is available to capture system mic sound
|
|
||||||
|
|
||||||
Camera Shutter:
|
|
||||||
Identifies camera shutter controlled by hardware, which is a micromechanical
|
|
||||||
shutter assembly that is built onto the camera module to block capturing images
|
|
||||||
from outside the laptop
|
|
||||||
|
|
||||||
Values:
|
|
||||||
muted:
|
muted:
|
||||||
Identifies the privacy device is turned off
|
Identifies the privacy device is turned off and cannot send stream to OS applications
|
||||||
and cannot send stream to OS applications
|
|
||||||
|
|
||||||
unmuted:
|
unmuted:
|
||||||
Identifies the privacy device is turned on,
|
Identifies the privacy device is turned on ,audio or camera driver can get
|
||||||
audio or camera driver can get stream from mic
|
stream from mic and camera module to OS applications
|
||||||
and camera module to OS applications
|
|
||||||
|
|
||||||
For example to check all supported current privacy device states::
|
For example to check all supported current privacy device states:
|
||||||
|
|
||||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
||||||
[Microphone] [unmuted]
|
[Microphone] [unmuted]
|
||||||
|
@ -133,10 +133,7 @@ Contact: linux-acpi@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
(RO) Presents SSC (spread spectrum clock) information for EMI
|
(RO) Presents SSC (spread spectrum clock) information for EMI
|
||||||
(Electro magnetic interference) control. This is a bit mask.
|
(Electro magnetic interference) control. This is a bit mask.
|
||||||
|
|
||||||
======= ==========================================
|
|
||||||
Bits Description
|
Bits Description
|
||||||
======= ==========================================
|
|
||||||
[7:0] Sets clock spectrum spread percentage:
|
[7:0] Sets clock spectrum spread percentage:
|
||||||
0x00=0.2% , 0x3F=10%
|
0x00=0.2% , 0x3F=10%
|
||||||
1 LSB = 0.1% increase in spread (for
|
1 LSB = 0.1% increase in spread (for
|
||||||
@ -154,4 +151,3 @@ Description:
|
|||||||
[10] 0: No white noise. 1: Add white noise
|
[10] 0: No white noise. 1: Add white noise
|
||||||
to spread waveform
|
to spread waveform
|
||||||
[11] When 1, future writes are ignored.
|
[11] When 1, future writes are ignored.
|
||||||
======= ==========================================
|
|
||||||
|
@ -11,10 +11,8 @@ Description:
|
|||||||
to take effect.
|
to take effect.
|
||||||
|
|
||||||
Display global reset setting bits for PMC.
|
Display global reset setting bits for PMC.
|
||||||
|
|
||||||
* bit 31 - global reset is locked
|
* bit 31 - global reset is locked
|
||||||
* bit 20 - global reset is set
|
* bit 20 - global reset is set
|
||||||
|
|
||||||
Writing bit 20 value to the etr3 will induce
|
Writing bit 20 value to the etr3 will induce
|
||||||
a platform "global reset" upon consequent platform reset,
|
a platform "global reset" upon consequent platform reset,
|
||||||
in case the register is not locked.
|
in case the register is not locked.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/devices/platform/8086<x>:00/firmware_version
|
What: /sys/devices/platform/8086%x:00/firmware_version
|
||||||
Date: November 2016
|
Date: November 2016
|
||||||
KernelVersion: 4.10
|
KernelVersion: 4.10
|
||||||
Contact: "Sebastien Guiriec" <sebastien.guiriec@intel.com>
|
Contact: "Sebastien Guiriec" <sebastien.guiriec@intel.com>
|
||||||
|
@ -6,7 +6,7 @@ Description:
|
|||||||
providing a standardized interface to the ancillary
|
providing a standardized interface to the ancillary
|
||||||
features of PTP hardware clocks.
|
features of PTP hardware clocks.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/
|
What: /sys/class/ptp/ptpN/
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -14,7 +14,7 @@ Description:
|
|||||||
hardware clock registered into the PTP class driver
|
hardware clock registered into the PTP class driver
|
||||||
subsystem.
|
subsystem.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/clock_name
|
What: /sys/class/ptp/ptpN/clock_name
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -25,7 +25,7 @@ Description:
|
|||||||
MAC based ones. The string does not necessarily have
|
MAC based ones. The string does not necessarily have
|
||||||
to be any kind of unique id.
|
to be any kind of unique id.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/max_adjustment
|
What: /sys/class/ptp/ptpN/max_adjustment
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -33,42 +33,42 @@ Description:
|
|||||||
frequency adjustment value (a positive integer) in
|
frequency adjustment value (a positive integer) in
|
||||||
parts per billion.
|
parts per billion.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/max_vclocks
|
What: /sys/class/ptp/ptpN/max_vclocks
|
||||||
Date: May 2021
|
Date: May 2021
|
||||||
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
Description:
|
Description:
|
||||||
This file contains the maximum number of ptp vclocks.
|
This file contains the maximum number of ptp vclocks.
|
||||||
Write integer to re-configure it.
|
Write integer to re-configure it.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/n_alarms
|
What: /sys/class/ptp/ptpN/n_alarms
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
This file contains the number of periodic or one shot
|
This file contains the number of periodic or one shot
|
||||||
alarms offer by the PTP hardware clock.
|
alarms offer by the PTP hardware clock.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/n_external_timestamps
|
What: /sys/class/ptp/ptpN/n_external_timestamps
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
This file contains the number of external timestamp
|
This file contains the number of external timestamp
|
||||||
channels offered by the PTP hardware clock.
|
channels offered by the PTP hardware clock.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/n_periodic_outputs
|
What: /sys/class/ptp/ptpN/n_periodic_outputs
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
This file contains the number of programmable periodic
|
This file contains the number of programmable periodic
|
||||||
output channels offered by the PTP hardware clock.
|
output channels offered by the PTP hardware clock.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/n_pins
|
What: /sys/class/ptp/ptpN/n_pins
|
||||||
Date: March 2014
|
Date: March 2014
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
This file contains the number of programmable pins
|
This file contains the number of programmable pins
|
||||||
offered by the PTP hardware clock.
|
offered by the PTP hardware clock.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/n_vclocks
|
What: /sys/class/ptp/ptpN/n_vclocks
|
||||||
Date: May 2021
|
Date: May 2021
|
||||||
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
Contact: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
Description:
|
Description:
|
||||||
@ -81,7 +81,7 @@ Description:
|
|||||||
switches the physical clock back to normal, adjustable
|
switches the physical clock back to normal, adjustable
|
||||||
operation.
|
operation.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/pins
|
What: /sys/class/ptp/ptpN/pins
|
||||||
Date: March 2014
|
Date: March 2014
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -94,7 +94,7 @@ Description:
|
|||||||
assignment may be changed by two writing numbers into
|
assignment may be changed by two writing numbers into
|
||||||
the file.
|
the file.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/pps_available
|
What: /sys/class/ptp/ptpN/pps_available
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -103,7 +103,7 @@ Description:
|
|||||||
"1" means that the PPS is supported, while "0" means
|
"1" means that the PPS is supported, while "0" means
|
||||||
not supported.
|
not supported.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/extts_enable
|
What: /sys/class/ptp/ptpN/extts_enable
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -113,7 +113,7 @@ Description:
|
|||||||
To disable external timestamps, write the channel
|
To disable external timestamps, write the channel
|
||||||
index followed by a "0" into the file.
|
index followed by a "0" into the file.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/fifo
|
What: /sys/class/ptp/ptpN/fifo
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -121,7 +121,7 @@ Description:
|
|||||||
the form of three integers: channel index, seconds,
|
the form of three integers: channel index, seconds,
|
||||||
and nanoseconds.
|
and nanoseconds.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/period
|
What: /sys/class/ptp/ptpN/period
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -132,7 +132,7 @@ Description:
|
|||||||
period nanoseconds. To disable a periodic output, set
|
period nanoseconds. To disable a periodic output, set
|
||||||
all the seconds and nanoseconds values to zero.
|
all the seconds and nanoseconds values to zero.
|
||||||
|
|
||||||
What: /sys/class/ptp/ptp<N>/pps_enable
|
What: /sys/class/ptp/ptpN/pps_enable
|
||||||
Date: September 2010
|
Date: September 2010
|
||||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
|
@ -9,7 +9,7 @@ Description:
|
|||||||
The file supports poll() to detect virtual
|
The file supports poll() to detect virtual
|
||||||
console switches.
|
console switches.
|
||||||
|
|
||||||
What: /sys/class/tty/tty<x>/active
|
What: /sys/class/tty/tty0/active
|
||||||
Date: Nov 2010
|
Date: Nov 2010
|
||||||
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
Contact: Kay Sievers <kay.sievers@vrfy.org>
|
||||||
Description:
|
Description:
|
||||||
@ -18,7 +18,7 @@ Description:
|
|||||||
The file supports poll() to detect virtual
|
The file supports poll() to detect virtual
|
||||||
console switches.
|
console switches.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/uartclk
|
What: /sys/class/tty/ttyS0/uartclk
|
||||||
Date: Sep 2012
|
Date: Sep 2012
|
||||||
Contact: Tomas Hlavacek <tmshlvck@gmail.com>
|
Contact: Tomas Hlavacek <tmshlvck@gmail.com>
|
||||||
Description:
|
Description:
|
||||||
@ -29,7 +29,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/type
|
What: /sys/class/tty/ttyS0/type
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -38,7 +38,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/line
|
What: /sys/class/tty/ttyS0/line
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -47,7 +47,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/port
|
What: /sys/class/tty/ttyS0/port
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -56,7 +56,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/irq
|
What: /sys/class/tty/ttyS0/irq
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -65,7 +65,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/flags
|
What: /sys/class/tty/ttyS0/flags
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -74,7 +74,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/xmit_fifo_size
|
What: /sys/class/tty/ttyS0/xmit_fifo_size
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -83,7 +83,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/close_delay
|
What: /sys/class/tty/ttyS0/close_delay
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -92,7 +92,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/closing_wait
|
What: /sys/class/tty/ttyS0/closing_wait
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -101,7 +101,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/custom_divisor
|
What: /sys/class/tty/ttyS0/custom_divisor
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -110,7 +110,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/io_type
|
What: /sys/class/tty/ttyS0/io_type
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -120,7 +120,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/iomem_base
|
What: /sys/class/tty/ttyS0/iomem_base
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -129,7 +129,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/iomem_reg_shift
|
What: /sys/class/tty/ttyS0/iomem_reg_shift
|
||||||
Date: October 2012
|
Date: October 2012
|
||||||
Contact: Alan Cox <alan@linux.intel.com>
|
Contact: Alan Cox <alan@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
@ -139,7 +139,7 @@ Description:
|
|||||||
These sysfs values expose the TIOCGSERIAL interface via
|
These sysfs values expose the TIOCGSERIAL interface via
|
||||||
sysfs rather than via ioctls.
|
sysfs rather than via ioctls.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/rx_trig_bytes
|
What: /sys/class/tty/ttyS0/rx_trig_bytes
|
||||||
Date: May 2014
|
Date: May 2014
|
||||||
Contact: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
|
Contact: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
|
||||||
Description:
|
Description:
|
||||||
@ -155,7 +155,7 @@ Description:
|
|||||||
16550A, which has 1/4/8/14 bytes trigger, the RX trigger is
|
16550A, which has 1/4/8/14 bytes trigger, the RX trigger is
|
||||||
automatically changed to 4 bytes.
|
automatically changed to 4 bytes.
|
||||||
|
|
||||||
What: /sys/class/tty/ttyS<x>/console
|
What: /sys/class/tty/ttyS0/console
|
||||||
Date: February 2020
|
Date: February 2020
|
||||||
Contact: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
Contact: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
y="492.36218" /></flowRegion><flowPara
|
y="492.36218" /></flowRegion><flowPara
|
||||||
id="flowPara2991" /></flowRoot> <text
|
id="flowPara2991" /></flowRoot> <text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="362.371"
|
x="362.371"
|
||||||
y="262.51819"
|
y="262.51819"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@ -202,44 +202,49 @@ newly arrived RCU callbacks against future grace periods:
|
|||||||
1 static void rcu_prepare_for_idle(void)
|
1 static void rcu_prepare_for_idle(void)
|
||||||
2 {
|
2 {
|
||||||
3 bool needwake;
|
3 bool needwake;
|
||||||
4 struct rcu_data *rdp = this_cpu_ptr(&rcu_data);
|
4 struct rcu_data *rdp;
|
||||||
5 struct rcu_node *rnp;
|
5 struct rcu_dynticks *rdtp = this_cpu_ptr(&rcu_dynticks);
|
||||||
6 int tne;
|
6 struct rcu_node *rnp;
|
||||||
7
|
7 struct rcu_state *rsp;
|
||||||
8 lockdep_assert_irqs_disabled();
|
8 int tne;
|
||||||
9 if (rcu_rdp_is_offloaded(rdp))
|
9
|
||||||
10 return;
|
10 if (IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL) ||
|
||||||
11
|
11 rcu_is_nocb_cpu(smp_processor_id()))
|
||||||
12 /* Handle nohz enablement switches conservatively. */
|
12 return;
|
||||||
13 tne = READ_ONCE(tick_nohz_active);
|
13 tne = READ_ONCE(tick_nohz_active);
|
||||||
14 if (tne != rdp->tick_nohz_enabled_snap) {
|
14 if (tne != rdtp->tick_nohz_enabled_snap) {
|
||||||
15 if (!rcu_segcblist_empty(&rdp->cblist))
|
15 if (rcu_cpu_has_callbacks(NULL))
|
||||||
16 invoke_rcu_core(); /* force nohz to see update. */
|
16 invoke_rcu_core();
|
||||||
17 rdp->tick_nohz_enabled_snap = tne;
|
17 rdtp->tick_nohz_enabled_snap = tne;
|
||||||
18 return;
|
18 return;
|
||||||
19 }
|
19 }
|
||||||
20 if (!tne)
|
20 if (!tne)
|
||||||
21 return;
|
21 return;
|
||||||
22
|
22 if (rdtp->all_lazy &&
|
||||||
23 /*
|
23 rdtp->nonlazy_posted != rdtp->nonlazy_posted_snap) {
|
||||||
24 * If we have not yet accelerated this jiffy, accelerate all
|
24 rdtp->all_lazy = false;
|
||||||
25 * callbacks on this CPU.
|
25 rdtp->nonlazy_posted_snap = rdtp->nonlazy_posted;
|
||||||
26 */
|
26 invoke_rcu_core();
|
||||||
27 if (rdp->last_accelerate == jiffies)
|
27 return;
|
||||||
28 return;
|
28 }
|
||||||
29 rdp->last_accelerate = jiffies;
|
29 if (rdtp->last_accelerate == jiffies)
|
||||||
30 if (rcu_segcblist_pend_cbs(&rdp->cblist)) {
|
30 return;
|
||||||
31 rnp = rdp->mynode;
|
31 rdtp->last_accelerate = jiffies;
|
||||||
32 raw_spin_lock_rcu_node(rnp); /* irqs already disabled. */
|
32 for_each_rcu_flavor(rsp) {
|
||||||
33 needwake = rcu_accelerate_cbs(rnp, rdp);
|
33 rdp = this_cpu_ptr(rsp->rda);
|
||||||
34 raw_spin_unlock_rcu_node(rnp); /* irqs remain disabled. */
|
34 if (rcu_segcblist_pend_cbs(&rdp->cblist))
|
||||||
35 if (needwake)
|
35 continue;
|
||||||
36 rcu_gp_kthread_wake();
|
36 rnp = rdp->mynode;
|
||||||
37 }
|
37 raw_spin_lock_rcu_node(rnp);
|
||||||
38 }
|
38 needwake = rcu_accelerate_cbs(rsp, rnp, rdp);
|
||||||
|
39 raw_spin_unlock_rcu_node(rnp);
|
||||||
|
40 if (needwake)
|
||||||
|
41 rcu_gp_kthread_wake(rsp);
|
||||||
|
42 }
|
||||||
|
43 }
|
||||||
|
|
||||||
But the only part of ``rcu_prepare_for_idle()`` that really matters for
|
But the only part of ``rcu_prepare_for_idle()`` that really matters for
|
||||||
this discussion are lines 32–34. We will therefore abbreviate this
|
this discussion are lines 37–39. We will therefore abbreviate this
|
||||||
function as follows:
|
function as follows:
|
||||||
|
|
||||||
.. kernel-figure:: rcu_node-lock.svg
|
.. kernel-figure:: rcu_node-lock.svg
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -103,7 +103,7 @@
|
|||||||
id="text2993"
|
id="text2993"
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
x="412.12299"
|
x="412.12299"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
transform="matrix(0,1,-1,0,0,0)"><tspan
|
transform="matrix(0,1,-1,0,0,0)"><tspan
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
@ -135,7 +135,7 @@
|
|||||||
</g>
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.04738"
|
x="112.04738"
|
||||||
y="268.18076"
|
y="268.18076"
|
||||||
id="text4429"
|
id="text4429"
|
||||||
@ -146,7 +146,7 @@
|
|||||||
y="268.18076">WRITE_ONCE(a, 1);</tspan></text>
|
y="268.18076">WRITE_ONCE(a, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.04738"
|
x="112.04738"
|
||||||
y="439.13766"
|
y="439.13766"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
@ -157,7 +157,7 @@
|
|||||||
y="439.13766">WRITE_ONCE(b, 1);</tspan></text>
|
y="439.13766">WRITE_ONCE(b, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="255.60869"
|
x="255.60869"
|
||||||
y="309.29346"
|
y="309.29346"
|
||||||
id="text4445"
|
id="text4445"
|
||||||
@ -168,7 +168,7 @@
|
|||||||
y="309.29346">r1 = READ_ONCE(a);</tspan></text>
|
y="309.29346">r1 = READ_ONCE(a);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="255.14423"
|
x="255.14423"
|
||||||
y="520.61786"
|
y="520.61786"
|
||||||
id="text4449"
|
id="text4449"
|
||||||
@ -179,7 +179,7 @@
|
|||||||
y="520.61786">WRITE_ONCE(c, 1);</tspan></text>
|
y="520.61786">WRITE_ONCE(c, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="384.71124"
|
y="384.71124"
|
||||||
id="text4453"
|
id="text4453"
|
||||||
@ -190,7 +190,7 @@
|
|||||||
y="384.71124">r2 = READ_ONCE(b);</tspan></text>
|
y="384.71124">r2 = READ_ONCE(b);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="582.13617"
|
y="582.13617"
|
||||||
id="text4457"
|
id="text4457"
|
||||||
@ -201,7 +201,7 @@
|
|||||||
y="582.13617">r3 = READ_ONCE(c);</tspan></text>
|
y="582.13617">r3 = READ_ONCE(c);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.08231"
|
x="112.08231"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461"
|
id="text4461"
|
||||||
@ -212,7 +212,7 @@
|
|||||||
y="213.91006">thread0()</tspan></text>
|
y="213.91006">thread0()</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="252.34512"
|
x="252.34512"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-6"
|
id="text4461-6"
|
||||||
@ -223,7 +223,7 @@
|
|||||||
y="213.91006">thread1()</tspan></text>
|
y="213.91006">thread1()</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.42557"
|
x="396.42557"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-2"
|
id="text4461-2"
|
||||||
@ -251,7 +251,7 @@
|
|||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="111.75929"
|
x="111.75929"
|
||||||
y="251.53981"
|
y="251.53981"
|
||||||
id="text4429-8"
|
id="text4429-8"
|
||||||
@ -262,7 +262,7 @@
|
|||||||
y="251.53981">rcu_read_lock();</tspan></text>
|
y="251.53981">rcu_read_lock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="367.91556"
|
y="367.91556"
|
||||||
id="text4429-8-9"
|
id="text4429-8-9"
|
||||||
@ -273,7 +273,7 @@
|
|||||||
y="367.91556">rcu_read_lock();</tspan></text>
|
y="367.91556">rcu_read_lock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="597.40289"
|
y="597.40289"
|
||||||
id="text4429-8-9-3"
|
id="text4429-8-9-3"
|
||||||
@ -284,7 +284,7 @@
|
|||||||
y="597.40289">rcu_read_unlock();</tspan></text>
|
y="597.40289">rcu_read_unlock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="111.75929"
|
x="111.75929"
|
||||||
y="453.15311"
|
y="453.15311"
|
||||||
id="text4429-8-9-3-1"
|
id="text4429-8-9-3-1"
|
||||||
@ -300,7 +300,7 @@
|
|||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="394.94427"
|
x="394.94427"
|
||||||
y="345.66351"
|
y="345.66351"
|
||||||
id="text4648"
|
id="text4648"
|
||||||
@ -324,7 +324,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.11968"
|
x="112.11968"
|
||||||
y="475.77856"
|
y="475.77856"
|
||||||
id="text4648-4"
|
id="text4648-4"
|
||||||
@ -361,7 +361,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="254.85066"
|
x="254.85066"
|
||||||
y="348.96619"
|
y="348.96619"
|
||||||
id="text4648-4-3"
|
id="text4648-4-3"
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@ -116,7 +116,7 @@
|
|||||||
<flowRoot
|
<flowRoot
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
id="flowRoot2985"
|
id="flowRoot2985"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"><flowRegion
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
|
||||||
id="flowRegion2987"><rect
|
id="flowRegion2987"><rect
|
||||||
id="rect2989"
|
id="rect2989"
|
||||||
width="82.85714"
|
width="82.85714"
|
||||||
@ -131,7 +131,7 @@
|
|||||||
id="text2993"
|
id="text2993"
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
x="436.12299"
|
x="436.12299"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
transform="matrix(0,1,-1,0,0,0)"><tspan
|
transform="matrix(0,1,-1,0,0,0)"><tspan
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
@ -163,7 +163,7 @@
|
|||||||
</g>
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.04738"
|
x="112.04738"
|
||||||
y="268.18076"
|
y="268.18076"
|
||||||
id="text4429"
|
id="text4429"
|
||||||
@ -174,7 +174,7 @@
|
|||||||
y="268.18076">WRITE_ONCE(a, 1);</tspan></text>
|
y="268.18076">WRITE_ONCE(a, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.04738"
|
x="112.04738"
|
||||||
y="487.13766"
|
y="487.13766"
|
||||||
id="text4441"
|
id="text4441"
|
||||||
@ -185,7 +185,7 @@
|
|||||||
y="487.13766">WRITE_ONCE(b, 1);</tspan></text>
|
y="487.13766">WRITE_ONCE(b, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="255.60869"
|
x="255.60869"
|
||||||
y="297.29346"
|
y="297.29346"
|
||||||
id="text4445"
|
id="text4445"
|
||||||
@ -196,7 +196,7 @@
|
|||||||
y="297.29346">r1 = READ_ONCE(a);</tspan></text>
|
y="297.29346">r1 = READ_ONCE(a);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="255.14423"
|
x="255.14423"
|
||||||
y="554.61786"
|
y="554.61786"
|
||||||
id="text4449"
|
id="text4449"
|
||||||
@ -207,7 +207,7 @@
|
|||||||
y="554.61786">WRITE_ONCE(c, 1);</tspan></text>
|
y="554.61786">WRITE_ONCE(c, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="370.71124"
|
y="370.71124"
|
||||||
id="text4453"
|
id="text4453"
|
||||||
@ -218,7 +218,7 @@
|
|||||||
y="370.71124">WRITE_ONCE(d, 1);</tspan></text>
|
y="370.71124">WRITE_ONCE(d, 1);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="572.13617"
|
y="572.13617"
|
||||||
id="text4457"
|
id="text4457"
|
||||||
@ -229,7 +229,7 @@
|
|||||||
y="572.13617">r2 = READ_ONCE(c);</tspan></text>
|
y="572.13617">r2 = READ_ONCE(c);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.08231"
|
x="112.08231"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461"
|
id="text4461"
|
||||||
@ -240,7 +240,7 @@
|
|||||||
y="213.91006">thread0()</tspan></text>
|
y="213.91006">thread0()</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="252.34512"
|
x="252.34512"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-6"
|
id="text4461-6"
|
||||||
@ -251,7 +251,7 @@
|
|||||||
y="213.91006">thread1()</tspan></text>
|
y="213.91006">thread1()</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.42557"
|
x="396.42557"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-2"
|
id="text4461-2"
|
||||||
@ -281,7 +281,7 @@
|
|||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="111.75929"
|
x="111.75929"
|
||||||
y="251.53981"
|
y="251.53981"
|
||||||
id="text4429-8"
|
id="text4429-8"
|
||||||
@ -292,7 +292,7 @@
|
|||||||
y="251.53981">rcu_read_lock();</tspan></text>
|
y="251.53981">rcu_read_lock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="353.91556"
|
y="353.91556"
|
||||||
id="text4429-8-9"
|
id="text4429-8-9"
|
||||||
@ -303,7 +303,7 @@
|
|||||||
y="353.91556">rcu_read_lock();</tspan></text>
|
y="353.91556">rcu_read_lock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="396.10254"
|
x="396.10254"
|
||||||
y="587.40289"
|
y="587.40289"
|
||||||
id="text4429-8-9-3"
|
id="text4429-8-9-3"
|
||||||
@ -314,7 +314,7 @@
|
|||||||
y="587.40289">rcu_read_unlock();</tspan></text>
|
y="587.40289">rcu_read_unlock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="111.75929"
|
x="111.75929"
|
||||||
y="501.15311"
|
y="501.15311"
|
||||||
id="text4429-8-9-3-1"
|
id="text4429-8-9-3-1"
|
||||||
@ -331,7 +331,7 @@
|
|||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="394.94427"
|
x="394.94427"
|
||||||
y="331.66351"
|
y="331.66351"
|
||||||
id="text4648"
|
id="text4648"
|
||||||
@ -355,7 +355,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="112.11968"
|
x="112.11968"
|
||||||
y="523.77856"
|
y="523.77856"
|
||||||
id="text4648-4"
|
id="text4648-4"
|
||||||
@ -392,7 +392,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="254.85066"
|
x="254.85066"
|
||||||
y="336.96619"
|
y="336.96619"
|
||||||
id="text4648-4-3"
|
id="text4648-4-3"
|
||||||
@ -421,7 +421,7 @@
|
|||||||
id="text2993-7"
|
id="text2993-7"
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
x="440.12299"
|
x="440.12299"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
transform="matrix(0,1,-1,0,0,0)"><tspan
|
transform="matrix(0,1,-1,0,0,0)"><tspan
|
||||||
y="-261.66608"
|
y="-261.66608"
|
||||||
@ -453,7 +453,7 @@
|
|||||||
</g>
|
</g>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="541.70508"
|
x="541.70508"
|
||||||
y="387.6217"
|
y="387.6217"
|
||||||
id="text4445-0"
|
id="text4445-0"
|
||||||
@ -464,7 +464,7 @@
|
|||||||
y="387.6217">r3 = READ_ONCE(d);</tspan></text>
|
y="387.6217">r3 = READ_ONCE(d);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="541.2406"
|
x="541.2406"
|
||||||
y="646.94611"
|
y="646.94611"
|
||||||
id="text4449-6"
|
id="text4449-6"
|
||||||
@ -488,7 +488,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="540.94702"
|
x="540.94702"
|
||||||
y="427.29443"
|
y="427.29443"
|
||||||
id="text4648-4-3-1"
|
id="text4648-4-3-1"
|
||||||
@ -499,7 +499,7 @@
|
|||||||
y="427.29443">QS</tspan></text>
|
y="427.29443">QS</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="686.27747"
|
x="686.27747"
|
||||||
y="461.83929"
|
y="461.83929"
|
||||||
id="text4453-7"
|
id="text4453-7"
|
||||||
@ -510,7 +510,7 @@
|
|||||||
y="461.83929">r4 = READ_ONCE(b);</tspan></text>
|
y="461.83929">r4 = READ_ONCE(b);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="686.27747"
|
x="686.27747"
|
||||||
y="669.26422"
|
y="669.26422"
|
||||||
id="text4457-9"
|
id="text4457-9"
|
||||||
@ -521,7 +521,7 @@
|
|||||||
y="669.26422">r5 = READ_ONCE(e);</tspan></text>
|
y="669.26422">r5 = READ_ONCE(e);</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="686.27747"
|
x="686.27747"
|
||||||
y="445.04358"
|
y="445.04358"
|
||||||
id="text4429-8-9-33"
|
id="text4429-8-9-33"
|
||||||
@ -532,7 +532,7 @@
|
|||||||
y="445.04358">rcu_read_lock();</tspan></text>
|
y="445.04358">rcu_read_lock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="686.27747"
|
x="686.27747"
|
||||||
y="684.53094"
|
y="684.53094"
|
||||||
id="text4429-8-9-3-8"
|
id="text4429-8-9-3-8"
|
||||||
@ -543,7 +543,7 @@
|
|||||||
y="684.53094">rcu_read_unlock();</tspan></text>
|
y="684.53094">rcu_read_unlock();</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="685.11914"
|
x="685.11914"
|
||||||
y="422.79153"
|
y="422.79153"
|
||||||
id="text4648-9"
|
id="text4648-9"
|
||||||
@ -567,7 +567,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="397.85934"
|
x="397.85934"
|
||||||
y="609.59003"
|
y="609.59003"
|
||||||
id="text4648-5"
|
id="text4648-5"
|
||||||
@ -591,7 +591,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="256.75986"
|
x="256.75986"
|
||||||
y="586.99133"
|
y="586.99133"
|
||||||
id="text4648-5-2"
|
id="text4648-5-2"
|
||||||
@ -615,7 +615,7 @@
|
|||||||
sodipodi:open="true" />
|
sodipodi:open="true" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="546.22791"
|
x="546.22791"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-2-5"
|
id="text4461-2-5"
|
||||||
@ -626,7 +626,7 @@
|
|||||||
y="213.91006">thread3()</tspan></text>
|
y="213.91006">thread3()</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:monospace;-inkscape-font-specification:monospace"
|
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
|
||||||
x="684.00067"
|
x="684.00067"
|
||||||
y="213.91006"
|
y="213.91006"
|
||||||
id="text4461-2-1"
|
id="text4461-2-1"
|
||||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 29 KiB |
@ -96,16 +96,6 @@ warnings:
|
|||||||
the ``rcu_.*timer wakeup didn't happen for`` console-log message,
|
the ``rcu_.*timer wakeup didn't happen for`` console-log message,
|
||||||
which will include additional debugging information.
|
which will include additional debugging information.
|
||||||
|
|
||||||
- A low-level kernel issue that either fails to invoke one of the
|
|
||||||
variants of rcu_user_enter(), rcu_user_exit(), rcu_idle_enter(),
|
|
||||||
rcu_idle_exit(), rcu_irq_enter(), or rcu_irq_exit() on the one
|
|
||||||
hand, or that invokes one of them too many times on the other.
|
|
||||||
Historically, the most frequent issue has been an omission
|
|
||||||
of either irq_enter() or irq_exit(), which in turn invoke
|
|
||||||
rcu_irq_enter() or rcu_irq_exit(), respectively. Building your
|
|
||||||
kernel with CONFIG_RCU_EQS_DEBUG=y can help track down these types
|
|
||||||
of issues, which sometimes arise in architecture-specific code.
|
|
||||||
|
|
||||||
- A bug in the RCU implementation.
|
- A bug in the RCU implementation.
|
||||||
|
|
||||||
- A hardware failure. This is quite unlikely, but has occurred
|
- A hardware failure. This is quite unlikely, but has occurred
|
||||||
@ -254,6 +244,17 @@ period (in this case 2603), the grace-period sequence number (7075), and
|
|||||||
an estimate of the total number of RCU callbacks queued across all CPUs
|
an estimate of the total number of RCU callbacks queued across all CPUs
|
||||||
(625 in this case).
|
(625 in this case).
|
||||||
|
|
||||||
|
In kernels with CONFIG_RCU_FAST_NO_HZ, more information is printed
|
||||||
|
for each CPU::
|
||||||
|
|
||||||
|
0: (64628 ticks this GP) idle=dd5/3fffffffffffffff/0 softirq=82/543 last_accelerate: a345/d342 dyntick_enabled: 1
|
||||||
|
|
||||||
|
The "last_accelerate:" prints the low-order 16 bits (in hex) of the
|
||||||
|
jiffies counter when this CPU last invoked rcu_try_advance_all_cbs()
|
||||||
|
from rcu_needs_cpu() or last invoked rcu_accelerate_cbs() from
|
||||||
|
rcu_prepare_for_idle(). "dyntick_enabled: 1" indicates that dyntick-idle
|
||||||
|
processing is enabled.
|
||||||
|
|
||||||
If the grace period ends just as the stall warning starts printing,
|
If the grace period ends just as the stall warning starts printing,
|
||||||
there will be a spurious stall-warning message, which will include
|
there will be a spurious stall-warning message, which will include
|
||||||
the following::
|
the following::
|
||||||
|
@ -39,11 +39,9 @@ different paths, as follows:
|
|||||||
|
|
||||||
:ref:`6. ANALOGY WITH READER-WRITER LOCKING <6_whatisRCU>`
|
:ref:`6. ANALOGY WITH READER-WRITER LOCKING <6_whatisRCU>`
|
||||||
|
|
||||||
:ref:`7. ANALOGY WITH REFERENCE COUNTING <7_whatisRCU>`
|
:ref:`7. FULL LIST OF RCU APIs <7_whatisRCU>`
|
||||||
|
|
||||||
:ref:`8. FULL LIST OF RCU APIs <8_whatisRCU>`
|
:ref:`8. ANSWERS TO QUICK QUIZZES <8_whatisRCU>`
|
||||||
|
|
||||||
:ref:`9. ANSWERS TO QUICK QUIZZES <9_whatisRCU>`
|
|
||||||
|
|
||||||
People who prefer starting with a conceptual overview should focus on
|
People who prefer starting with a conceptual overview should focus on
|
||||||
Section 1, though most readers will profit by reading this section at
|
Section 1, though most readers will profit by reading this section at
|
||||||
@ -679,7 +677,7 @@ Quick Quiz #1:
|
|||||||
occur when using this algorithm in a real-world Linux
|
occur when using this algorithm in a real-world Linux
|
||||||
kernel? How could this deadlock be avoided?
|
kernel? How could this deadlock be avoided?
|
||||||
|
|
||||||
:ref:`Answers to Quick Quiz <9_whatisRCU>`
|
:ref:`Answers to Quick Quiz <8_whatisRCU>`
|
||||||
|
|
||||||
5B. "TOY" EXAMPLE #2: CLASSIC RCU
|
5B. "TOY" EXAMPLE #2: CLASSIC RCU
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -734,7 +732,7 @@ Quick Quiz #2:
|
|||||||
Give an example where Classic RCU's read-side
|
Give an example where Classic RCU's read-side
|
||||||
overhead is **negative**.
|
overhead is **negative**.
|
||||||
|
|
||||||
:ref:`Answers to Quick Quiz <9_whatisRCU>`
|
:ref:`Answers to Quick Quiz <8_whatisRCU>`
|
||||||
|
|
||||||
.. _quiz_3:
|
.. _quiz_3:
|
||||||
|
|
||||||
@ -743,7 +741,7 @@ Quick Quiz #3:
|
|||||||
critical section, what the heck do you do in
|
critical section, what the heck do you do in
|
||||||
CONFIG_PREEMPT_RT, where normal spinlocks can block???
|
CONFIG_PREEMPT_RT, where normal spinlocks can block???
|
||||||
|
|
||||||
:ref:`Answers to Quick Quiz <9_whatisRCU>`
|
:ref:`Answers to Quick Quiz <8_whatisRCU>`
|
||||||
|
|
||||||
.. _6_whatisRCU:
|
.. _6_whatisRCU:
|
||||||
|
|
||||||
@ -874,79 +872,7 @@ be used in place of synchronize_rcu().
|
|||||||
|
|
||||||
.. _7_whatisRCU:
|
.. _7_whatisRCU:
|
||||||
|
|
||||||
7. ANALOGY WITH REFERENCE COUNTING
|
7. FULL LIST OF RCU APIs
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
The reader-writer analogy (illustrated by the previous section) is not
|
|
||||||
always the best way to think about using RCU. Another helpful analogy
|
|
||||||
considers RCU an effective reference count on everything which is
|
|
||||||
protected by RCU.
|
|
||||||
|
|
||||||
A reference count typically does not prevent the referenced object's
|
|
||||||
values from changing, but does prevent changes to type -- particularly the
|
|
||||||
gross change of type that happens when that object's memory is freed and
|
|
||||||
re-allocated for some other purpose. Once a type-safe reference to the
|
|
||||||
object is obtained, some other mechanism is needed to ensure consistent
|
|
||||||
access to the data in the object. This could involve taking a spinlock,
|
|
||||||
but with RCU the typical approach is to perform reads with SMP-aware
|
|
||||||
operations such as smp_load_acquire(), to perform updates with atomic
|
|
||||||
read-modify-write operations, and to provide the necessary ordering.
|
|
||||||
RCU provides a number of support functions that embed the required
|
|
||||||
operations and ordering, such as the list_for_each_entry_rcu() macro
|
|
||||||
used in the previous section.
|
|
||||||
|
|
||||||
A more focused view of the reference counting behavior is that,
|
|
||||||
between rcu_read_lock() and rcu_read_unlock(), any reference taken with
|
|
||||||
rcu_dereference() on a pointer marked as ``__rcu`` can be treated as
|
|
||||||
though a reference-count on that object has been temporarily increased.
|
|
||||||
This prevents the object from changing type. Exactly what this means
|
|
||||||
will depend on normal expectations of objects of that type, but it
|
|
||||||
typically includes that spinlocks can still be safely locked, normal
|
|
||||||
reference counters can be safely manipulated, and ``__rcu`` pointers
|
|
||||||
can be safely dereferenced.
|
|
||||||
|
|
||||||
Some operations that one might expect to see on an object for
|
|
||||||
which an RCU reference is held include:
|
|
||||||
|
|
||||||
- Copying out data that is guaranteed to be stable by the object's type.
|
|
||||||
- Using kref_get_unless_zero() or similar to get a longer-term
|
|
||||||
reference. This may fail of course.
|
|
||||||
- Acquiring a spinlock in the object, and checking if the object still
|
|
||||||
is the expected object and if so, manipulating it freely.
|
|
||||||
|
|
||||||
The understanding that RCU provides a reference that only prevents a
|
|
||||||
change of type is particularly visible with objects allocated from a
|
|
||||||
slab cache marked ``SLAB_TYPESAFE_BY_RCU``. RCU operations may yield a
|
|
||||||
reference to an object from such a cache that has been concurrently
|
|
||||||
freed and the memory reallocated to a completely different object,
|
|
||||||
though of the same type. In this case RCU doesn't even protect the
|
|
||||||
identity of the object from changing, only its type. So the object
|
|
||||||
found may not be the one expected, but it will be one where it is safe
|
|
||||||
to take a reference or spinlock and then confirm that the identity
|
|
||||||
matches the expectations.
|
|
||||||
|
|
||||||
With traditional reference counting -- such as that implemented by the
|
|
||||||
kref library in Linux -- there is typically code that runs when the last
|
|
||||||
reference to an object is dropped. With kref, this is the function
|
|
||||||
passed to kref_put(). When RCU is being used, such finalization code
|
|
||||||
must not be run until all ``__rcu`` pointers referencing the object have
|
|
||||||
been updated, and then a grace period has passed. Every remaining
|
|
||||||
globally visible pointer to the object must be considered to be a
|
|
||||||
potential counted reference, and the finalization code is typically run
|
|
||||||
using call_rcu() only after all those pointers have been changed.
|
|
||||||
|
|
||||||
To see how to choose between these two analogies -- of RCU as a
|
|
||||||
reader-writer lock and RCU as a reference counting system -- it is useful
|
|
||||||
to reflect on the scale of the thing being protected. The reader-writer
|
|
||||||
lock analogy looks at larger multi-part objects such as a linked list
|
|
||||||
and shows how RCU can facilitate concurrency while elements are added
|
|
||||||
to, and removed from, the list. The reference-count analogy looks at
|
|
||||||
the individual objects and looks at how they can be accessed safely
|
|
||||||
within whatever whole they are a part of.
|
|
||||||
|
|
||||||
.. _8_whatisRCU:
|
|
||||||
|
|
||||||
8. FULL LIST OF RCU APIs
|
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
The RCU APIs are documented in docbook-format header comments in the
|
The RCU APIs are documented in docbook-format header comments in the
|
||||||
@ -1109,9 +1035,9 @@ g. Otherwise, use RCU.
|
|||||||
Of course, this all assumes that you have determined that RCU is in fact
|
Of course, this all assumes that you have determined that RCU is in fact
|
||||||
the right tool for your job.
|
the right tool for your job.
|
||||||
|
|
||||||
.. _9_whatisRCU:
|
.. _8_whatisRCU:
|
||||||
|
|
||||||
9. ANSWERS TO QUICK QUIZZES
|
8. ANSWERS TO QUICK QUIZZES
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
Quick Quiz #1:
|
Quick Quiz #1:
|
||||||
|
@ -13,8 +13,6 @@ a) waiting for a CPU (while being runnable)
|
|||||||
b) completion of synchronous block I/O initiated by the task
|
b) completion of synchronous block I/O initiated by the task
|
||||||
c) swapping in pages
|
c) swapping in pages
|
||||||
d) memory reclaim
|
d) memory reclaim
|
||||||
e) thrashing page cache
|
|
||||||
f) direct compact
|
|
||||||
|
|
||||||
and makes these statistics available to userspace through
|
and makes these statistics available to userspace through
|
||||||
the taskstats interface.
|
the taskstats interface.
|
||||||
@ -43,12 +41,11 @@ generic data structure to userspace corresponding to per-pid and per-tgid
|
|||||||
statistics. The delay accounting functionality populates specific fields of
|
statistics. The delay accounting functionality populates specific fields of
|
||||||
this structure. See
|
this structure. See
|
||||||
|
|
||||||
include/uapi/linux/taskstats.h
|
include/linux/taskstats.h
|
||||||
|
|
||||||
for a description of the fields pertaining to delay accounting.
|
for a description of the fields pertaining to delay accounting.
|
||||||
It will generally be in the form of counters returning the cumulative
|
It will generally be in the form of counters returning the cumulative
|
||||||
delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page
|
delay seen for cpu, sync block I/O, swapin, memory reclaim etc.
|
||||||
cache, direct compact etc.
|
|
||||||
|
|
||||||
Taking the difference of two successive readings of a given
|
Taking the difference of two successive readings of a given
|
||||||
counter (say cpu_delay_total) for a task will give the delay
|
counter (say cpu_delay_total) for a task will give the delay
|
||||||
@ -91,37 +88,41 @@ seen.
|
|||||||
|
|
||||||
General format of the getdelays command::
|
General format of the getdelays command::
|
||||||
|
|
||||||
getdelays [-dilv] [-t tgid] [-p pid]
|
getdelays [-t tgid] [-p pid] [-c cmd...]
|
||||||
|
|
||||||
|
|
||||||
Get delays, since system boot, for pid 10::
|
Get delays, since system boot, for pid 10::
|
||||||
|
|
||||||
# ./getdelays -d -p 10
|
# ./getdelays -p 10
|
||||||
(output similar to next case)
|
(output similar to next case)
|
||||||
|
|
||||||
Get sum of delays, since system boot, for all pids with tgid 5::
|
Get sum of delays, since system boot, for all pids with tgid 5::
|
||||||
|
|
||||||
# ./getdelays -d -t 5
|
# ./getdelays -t 5
|
||||||
print delayacct stats ON
|
|
||||||
TGID 5
|
|
||||||
|
|
||||||
|
|
||||||
CPU count real total virtual total delay total delay average
|
CPU count real total virtual total delay total
|
||||||
8 7000000 6872122 3382277 0.423ms
|
7876 92005750 100000000 24001500
|
||||||
IO count delay total delay average
|
IO count delay total
|
||||||
0 0 0ms
|
0 0
|
||||||
SWAP count delay total delay average
|
SWAP count delay total
|
||||||
0 0 0ms
|
0 0
|
||||||
RECLAIM count delay total delay average
|
RECLAIM count delay total
|
||||||
0 0 0ms
|
0 0
|
||||||
THRASHING count delay total delay average
|
|
||||||
0 0 0ms
|
|
||||||
COMPACT count delay total delay average
|
|
||||||
0 0 0ms
|
|
||||||
|
|
||||||
Get IO accounting for pid 1, it works only with -p::
|
Get delays seen in executing a given simple command::
|
||||||
|
|
||||||
# ./getdelays -i -p 1
|
# ./getdelays -c ls /
|
||||||
printing IO accounting
|
|
||||||
linuxrc: read=65536, write=0, cancelled_write=0
|
|
||||||
|
|
||||||
The above command can be used with -v to get more debug information.
|
bin data1 data3 data5 dev home media opt root srv sys usr
|
||||||
|
boot data2 data4 data6 etc lib mnt proc sbin subdomain tmp var
|
||||||
|
|
||||||
|
|
||||||
|
CPU count real total virtual total delay total
|
||||||
|
6 4000250 4000000 0
|
||||||
|
IO count delay total
|
||||||
|
0 0
|
||||||
|
SWAP count delay total
|
||||||
|
0 0
|
||||||
|
RECLAIM count delay total
|
||||||
|
0 0
|
||||||
|
@ -55,7 +55,6 @@ SoC-specific documents
|
|||||||
stm32/stm32h750-overview
|
stm32/stm32h750-overview
|
||||||
stm32/stm32f769-overview
|
stm32/stm32f769-overview
|
||||||
stm32/stm32f429-overview
|
stm32/stm32f429-overview
|
||||||
stm32/stm32mp13-overview
|
|
||||||
stm32/stm32mp157-overview
|
stm32/stm32mp157-overview
|
||||||
|
|
||||||
sunxi
|
sunxi
|
||||||
|
@ -21,7 +21,6 @@ Orion family
|
|||||||
- Datasheet: https://web.archive.org/web/20210124231420/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-datasheet.pdf
|
- Datasheet: https://web.archive.org/web/20210124231420/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-datasheet.pdf
|
||||||
- Programmer's User Guide: https://web.archive.org/web/20210124231536/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-opensource-manual.pdf
|
- Programmer's User Guide: https://web.archive.org/web/20210124231536/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-opensource-manual.pdf
|
||||||
- User Manual: https://web.archive.org/web/20210124231631/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-usermanual.pdf
|
- User Manual: https://web.archive.org/web/20210124231631/http://csclub.uwaterloo.ca/~board/ts7800/MV88F5182-usermanual.pdf
|
||||||
- Functional Errata: https://web.archive.org/web/20210704165540/https://www.digriz.org.uk/ts78xx/88F5182_Functional_Errata.pdf
|
|
||||||
- 88F5281
|
- 88F5281
|
||||||
|
|
||||||
- Datasheet: https://web.archive.org/web/20131028144728/http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
|
- Datasheet: https://web.archive.org/web/20131028144728/http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
|
||||||
@ -104,8 +103,6 @@ Discovery family
|
|||||||
|
|
||||||
Not supported by the Linux kernel.
|
Not supported by the Linux kernel.
|
||||||
|
|
||||||
Homepage:
|
|
||||||
https://web.archive.org/web/20110924171043/http://www.marvell.com/embedded-processors/discovery-innovation/
|
|
||||||
Core:
|
Core:
|
||||||
Feroceon 88fr571-vd ARMv5 compatible
|
Feroceon 88fr571-vd ARMv5 compatible
|
||||||
|
|
||||||
@ -122,7 +119,6 @@ EBU Armada family
|
|||||||
- 88F6707
|
- 88F6707
|
||||||
- 88F6W11
|
- 88F6W11
|
||||||
|
|
||||||
- Product infos: https://web.archive.org/web/20141002083258/http://www.marvell.com/embedded-processors/armada-370/
|
|
||||||
- Product Brief: https://web.archive.org/web/20121115063038/http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
|
- Product Brief: https://web.archive.org/web/20121115063038/http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
|
||||||
- Hardware Spec: https://web.archive.org/web/20140617183747/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
|
- Hardware Spec: https://web.archive.org/web/20140617183747/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
|
||||||
- Functional Spec: https://web.archive.org/web/20140617183701/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
|
- Functional Spec: https://web.archive.org/web/20140617183701/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
|
||||||
@ -130,29 +126,9 @@ EBU Armada family
|
|||||||
Core:
|
Core:
|
||||||
Sheeva ARMv7 compatible PJ4B
|
Sheeva ARMv7 compatible PJ4B
|
||||||
|
|
||||||
Armada XP Flavors:
|
|
||||||
- MV78230
|
|
||||||
- MV78260
|
|
||||||
- MV78460
|
|
||||||
|
|
||||||
NOTE:
|
|
||||||
not to be confused with the non-SMP 78xx0 SoCs
|
|
||||||
|
|
||||||
- Product infos: https://web.archive.org/web/20150101215721/http://www.marvell.com/embedded-processors/armada-xp/
|
|
||||||
- Product Brief: https://web.archive.org/web/20121021173528/http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
|
||||||
- Functional Spec: https://web.archive.org/web/20180829171131/http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
|
||||||
- Hardware Specs:
|
|
||||||
- https://web.archive.org/web/20141127013651/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
|
||||||
- https://web.archive.org/web/20141222000224/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
|
||||||
- https://web.archive.org/web/20141222000230/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
|
||||||
|
|
||||||
Core:
|
|
||||||
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
|
||||||
|
|
||||||
Armada 375 Flavors:
|
Armada 375 Flavors:
|
||||||
- 88F6720
|
- 88F6720
|
||||||
|
|
||||||
- Product infos: https://web.archive.org/web/20140108032402/http://www.marvell.com/embedded-processors/armada-375/
|
|
||||||
- Product Brief: https://web.archive.org/web/20131216023516/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
|
- Product Brief: https://web.archive.org/web/20131216023516/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
|
||||||
|
|
||||||
Core:
|
Core:
|
||||||
@ -185,6 +161,29 @@ EBU Armada family
|
|||||||
Core:
|
Core:
|
||||||
ARM Cortex-A9
|
ARM Cortex-A9
|
||||||
|
|
||||||
|
Armada XP Flavors:
|
||||||
|
- MV78230
|
||||||
|
- MV78260
|
||||||
|
- MV78460
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
not to be confused with the non-SMP 78xx0 SoCs
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
https://web.archive.org/web/20121021173528/http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
||||||
|
|
||||||
|
Functional Spec:
|
||||||
|
https://web.archive.org/web/20180829171131/http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
||||||
|
|
||||||
|
- Hardware Specs:
|
||||||
|
|
||||||
|
- https://web.archive.org/web/20141127013651/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
||||||
|
- https://web.archive.org/web/20141222000224/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
||||||
|
- https://web.archive.org/web/20141222000230/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
||||||
|
|
||||||
|
Core:
|
||||||
|
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
||||||
|
|
||||||
Linux kernel mach directory:
|
Linux kernel mach directory:
|
||||||
arch/arm/mach-mvebu
|
arch/arm/mach-mvebu
|
||||||
Linux kernel plat directory:
|
Linux kernel plat directory:
|
||||||
@ -213,7 +212,6 @@ EBU Armada family ARMv8
|
|||||||
arch/arm64/boot/dts/marvell/armada-37*
|
arch/arm64/boot/dts/marvell/armada-37*
|
||||||
|
|
||||||
Armada 7K Flavors:
|
Armada 7K Flavors:
|
||||||
- 88F6040 (AP806 Quad 600 MHz + one CP110)
|
|
||||||
- 88F7020 (AP806 Dual + one CP110)
|
- 88F7020 (AP806 Dual + one CP110)
|
||||||
- 88F7040 (AP806 Quad + one CP110)
|
- 88F7040 (AP806 Quad + one CP110)
|
||||||
|
|
||||||
@ -245,33 +243,14 @@ EBU Armada family ARMv8
|
|||||||
Device tree files:
|
Device tree files:
|
||||||
arch/arm64/boot/dts/marvell/armada-80*
|
arch/arm64/boot/dts/marvell/armada-80*
|
||||||
|
|
||||||
Octeon TX2 CN913x Flavors:
|
|
||||||
- CN9130 (AP807 Quad + one internal CP115)
|
|
||||||
- CN9131 (AP807 Quad + one internal CP115 + one external CP115 / 88F8215)
|
|
||||||
- CN9132 (AP807 Quad + one internal CP115 + two external CP115 / 88F8215)
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARM Cortex A72
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
https://web.archive.org/web/20200803150818/https://www.marvell.com/products/infrastructure-processors/multi-core-processors/octeon-tx2/octeon-tx2-cn9130.html
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
https://web.archive.org/web/20200803150818/https://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-infrastructure-processors-octeon-tx2-cn913x-product-brief-2020-02.pdf
|
|
||||||
|
|
||||||
Device tree files:
|
|
||||||
arch/arm64/boot/dts/marvell/cn913*
|
|
||||||
|
|
||||||
Avanta family
|
Avanta family
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Flavors:
|
Flavors:
|
||||||
- 88F6500
|
|
||||||
- 88F6510
|
- 88F6510
|
||||||
- 88F6530P
|
- 88F6530P
|
||||||
- 88F6550
|
- 88F6550
|
||||||
- 88F6560
|
- 88F6560
|
||||||
- 88F6601
|
|
||||||
|
|
||||||
Homepage:
|
Homepage:
|
||||||
https://web.archive.org/web/20181005145041/http://www.marvell.com/broadband/
|
https://web.archive.org/web/20181005145041/http://www.marvell.com/broadband/
|
||||||
@ -438,7 +417,7 @@ Berlin family (Multimedia Solutions)
|
|||||||
- Flavors:
|
- Flavors:
|
||||||
- 88DE3010, Armada 1000 (no Linux support)
|
- 88DE3010, Armada 1000 (no Linux support)
|
||||||
- Core: Marvell PJ1 (ARMv5TE), Dual-core
|
- Core: Marvell PJ1 (ARMv5TE), Dual-core
|
||||||
- Product Brief: https://web.archive.org/web/20131103162620/http://www.marvell.com/digital-entertainment/assets/armada_1000_pb.pdf
|
- Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
|
||||||
- 88DE3005, Armada 1500 Mini
|
- 88DE3005, Armada 1500 Mini
|
||||||
- Design name: BG2CD
|
- Design name: BG2CD
|
||||||
- Core: ARM Cortex-A9, PL310 L2CC
|
- Core: ARM Cortex-A9, PL310 L2CC
|
||||||
|
@ -137,26 +137,6 @@ the Microchip website: http://www.microchip.com.
|
|||||||
|
|
||||||
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
|
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
|
||||||
|
|
||||||
* ARM Cortex-A7 based SoCs
|
|
||||||
- sama7g5 family
|
|
||||||
|
|
||||||
- sama7g51
|
|
||||||
- sama7g52
|
|
||||||
- sama7g53
|
|
||||||
- sama7g54 (device superset)
|
|
||||||
|
|
||||||
* Datasheet
|
|
||||||
|
|
||||||
Coming soon
|
|
||||||
|
|
||||||
- lan966 family
|
|
||||||
- lan9662
|
|
||||||
- lan9668
|
|
||||||
|
|
||||||
* Datasheet
|
|
||||||
|
|
||||||
Coming soon
|
|
||||||
|
|
||||||
* ARM Cortex-M7 MCUs
|
* ARM Cortex-M7 MCUs
|
||||||
- sams70 family
|
- sams70 family
|
||||||
|
|
||||||
|
@ -340,16 +340,6 @@ Before jumping into the kernel, the following conditions must be met:
|
|||||||
- SMCR_EL2.LEN must be initialised to the same value for all CPUs the
|
- SMCR_EL2.LEN must be initialised to the same value for all CPUs the
|
||||||
kernel will execute on.
|
kernel will execute on.
|
||||||
|
|
||||||
For CPUs with the Scalable Matrix Extension FA64 feature (FEAT_SME_FA64)
|
|
||||||
|
|
||||||
- If EL3 is present:
|
|
||||||
|
|
||||||
- SMCR_EL3.FA64 (bit 31) must be initialised to 0b1.
|
|
||||||
|
|
||||||
- If the kernel is entered at EL1 and EL2 is present:
|
|
||||||
|
|
||||||
- SMCR_EL2.FA64 (bit 31) must be initialised to 0b1.
|
|
||||||
|
|
||||||
The requirements described above for CPU mode, caches, MMUs, architected
|
The requirements described above for CPU mode, caches, MMUs, architected
|
||||||
timers, coherency and system registers apply to all CPUs. All CPUs must
|
timers, coherency and system registers apply to all CPUs. All CPUs must
|
||||||
enter the kernel in the same exception level. Where the values documented
|
enter the kernel in the same exception level. Where the values documented
|
||||||
|
@ -2,10 +2,7 @@
|
|||||||
|
|
||||||
.. _perf_index:
|
.. _perf_index:
|
||||||
|
|
||||||
====
|
=====================
|
||||||
Perf
|
|
||||||
====
|
|
||||||
|
|
||||||
Perf Event Attributes
|
Perf Event Attributes
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
@ -91,76 +88,3 @@ exclude_host. However when using !exclude_hv there is a small blackout
|
|||||||
window at the guest entry/exit where host events are not captured.
|
window at the guest entry/exit where host events are not captured.
|
||||||
|
|
||||||
On VHE systems there are no blackout windows.
|
On VHE systems there are no blackout windows.
|
||||||
|
|
||||||
Perf Userspace PMU Hardware Counter Access
|
|
||||||
==========================================
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
The perf userspace tool relies on the PMU to monitor events. It offers an
|
|
||||||
abstraction layer over the hardware counters since the underlying
|
|
||||||
implementation is cpu-dependent.
|
|
||||||
Arm64 allows userspace tools to have access to the registers storing the
|
|
||||||
hardware counters' values directly.
|
|
||||||
|
|
||||||
This targets specifically self-monitoring tasks in order to reduce the overhead
|
|
||||||
by directly accessing the registers without having to go through the kernel.
|
|
||||||
|
|
||||||
How-to
|
|
||||||
------
|
|
||||||
The focus is set on the armv8 PMUv3 which makes sure that the access to the pmu
|
|
||||||
registers is enabled and that the userspace has access to the relevant
|
|
||||||
information in order to use them.
|
|
||||||
|
|
||||||
In order to have access to the hardware counters, the global sysctl
|
|
||||||
kernel/perf_user_access must first be enabled:
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
echo 1 > /proc/sys/kernel/perf_user_access
|
|
||||||
|
|
||||||
It is necessary to open the event using the perf tool interface with config1:1
|
|
||||||
attr bit set: the sys_perf_event_open syscall returns a fd which can
|
|
||||||
subsequently be used with the mmap syscall in order to retrieve a page of memory
|
|
||||||
containing information about the event. The PMU driver uses this page to expose
|
|
||||||
to the user the hardware counter's index and other necessary data. Using this
|
|
||||||
index enables the user to access the PMU registers using the `mrs` instruction.
|
|
||||||
Access to the PMU registers is only valid while the sequence lock is unchanged.
|
|
||||||
In particular, the PMSELR_EL0 register is zeroed each time the sequence lock is
|
|
||||||
changed.
|
|
||||||
|
|
||||||
The userspace access is supported in libperf using the perf_evsel__mmap()
|
|
||||||
and perf_evsel__read() functions. See `tools/lib/perf/tests/test-evsel.c`_ for
|
|
||||||
an example.
|
|
||||||
|
|
||||||
About heterogeneous systems
|
|
||||||
---------------------------
|
|
||||||
On heterogeneous systems such as big.LITTLE, userspace PMU counter access can
|
|
||||||
only be enabled when the tasks are pinned to a homogeneous subset of cores and
|
|
||||||
the corresponding PMU instance is opened by specifying the 'type' attribute.
|
|
||||||
The use of generic event types is not supported in this case.
|
|
||||||
|
|
||||||
Have a look at `tools/perf/arch/arm64/tests/user-events.c`_ for an example. It
|
|
||||||
can be run using the perf tool to check that the access to the registers works
|
|
||||||
correctly from userspace:
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
perf test -v user
|
|
||||||
|
|
||||||
About chained events and counter sizes
|
|
||||||
--------------------------------------
|
|
||||||
The user can request either a 32-bit (config1:0 == 0) or 64-bit (config1:0 == 1)
|
|
||||||
counter along with userspace access. The sys_perf_event_open syscall will fail
|
|
||||||
if a 64-bit counter is requested and the hardware doesn't support 64-bit
|
|
||||||
counters. Chained events are not supported in conjunction with userspace counter
|
|
||||||
access. If a 32-bit counter is requested on hardware with 64-bit counters, then
|
|
||||||
userspace must treat the upper 32-bits read from the counter as UNKNOWN. The
|
|
||||||
'pmc_width' field in the user page will indicate the valid width of the counter
|
|
||||||
and should be used to mask the upper bits as needed.
|
|
||||||
|
|
||||||
.. Links
|
|
||||||
.. _tools/perf/arch/arm64/tests/user-events.c:
|
|
||||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/arch/arm64/tests/user-events.c
|
|
||||||
.. _tools/lib/perf/tests/test-evsel.c:
|
|
||||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/lib/perf/tests/test-evsel.c
|
|
||||||
|
@ -53,10 +53,11 @@ The number of bits that the PAC occupies in a pointer is 55 minus the
|
|||||||
virtual address size configured by the kernel. For example, with a
|
virtual address size configured by the kernel. For example, with a
|
||||||
virtual address size of 48, the PAC is 7 bits wide.
|
virtual address size of 48, the PAC is 7 bits wide.
|
||||||
|
|
||||||
When ARM64_PTR_AUTH_KERNEL is selected, the kernel will be compiled
|
Recent versions of GCC can compile code with APIAKey-based return
|
||||||
with HINT space pointer authentication instructions protecting
|
address protection when passed the -msign-return-address option. This
|
||||||
function returns. Kernels built with this option will work on hardware
|
uses instructions in the HINT space (unless -march=armv8.3-a or higher
|
||||||
with or without pointer authentication support.
|
is also passed), and such code can run on systems without the pointer
|
||||||
|
authentication extension.
|
||||||
|
|
||||||
In addition to exec(), keys can also be reinitialized to random values
|
In addition to exec(), keys can also be reinitialized to random values
|
||||||
using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY,
|
using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY,
|
||||||
|
@ -52,12 +52,6 @@ stable kernels.
|
|||||||
| Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
|
| Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A510 | #1902691 | ARM64_ERRATUM_1902691 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
|
| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
|
| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
|
||||||
@ -98,32 +92,12 @@ stable kernels.
|
|||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
|
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-A710 | #2224489 | ARM64_ERRATUM_2224489 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
|
| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-N1 | #1349291 | N/A |
|
| ARM | Neoverse-N1 | #1349291 | N/A |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
|
| ARM | Neoverse-N1 | #1542419 | ARM64_ERRATUM_1542419 |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
| ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | Neoverse-N2 | #2253138 | ARM64_ERRATUM_2253138 |
|
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
|
||||||
| ARM | MMU-500 | #841119,826419 | N/A |
|
| ARM | MMU-500 | #841119,826419 | N/A |
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
+----------------+-----------------+-----------------+-----------------------------+
|
+----------------+-----------------+-----------------+-----------------------------+
|
||||||
|
@ -255,7 +255,7 @@ prctl(PR_SVE_GET_VL)
|
|||||||
vector length change (which would only normally be the case between a
|
vector length change (which would only normally be the case between a
|
||||||
fork() or vfork() and the corresponding execve() in typical use).
|
fork() or vfork() and the corresponding execve() in typical use).
|
||||||
|
|
||||||
To extract the vector length from the result, bitwise and it with
|
To extract the vector length from the result, and it with
|
||||||
PR_SVE_VL_LEN_MASK.
|
PR_SVE_VL_LEN_MASK.
|
||||||
|
|
||||||
Return value: a nonnegative value on success, or a negative value on error:
|
Return value: a nonnegative value on success, or a negative value on error:
|
||||||
|
@ -20,6 +20,7 @@ Block
|
|||||||
kyber-iosched
|
kyber-iosched
|
||||||
null_blk
|
null_blk
|
||||||
pr
|
pr
|
||||||
|
queue-sysfs
|
||||||
request
|
request
|
||||||
stat
|
stat
|
||||||
switching-sched
|
switching-sched
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
.. SPDX-License-Identifier: GPL-2.0
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
.. _inline_encryption:
|
|
||||||
|
|
||||||
=================
|
=================
|
||||||
Inline Encryption
|
Inline Encryption
|
||||||
=================
|
=================
|
||||||
@ -9,269 +7,230 @@ Inline Encryption
|
|||||||
Background
|
Background
|
||||||
==========
|
==========
|
||||||
|
|
||||||
Inline encryption hardware sits logically between memory and disk, and can
|
Inline encryption hardware sits logically between memory and the disk, and can
|
||||||
en/decrypt data as it goes in/out of the disk. For each I/O request, software
|
en/decrypt data as it goes in/out of the disk. Inline encryption hardware has a
|
||||||
can control exactly how the inline encryption hardware will en/decrypt the data
|
fixed number of "keyslots" - slots into which encryption contexts (i.e. the
|
||||||
in terms of key, algorithm, data unit size (the granularity of en/decryption),
|
encryption key, encryption algorithm, data unit size) can be programmed by the
|
||||||
and data unit number (a value that determines the initialization vector(s)).
|
kernel at any time. Each request sent to the disk can be tagged with the index
|
||||||
|
of a keyslot (and also a data unit number to act as an encryption tweak), and
|
||||||
|
the inline encryption hardware will en/decrypt the data in the request with the
|
||||||
|
encryption context programmed into that keyslot. This is very different from
|
||||||
|
full disk encryption solutions like self encrypting drives/TCG OPAL/ATA
|
||||||
|
Security standards, since with inline encryption, any block on disk could be
|
||||||
|
encrypted with any encryption context the kernel chooses.
|
||||||
|
|
||||||
Some inline encryption hardware accepts all encryption parameters including raw
|
|
||||||
keys directly in low-level I/O requests. However, most inline encryption
|
|
||||||
hardware instead has a fixed number of "keyslots" and requires that the key,
|
|
||||||
algorithm, and data unit size first be programmed into a keyslot. Each
|
|
||||||
low-level I/O request then just contains a keyslot index and data unit number.
|
|
||||||
|
|
||||||
Note that inline encryption hardware is very different from traditional crypto
|
|
||||||
accelerators, which are supported through the kernel crypto API. Traditional
|
|
||||||
crypto accelerators operate on memory regions, whereas inline encryption
|
|
||||||
hardware operates on I/O requests. Thus, inline encryption hardware needs to be
|
|
||||||
managed by the block layer, not the kernel crypto API.
|
|
||||||
|
|
||||||
Inline encryption hardware is also very different from "self-encrypting drives",
|
|
||||||
such as those based on the TCG Opal or ATA Security standards. Self-encrypting
|
|
||||||
drives don't provide fine-grained control of encryption and provide no way to
|
|
||||||
verify the correctness of the resulting ciphertext. Inline encryption hardware
|
|
||||||
provides fine-grained control of encryption, including the choice of key and
|
|
||||||
initialization vector for each sector, and can be tested for correctness.
|
|
||||||
|
|
||||||
Objective
|
Objective
|
||||||
=========
|
=========
|
||||||
|
|
||||||
We want to support inline encryption in the kernel. To make testing easier, we
|
We want to support inline encryption (IE) in the kernel.
|
||||||
also want support for falling back to the kernel crypto API when actual inline
|
To allow for testing, we also want a crypto API fallback when actual
|
||||||
encryption hardware is absent. We also want inline encryption to work with
|
IE hardware is absent. We also want IE to work with layered devices
|
||||||
layered devices like device-mapper and loopback (i.e. we want to be able to use
|
like dm and loopback (i.e. we want to be able to use the IE hardware
|
||||||
the inline encryption hardware of the underlying devices if present, or else
|
of the underlying devices if present, or else fall back to crypto API
|
||||||
fall back to crypto API en/decryption).
|
en/decryption).
|
||||||
|
|
||||||
|
|
||||||
Constraints and notes
|
Constraints and notes
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
- We need a way for upper layers (e.g. filesystems) to specify an encryption
|
- IE hardware has a limited number of "keyslots" that can be programmed
|
||||||
context to use for en/decrypting a bio, and device drivers (e.g. UFSHCD) need
|
with an encryption context (key, algorithm, data unit size, etc.) at any time.
|
||||||
to be able to use that encryption context when they process the request.
|
One can specify a keyslot in a data request made to the device, and the
|
||||||
Encryption contexts also introduce constraints on bio merging; the block layer
|
device will en/decrypt the data using the encryption context programmed into
|
||||||
needs to be aware of these constraints.
|
that specified keyslot. When possible, we want to make multiple requests with
|
||||||
|
the same encryption context share the same keyslot.
|
||||||
|
|
||||||
- Different inline encryption hardware has different supported algorithms,
|
- We need a way for upper layers like filesystems to specify an encryption
|
||||||
supported data unit sizes, maximum data unit numbers, etc. We call these
|
context to use for en/decrypting a struct bio, and a device driver (like UFS)
|
||||||
properties the "crypto capabilities". We need a way for device drivers to
|
needs to be able to use that encryption context when it processes the bio.
|
||||||
advertise crypto capabilities to upper layers in a generic way.
|
|
||||||
|
|
||||||
- Inline encryption hardware usually (but not always) requires that keys be
|
- We need a way for device drivers to expose their inline encryption
|
||||||
programmed into keyslots before being used. Since programming keyslots may be
|
capabilities in a unified way to the upper layers.
|
||||||
slow and there may not be very many keyslots, we shouldn't just program the
|
|
||||||
key for every I/O request, but rather keep track of which keys are in the
|
|
||||||
keyslots and reuse an already-programmed keyslot when possible.
|
|
||||||
|
|
||||||
- Upper layers typically define a specific end-of-life for crypto keys, e.g.
|
|
||||||
when an encrypted directory is locked or when a crypto mapping is torn down.
|
|
||||||
At these times, keys are wiped from memory. We must provide a way for upper
|
|
||||||
layers to also evict keys from any keyslots they are present in.
|
|
||||||
|
|
||||||
- When possible, device-mapper devices must be able to pass through the inline
|
Design
|
||||||
encryption support of their underlying devices. However, it doesn't make
|
======
|
||||||
sense for device-mapper devices to have keyslots themselves.
|
|
||||||
|
|
||||||
Basic design
|
We add a struct bio_crypt_ctx to struct bio that can
|
||||||
============
|
represent an encryption context, because we need to be able to pass this
|
||||||
|
encryption context from the upper layers (like the fs layer) to the
|
||||||
|
device driver to act upon.
|
||||||
|
|
||||||
We introduce ``struct blk_crypto_key`` to represent an inline encryption key and
|
While IE hardware works on the notion of keyslots, the FS layer has no
|
||||||
how it will be used. This includes the actual bytes of the key; the size of the
|
knowledge of keyslots - it simply wants to specify an encryption context to
|
||||||
key; the algorithm and data unit size the key will be used with; and the number
|
use while en/decrypting a bio.
|
||||||
of bytes needed to represent the maximum data unit number the key will be used
|
|
||||||
with.
|
|
||||||
|
|
||||||
We introduce ``struct bio_crypt_ctx`` to represent an encryption context. It
|
We introduce a keyslot manager (KSM) that handles the translation from
|
||||||
contains a data unit number and a pointer to a blk_crypto_key. We add pointers
|
encryption contexts specified by the FS to keyslots on the IE hardware.
|
||||||
to a bio_crypt_ctx to ``struct bio`` and ``struct request``; this allows users
|
This KSM also serves as the way IE hardware can expose its capabilities to
|
||||||
of the block layer (e.g. filesystems) to provide an encryption context when
|
upper layers. The generic mode of operation is: each device driver that wants
|
||||||
creating a bio and have it be passed down the stack for processing by the block
|
to support IE will construct a KSM and set it up in its struct request_queue.
|
||||||
layer and device drivers. Note that the encryption context doesn't explicitly
|
Upper layers that want to use IE on this device can then use this KSM in
|
||||||
say whether to encrypt or decrypt, as that is implicit from the direction of the
|
the device's struct request_queue to translate an encryption context into
|
||||||
bio; WRITE means encrypt, and READ means decrypt.
|
a keyslot. The presence of the KSM in the request queue shall be used to mean
|
||||||
|
that the device supports IE.
|
||||||
|
|
||||||
We also introduce ``struct blk_crypto_profile`` to contain all generic inline
|
The KSM uses refcounts to track which keyslots are idle (either they have no
|
||||||
encryption-related state for a particular inline encryption device. The
|
encryption context programmed, or there are no in-flight struct bios
|
||||||
blk_crypto_profile serves as the way that drivers for inline encryption hardware
|
referencing that keyslot). When a new encryption context needs a keyslot, it
|
||||||
advertise their crypto capabilities and provide certain functions (e.g.,
|
tries to find a keyslot that has already been programmed with the same
|
||||||
functions to program and evict keys) to upper layers. Each device driver that
|
encryption context, and if there is no such keyslot, it evicts the least
|
||||||
wants to support inline encryption will construct a blk_crypto_profile, then
|
recently used idle keyslot and programs the new encryption context into that
|
||||||
associate it with the disk's request_queue.
|
one. If no idle keyslots are available, then the caller will sleep until there
|
||||||
|
is at least one.
|
||||||
|
|
||||||
The blk_crypto_profile also manages the hardware's keyslots, when applicable.
|
|
||||||
This happens in the block layer, so that users of the block layer can just
|
|
||||||
specify encryption contexts and don't need to know about keyslots at all, nor do
|
|
||||||
device drivers need to care about most details of keyslot management.
|
|
||||||
|
|
||||||
Specifically, for each keyslot, the block layer (via the blk_crypto_profile)
|
blk-mq changes, other block layer changes and blk-crypto-fallback
|
||||||
keeps track of which blk_crypto_key that keyslot contains (if any), and how many
|
=================================================================
|
||||||
in-flight I/O requests are using it. When the block layer creates a
|
|
||||||
``struct request`` for a bio that has an encryption context, it grabs a keyslot
|
|
||||||
that already contains the key if possible. Otherwise it waits for an idle
|
|
||||||
keyslot (a keyslot that isn't in-use by any I/O), then programs the key into the
|
|
||||||
least-recently-used idle keyslot using the function the device driver provided.
|
|
||||||
In both cases, the resulting keyslot is stored in the ``crypt_keyslot`` field of
|
|
||||||
the request, where it is then accessible to device drivers and is released after
|
|
||||||
the request completes.
|
|
||||||
|
|
||||||
``struct request`` also contains a pointer to the original bio_crypt_ctx.
|
We add a pointer to a ``bi_crypt_context`` and ``keyslot`` to
|
||||||
Requests can be built from multiple bios, and the block layer must take the
|
struct request. These will be referred to as the ``crypto fields``
|
||||||
encryption context into account when trying to merge bios and requests. For two
|
for the request. This ``keyslot`` is the keyslot into which the
|
||||||
bios/requests to be merged, they must have compatible encryption contexts: both
|
``bi_crypt_context`` has been programmed in the KSM of the ``request_queue``
|
||||||
unencrypted, or both encrypted with the same key and contiguous data unit
|
that this request is being sent to.
|
||||||
numbers. Only the encryption context for the first bio in a request is
|
|
||||||
retained, since the remaining bios have been verified to be merge-compatible
|
|
||||||
with the first bio.
|
|
||||||
|
|
||||||
To make it possible for inline encryption to work with request_queue based
|
We introduce ``block/blk-crypto-fallback.c``, which allows upper layers to remain
|
||||||
layered devices, when a request is cloned, its encryption context is cloned as
|
blissfully unaware of whether or not real inline encryption hardware is present
|
||||||
well. When the cloned request is submitted, it is then processed as usual; this
|
underneath. When a bio is submitted with a target ``request_queue`` that doesn't
|
||||||
includes getting a keyslot from the clone's target device if needed.
|
support the encryption context specified with the bio, the block layer will
|
||||||
|
en/decrypt the bio with the blk-crypto-fallback.
|
||||||
|
|
||||||
blk-crypto-fallback
|
If the bio is a ``WRITE`` bio, a bounce bio is allocated, and the data in the bio
|
||||||
===================
|
is encrypted stored in the bounce bio - blk-mq will then proceed to process the
|
||||||
|
bounce bio as if it were not encrypted at all (except when blk-integrity is
|
||||||
|
concerned). ``blk-crypto-fallback`` sets the bounce bio's ``bi_end_io`` to an
|
||||||
|
internal function that cleans up the bounce bio and ends the original bio.
|
||||||
|
|
||||||
It is desirable for the inline encryption support of upper layers (e.g.
|
If the bio is a ``READ`` bio, the bio's ``bi_end_io`` (and also ``bi_private``)
|
||||||
filesystems) to be testable without real inline encryption hardware, and
|
is saved and overwritten by ``blk-crypto-fallback`` to
|
||||||
likewise for the block layer's keyslot management logic. It is also desirable
|
``bio_crypto_fallback_decrypt_bio``. The bio's ``bi_crypt_context`` is also
|
||||||
to allow upper layers to just always use inline encryption rather than have to
|
overwritten with ``NULL``, so that to the rest of the stack, the bio looks
|
||||||
implement encryption in multiple ways.
|
as if it was a regular bio that never had an encryption context specified.
|
||||||
|
``bio_crypto_fallback_decrypt_bio`` will decrypt the bio, restore the original
|
||||||
|
``bi_end_io`` (and also ``bi_private``) and end the bio again.
|
||||||
|
|
||||||
Therefore, we also introduce *blk-crypto-fallback*, which is an implementation
|
Regardless of whether real inline encryption hardware is used or the
|
||||||
of inline encryption using the kernel crypto API. blk-crypto-fallback is built
|
|
||||||
into the block layer, so it works on any block device without any special setup.
|
|
||||||
Essentially, when a bio with an encryption context is submitted to a
|
|
||||||
request_queue that doesn't support that encryption context, the block layer will
|
|
||||||
handle en/decryption of the bio using blk-crypto-fallback.
|
|
||||||
|
|
||||||
For encryption, the data cannot be encrypted in-place, as callers usually rely
|
|
||||||
on it being unmodified. Instead, blk-crypto-fallback allocates bounce pages,
|
|
||||||
fills a new bio with those bounce pages, encrypts the data into those bounce
|
|
||||||
pages, and submits that "bounce" bio. When the bounce bio completes,
|
|
||||||
blk-crypto-fallback completes the original bio. If the original bio is too
|
|
||||||
large, multiple bounce bios may be required; see the code for details.
|
|
||||||
|
|
||||||
For decryption, blk-crypto-fallback "wraps" the bio's completion callback
|
|
||||||
(``bi_complete``) and private data (``bi_private``) with its own, unsets the
|
|
||||||
bio's encryption context, then submits the bio. If the read completes
|
|
||||||
successfully, blk-crypto-fallback restores the bio's original completion
|
|
||||||
callback and private data, then decrypts the bio's data in-place using the
|
|
||||||
kernel crypto API. Decryption happens from a workqueue, as it may sleep.
|
|
||||||
Afterwards, blk-crypto-fallback completes the bio.
|
|
||||||
|
|
||||||
In both cases, the bios that blk-crypto-fallback submits no longer have an
|
|
||||||
encryption context. Therefore, lower layers only see standard unencrypted I/O.
|
|
||||||
|
|
||||||
blk-crypto-fallback also defines its own blk_crypto_profile and has its own
|
|
||||||
"keyslots"; its keyslots contain ``struct crypto_skcipher`` objects. The reason
|
|
||||||
for this is twofold. First, it allows the keyslot management logic to be tested
|
|
||||||
without actual inline encryption hardware. Second, similar to actual inline
|
|
||||||
encryption hardware, the crypto API doesn't accept keys directly in requests but
|
|
||||||
rather requires that keys be set ahead of time, and setting keys can be
|
|
||||||
expensive; moreover, allocating a crypto_skcipher can't happen on the I/O path
|
|
||||||
at all due to the locks it takes. Therefore, the concept of keyslots still
|
|
||||||
makes sense for blk-crypto-fallback.
|
|
||||||
|
|
||||||
Note that regardless of whether real inline encryption hardware or
|
|
||||||
blk-crypto-fallback is used, the ciphertext written to disk (and hence the
|
blk-crypto-fallback is used, the ciphertext written to disk (and hence the
|
||||||
on-disk format of data) will be the same (assuming that both the inline
|
on-disk format of data) will be the same (assuming the hardware's implementation
|
||||||
encryption hardware's implementation and the kernel crypto API's implementation
|
of the algorithm being used adheres to spec and functions correctly).
|
||||||
of the algorithm being used adhere to spec and function correctly).
|
|
||||||
|
If a ``request queue``'s inline encryption hardware claimed to support the
|
||||||
|
encryption context specified with a bio, then it will not be handled by the
|
||||||
|
``blk-crypto-fallback``. We will eventually reach a point in blk-mq when a
|
||||||
|
struct request needs to be allocated for that bio. At that point,
|
||||||
|
blk-mq tries to program the encryption context into the ``request_queue``'s
|
||||||
|
keyslot_manager, and obtain a keyslot, which it stores in its newly added
|
||||||
|
``keyslot`` field. This keyslot is released when the request is completed.
|
||||||
|
|
||||||
|
When the first bio is added to a request, ``blk_crypto_rq_bio_prep`` is called,
|
||||||
|
which sets the request's ``crypt_ctx`` to a copy of the bio's
|
||||||
|
``bi_crypt_context``. bio_crypt_do_front_merge is called whenever a subsequent
|
||||||
|
bio is merged to the front of the request, which updates the ``crypt_ctx`` of
|
||||||
|
the request so that it matches the newly merged bio's ``bi_crypt_context``. In particular, the request keeps a copy of the ``bi_crypt_context`` of the first
|
||||||
|
bio in its bio-list (blk-mq needs to be careful to maintain this invariant
|
||||||
|
during bio and request merges).
|
||||||
|
|
||||||
|
To make it possible for inline encryption to work with request queue based
|
||||||
|
layered devices, when a request is cloned, its ``crypto fields`` are cloned as
|
||||||
|
well. When the cloned request is submitted, blk-mq programs the
|
||||||
|
``bi_crypt_context`` of the request into the clone's request_queue's keyslot
|
||||||
|
manager, and stores the returned keyslot in the clone's ``keyslot``.
|
||||||
|
|
||||||
blk-crypto-fallback is optional and is controlled by the
|
|
||||||
``CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK`` kernel configuration option.
|
|
||||||
|
|
||||||
API presented to users of the block layer
|
API presented to users of the block layer
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
``blk_crypto_config_supported()`` allows users to check ahead of time whether
|
``struct blk_crypto_key`` represents a crypto key (the raw key, size of the
|
||||||
inline encryption with particular crypto settings will work on a particular
|
key, the crypto algorithm to use, the data unit size to use, and the number of
|
||||||
request_queue -- either via hardware or via blk-crypto-fallback. This function
|
bytes required to represent data unit numbers that will be specified with the
|
||||||
takes in a ``struct blk_crypto_config`` which is like blk_crypto_key, but omits
|
``bi_crypt_context``).
|
||||||
the actual bytes of the key and instead just contains the algorithm, data unit
|
|
||||||
size, etc. This function can be useful if blk-crypto-fallback is disabled.
|
|
||||||
|
|
||||||
``blk_crypto_init_key()`` allows users to initialize a blk_crypto_key.
|
``blk_crypto_init_key`` allows upper layers to initialize such a
|
||||||
|
``blk_crypto_key``.
|
||||||
|
|
||||||
Users must call ``blk_crypto_start_using_key()`` before actually starting to use
|
``bio_crypt_set_ctx`` should be called on any bio that a user of
|
||||||
a blk_crypto_key on a request_queue (even if ``blk_crypto_config_supported()``
|
the block layer wants en/decrypted via inline encryption (or the
|
||||||
was called earlier). This is needed to initialize blk-crypto-fallback if it
|
blk-crypto-fallback, if hardware support isn't available for the desired
|
||||||
will be needed. This must not be called from the data path, as this may have to
|
crypto configuration). This function takes the ``blk_crypto_key`` and the
|
||||||
allocate resources, which may deadlock in that case.
|
data unit number (DUN) to use when en/decrypting the bio.
|
||||||
|
|
||||||
Next, to attach an encryption context to a bio, users should call
|
``blk_crypto_config_supported`` allows upper layers to query whether or not the
|
||||||
``bio_crypt_set_ctx()``. This function allocates a bio_crypt_ctx and attaches
|
an encryption context passed to request queue can be handled by blk-crypto
|
||||||
it to a bio, given the blk_crypto_key and the data unit number that will be used
|
(either by real inline encryption hardware, or by the blk-crypto-fallback).
|
||||||
for en/decryption. Users don't need to worry about freeing the bio_crypt_ctx
|
This is useful e.g. when blk-crypto-fallback is disabled, and the upper layer
|
||||||
later, as that happens automatically when the bio is freed or reset.
|
wants to use an algorithm that may not supported by hardware - this function
|
||||||
|
lets the upper layer know ahead of time that the algorithm isn't supported,
|
||||||
|
and the upper layer can fallback to something else if appropriate.
|
||||||
|
|
||||||
Finally, when done using inline encryption with a blk_crypto_key on a
|
``blk_crypto_start_using_key`` - Upper layers must call this function on
|
||||||
request_queue, users must call ``blk_crypto_evict_key()``. This ensures that
|
``blk_crypto_key`` and a ``request_queue`` before using the key with any bio
|
||||||
the key is evicted from all keyslots it may be programmed into and unlinked from
|
headed for that ``request_queue``. This function ensures that either the
|
||||||
any kernel data structures it may be linked into.
|
hardware supports the key's crypto settings, or the crypto API fallback has
|
||||||
|
transforms for the needed mode allocated and ready to go. Note that this
|
||||||
|
function may allocate an ``skcipher``, and must not be called from the data
|
||||||
|
path, since allocating ``skciphers`` from the data path can deadlock.
|
||||||
|
|
||||||
In summary, for users of the block layer, the lifecycle of a blk_crypto_key is
|
``blk_crypto_evict_key`` *must* be called by upper layers before a
|
||||||
as follows:
|
``blk_crypto_key`` is freed. Further, it *must* only be called only once
|
||||||
|
there are no more in-flight requests that use that ``blk_crypto_key``.
|
||||||
1. ``blk_crypto_config_supported()`` (optional)
|
``blk_crypto_evict_key`` will ensure that a key is removed from any keyslots in
|
||||||
2. ``blk_crypto_init_key()``
|
inline encryption hardware that the key might have been programmed into (or the blk-crypto-fallback).
|
||||||
3. ``blk_crypto_start_using_key()``
|
|
||||||
4. ``bio_crypt_set_ctx()`` (potentially many times)
|
|
||||||
5. ``blk_crypto_evict_key()`` (after all I/O has completed)
|
|
||||||
6. Zeroize the blk_crypto_key (this has no dedicated function)
|
|
||||||
|
|
||||||
If a blk_crypto_key is being used on multiple request_queues, then
|
|
||||||
``blk_crypto_config_supported()`` (if used), ``blk_crypto_start_using_key()``,
|
|
||||||
and ``blk_crypto_evict_key()`` must be called on each request_queue.
|
|
||||||
|
|
||||||
API presented to device drivers
|
API presented to device drivers
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
A device driver that wants to support inline encryption must set up a
|
A :c:type:``struct blk_keyslot_manager`` should be set up by device drivers in
|
||||||
blk_crypto_profile in the request_queue of its device. To do this, it first
|
the ``request_queue`` of the device. The device driver needs to call
|
||||||
must call ``blk_crypto_profile_init()`` (or its resource-managed variant
|
``blk_ksm_init`` (or its resource-managed variant ``devm_blk_ksm_init``) on the
|
||||||
``devm_blk_crypto_profile_init()``), providing the number of keyslots.
|
``blk_keyslot_manager``, while specifying the number of keyslots supported by
|
||||||
|
the hardware.
|
||||||
|
|
||||||
Next, it must advertise its crypto capabilities by setting fields in the
|
The device driver also needs to tell the KSM how to actually manipulate the
|
||||||
blk_crypto_profile, e.g. ``modes_supported`` and ``max_dun_bytes_supported``.
|
IE hardware in the device to do things like programming the crypto key into
|
||||||
|
the IE hardware into a particular keyslot. All this is achieved through the
|
||||||
|
struct blk_ksm_ll_ops field in the KSM that the device driver
|
||||||
|
must fill up after initing the ``blk_keyslot_manager``.
|
||||||
|
|
||||||
It then must set function pointers in the ``ll_ops`` field of the
|
The KSM also handles runtime power management for the device when applicable
|
||||||
blk_crypto_profile to tell upper layers how to control the inline encryption
|
(e.g. when it wants to program a crypto key into the IE hardware, the device
|
||||||
hardware, e.g. how to program and evict keyslots. Most drivers will need to
|
must be runtime powered on) - so the device driver must also set the ``dev``
|
||||||
implement ``keyslot_program`` and ``keyslot_evict``. For details, see the
|
field in the ksm to point to the `struct device` for the KSM to use for runtime
|
||||||
comments for ``struct blk_crypto_ll_ops``.
|
power management.
|
||||||
|
|
||||||
Once the driver registers a blk_crypto_profile with a request_queue, I/O
|
``blk_ksm_reprogram_all_keys`` can be called by device drivers if the device
|
||||||
requests the driver receives via that queue may have an encryption context. All
|
needs each and every of its keyslots to be reprogrammed with the key it
|
||||||
encryption contexts will be compatible with the crypto capabilities declared in
|
"should have" at the point in time when the function is called. This is useful
|
||||||
the blk_crypto_profile, so drivers don't need to worry about handling
|
e.g. if a device loses all its keys on runtime power down/up.
|
||||||
unsupported requests. Also, if a nonzero number of keyslots was declared in the
|
|
||||||
blk_crypto_profile, then all I/O requests that have an encryption context will
|
|
||||||
also have a keyslot which was already programmed with the appropriate key.
|
|
||||||
|
|
||||||
If the driver implements runtime suspend and its blk_crypto_ll_ops don't work
|
If the driver used ``blk_ksm_init`` instead of ``devm_blk_ksm_init``, then
|
||||||
while the device is runtime-suspended, then the driver must also set the ``dev``
|
``blk_ksm_destroy`` should be called to free up all resources used by a
|
||||||
field of the blk_crypto_profile to point to the ``struct device`` that will be
|
``blk_keyslot_manager`` once it is no longer needed.
|
||||||
resumed before any of the low-level operations are called.
|
|
||||||
|
|
||||||
If there are situations where the inline encryption hardware loses the contents
|
|
||||||
of its keyslots, e.g. device resets, the driver must handle reprogramming the
|
|
||||||
keyslots. To do this, the driver may call ``blk_crypto_reprogram_all_keys()``.
|
|
||||||
|
|
||||||
Finally, if the driver used ``blk_crypto_profile_init()`` instead of
|
|
||||||
``devm_blk_crypto_profile_init()``, then it is responsible for calling
|
|
||||||
``blk_crypto_profile_destroy()`` when the crypto profile is no longer needed.
|
|
||||||
|
|
||||||
Layered Devices
|
Layered Devices
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Request queue based layered devices like dm-rq that wish to support inline
|
Request queue based layered devices like dm-rq that wish to support IE need to
|
||||||
encryption need to create their own blk_crypto_profile for their request_queue,
|
create their own keyslot manager for their request queue, and expose whatever
|
||||||
and expose whatever functionality they choose. When a layered device wants to
|
functionality they choose. When a layered device wants to pass a clone of that
|
||||||
pass a clone of that request to another request_queue, blk-crypto will
|
request to another ``request_queue``, blk-crypto will initialize and prepare the
|
||||||
initialize and prepare the clone as necessary; see
|
clone as necessary - see ``blk_crypto_insert_cloned_request`` in
|
||||||
``blk_crypto_insert_cloned_request()``.
|
``blk-crypto.c``.
|
||||||
|
|
||||||
|
|
||||||
|
Future Optimizations for layered devices
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Creating a keyslot manager for a layered device uses up memory for each
|
||||||
|
keyslot, and in general, a layered device merely passes the request on to a
|
||||||
|
"child" device, so the keyslots in the layered device itself are completely
|
||||||
|
unused, and don't need any refcounting or keyslot programming. We can instead
|
||||||
|
define a new type of KSM; the "passthrough KSM", that layered devices can use
|
||||||
|
to advertise an unlimited number of keyslots, and support for any encryption
|
||||||
|
algorithms they choose, while not actually using any memory for each keyslot.
|
||||||
|
Another use case for the "passthrough KSM" is for IE devices that do not have a
|
||||||
|
limited number of keyslots.
|
||||||
|
|
||||||
|
|
||||||
Interaction between inline encryption and blk integrity
|
Interaction between inline encryption and blk integrity
|
||||||
=======================================================
|
=======================================================
|
||||||
@ -298,7 +257,7 @@ Because there isn't any real hardware yet, it seems prudent to assume that
|
|||||||
hardware implementations might not implement both features together correctly,
|
hardware implementations might not implement both features together correctly,
|
||||||
and disallow the combination for now. Whenever a device supports integrity, the
|
and disallow the combination for now. Whenever a device supports integrity, the
|
||||||
kernel will pretend that the device does not support hardware inline encryption
|
kernel will pretend that the device does not support hardware inline encryption
|
||||||
(by setting the blk_crypto_profile in the request_queue of the device to NULL).
|
(by essentially setting the keyslot manager in the request_queue of the device
|
||||||
When the crypto API fallback is enabled, this means that all bios with and
|
to NULL). When the crypto API fallback is enabled, this means that all bios with
|
||||||
encryption context will use the fallback, and IO will complete as usual. When
|
and encryption context will use the fallback, and IO will complete as usual.
|
||||||
the fallback is disabled, a bio with an encryption context will be failed.
|
When the fallback is disabled, a bio with an encryption context will be failed.
|
||||||
|
@ -3,7 +3,7 @@ BPF Type Format (BTF)
|
|||||||
=====================
|
=====================
|
||||||
|
|
||||||
1. Introduction
|
1. Introduction
|
||||||
===============
|
***************
|
||||||
|
|
||||||
BTF (BPF Type Format) is the metadata format which encodes the debug info
|
BTF (BPF Type Format) is the metadata format which encodes the debug info
|
||||||
related to BPF program/map. The name BTF was used initially to describe data
|
related to BPF program/map. The name BTF was used initially to describe data
|
||||||
@ -30,7 +30,7 @@ sections are discussed in details in :ref:`BTF_Type_String`.
|
|||||||
.. _BTF_Type_String:
|
.. _BTF_Type_String:
|
||||||
|
|
||||||
2. BTF Type and String Encoding
|
2. BTF Type and String Encoding
|
||||||
===============================
|
*******************************
|
||||||
|
|
||||||
The file ``include/uapi/linux/btf.h`` provides high-level definition of how
|
The file ``include/uapi/linux/btf.h`` provides high-level definition of how
|
||||||
types/strings are encoded.
|
types/strings are encoded.
|
||||||
@ -57,13 +57,13 @@ little-endian target. The ``btf_header`` is designed to be extensible with
|
|||||||
generated.
|
generated.
|
||||||
|
|
||||||
2.1 String Encoding
|
2.1 String Encoding
|
||||||
-------------------
|
===================
|
||||||
|
|
||||||
The first string in the string section must be a null string. The rest of
|
The first string in the string section must be a null string. The rest of
|
||||||
string table is a concatenation of other null-terminated strings.
|
string table is a concatenation of other null-terminated strings.
|
||||||
|
|
||||||
2.2 Type Encoding
|
2.2 Type Encoding
|
||||||
-----------------
|
=================
|
||||||
|
|
||||||
The type id ``0`` is reserved for ``void`` type. The type section is parsed
|
The type id ``0`` is reserved for ``void`` type. The type section is parsed
|
||||||
sequentially and type id is assigned to each recognized type starting from id
|
sequentially and type id is assigned to each recognized type starting from id
|
||||||
@ -85,8 +85,6 @@ sequentially and type id is assigned to each recognized type starting from id
|
|||||||
#define BTF_KIND_VAR 14 /* Variable */
|
#define BTF_KIND_VAR 14 /* Variable */
|
||||||
#define BTF_KIND_DATASEC 15 /* Section */
|
#define BTF_KIND_DATASEC 15 /* Section */
|
||||||
#define BTF_KIND_FLOAT 16 /* Floating point */
|
#define BTF_KIND_FLOAT 16 /* Floating point */
|
||||||
#define BTF_KIND_DECL_TAG 17 /* Decl Tag */
|
|
||||||
#define BTF_KIND_TYPE_TAG 18 /* Type Tag */
|
|
||||||
|
|
||||||
Note that the type section encodes debug info, not just pure types.
|
Note that the type section encodes debug info, not just pure types.
|
||||||
``BTF_KIND_FUNC`` is not a type, and it represents a defined subprogram.
|
``BTF_KIND_FUNC`` is not a type, and it represents a defined subprogram.
|
||||||
@ -108,7 +106,7 @@ Each type contains the following common data::
|
|||||||
* "size" tells the size of the type it is describing.
|
* "size" tells the size of the type it is describing.
|
||||||
*
|
*
|
||||||
* "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
|
* "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
|
||||||
* FUNC, FUNC_PROTO, DECL_TAG and TYPE_TAG.
|
* FUNC and FUNC_PROTO.
|
||||||
* "type" is a type_id referring to another type.
|
* "type" is a type_id referring to another type.
|
||||||
*/
|
*/
|
||||||
union {
|
union {
|
||||||
@ -467,44 +465,8 @@ map definition.
|
|||||||
|
|
||||||
No additional type data follow ``btf_type``.
|
No additional type data follow ``btf_type``.
|
||||||
|
|
||||||
2.2.17 BTF_KIND_DECL_TAG
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
``struct btf_type`` encoding requirement:
|
|
||||||
* ``name_off``: offset to a non-empty string
|
|
||||||
* ``info.kind_flag``: 0
|
|
||||||
* ``info.kind``: BTF_KIND_DECL_TAG
|
|
||||||
* ``info.vlen``: 0
|
|
||||||
* ``type``: ``struct``, ``union``, ``func``, ``var`` or ``typedef``
|
|
||||||
|
|
||||||
``btf_type`` is followed by ``struct btf_decl_tag``.::
|
|
||||||
|
|
||||||
struct btf_decl_tag {
|
|
||||||
__u32 component_idx;
|
|
||||||
};
|
|
||||||
|
|
||||||
The ``name_off`` encodes btf_decl_tag attribute string.
|
|
||||||
The ``type`` should be ``struct``, ``union``, ``func``, ``var`` or ``typedef``.
|
|
||||||
For ``var`` or ``typedef`` type, ``btf_decl_tag.component_idx`` must be ``-1``.
|
|
||||||
For the other three types, if the btf_decl_tag attribute is
|
|
||||||
applied to the ``struct``, ``union`` or ``func`` itself,
|
|
||||||
``btf_decl_tag.component_idx`` must be ``-1``. Otherwise,
|
|
||||||
the attribute is applied to a ``struct``/``union`` member or
|
|
||||||
a ``func`` argument, and ``btf_decl_tag.component_idx`` should be a
|
|
||||||
valid index (starting from 0) pointing to a member or an argument.
|
|
||||||
|
|
||||||
2.2.17 BTF_KIND_TYPE_TAG
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
``struct btf_type`` encoding requirement:
|
|
||||||
* ``name_off``: offset to a non-empty string
|
|
||||||
* ``info.kind_flag``: 0
|
|
||||||
* ``info.kind``: BTF_KIND_TYPE_TAG
|
|
||||||
* ``info.vlen``: 0
|
|
||||||
* ``type``: the type with ``btf_type_tag`` attribute
|
|
||||||
|
|
||||||
3. BTF Kernel API
|
3. BTF Kernel API
|
||||||
=================
|
*****************
|
||||||
|
|
||||||
The following bpf syscall command involves BTF:
|
The following bpf syscall command involves BTF:
|
||||||
* BPF_BTF_LOAD: load a blob of BTF data into kernel
|
* BPF_BTF_LOAD: load a blob of BTF data into kernel
|
||||||
@ -547,14 +509,14 @@ The workflow typically looks like:
|
|||||||
|
|
||||||
|
|
||||||
3.1 BPF_BTF_LOAD
|
3.1 BPF_BTF_LOAD
|
||||||
----------------
|
================
|
||||||
|
|
||||||
Load a blob of BTF data into kernel. A blob of data, described in
|
Load a blob of BTF data into kernel. A blob of data, described in
|
||||||
:ref:`BTF_Type_String`, can be directly loaded into the kernel. A ``btf_fd``
|
:ref:`BTF_Type_String`, can be directly loaded into the kernel. A ``btf_fd``
|
||||||
is returned to a userspace.
|
is returned to a userspace.
|
||||||
|
|
||||||
3.2 BPF_MAP_CREATE
|
3.2 BPF_MAP_CREATE
|
||||||
------------------
|
==================
|
||||||
|
|
||||||
A map can be created with ``btf_fd`` and specified key/value type id.::
|
A map can be created with ``btf_fd`` and specified key/value type id.::
|
||||||
|
|
||||||
@ -581,7 +543,7 @@ automatically.
|
|||||||
.. _BPF_Prog_Load:
|
.. _BPF_Prog_Load:
|
||||||
|
|
||||||
3.3 BPF_PROG_LOAD
|
3.3 BPF_PROG_LOAD
|
||||||
-----------------
|
=================
|
||||||
|
|
||||||
During prog_load, func_info and line_info can be passed to kernel with proper
|
During prog_load, func_info and line_info can be passed to kernel with proper
|
||||||
values for the following attributes:
|
values for the following attributes:
|
||||||
@ -631,7 +593,7 @@ For line_info, the line number and column number are defined as below:
|
|||||||
#define BPF_LINE_INFO_LINE_COL(line_col) ((line_col) & 0x3ff)
|
#define BPF_LINE_INFO_LINE_COL(line_col) ((line_col) & 0x3ff)
|
||||||
|
|
||||||
3.4 BPF_{PROG,MAP}_GET_NEXT_ID
|
3.4 BPF_{PROG,MAP}_GET_NEXT_ID
|
||||||
------------------------------
|
==============================
|
||||||
|
|
||||||
In kernel, every loaded program, map or btf has a unique id. The id won't
|
In kernel, every loaded program, map or btf has a unique id. The id won't
|
||||||
change during the lifetime of a program, map, or btf.
|
change during the lifetime of a program, map, or btf.
|
||||||
@ -641,13 +603,13 @@ each command, to user space, for bpf program or maps, respectively, so an
|
|||||||
inspection tool can inspect all programs and maps.
|
inspection tool can inspect all programs and maps.
|
||||||
|
|
||||||
3.5 BPF_{PROG,MAP}_GET_FD_BY_ID
|
3.5 BPF_{PROG,MAP}_GET_FD_BY_ID
|
||||||
-------------------------------
|
===============================
|
||||||
|
|
||||||
An introspection tool cannot use id to get details about program or maps.
|
An introspection tool cannot use id to get details about program or maps.
|
||||||
A file descriptor needs to be obtained first for reference-counting purpose.
|
A file descriptor needs to be obtained first for reference-counting purpose.
|
||||||
|
|
||||||
3.6 BPF_OBJ_GET_INFO_BY_FD
|
3.6 BPF_OBJ_GET_INFO_BY_FD
|
||||||
--------------------------
|
==========================
|
||||||
|
|
||||||
Once a program/map fd is acquired, an introspection tool can get the detailed
|
Once a program/map fd is acquired, an introspection tool can get the detailed
|
||||||
information from kernel about this fd, some of which are BTF-related. For
|
information from kernel about this fd, some of which are BTF-related. For
|
||||||
@ -656,7 +618,7 @@ example, ``bpf_map_info`` returns ``btf_id`` and key/value type ids.
|
|||||||
bpf byte codes, and jited_line_info.
|
bpf byte codes, and jited_line_info.
|
||||||
|
|
||||||
3.7 BPF_BTF_GET_FD_BY_ID
|
3.7 BPF_BTF_GET_FD_BY_ID
|
||||||
------------------------
|
========================
|
||||||
|
|
||||||
With ``btf_id`` obtained in ``bpf_map_info`` and ``bpf_prog_info``, bpf
|
With ``btf_id`` obtained in ``bpf_map_info`` and ``bpf_prog_info``, bpf
|
||||||
syscall command BPF_BTF_GET_FD_BY_ID can retrieve a btf fd. Then, with
|
syscall command BPF_BTF_GET_FD_BY_ID can retrieve a btf fd. Then, with
|
||||||
@ -668,10 +630,10 @@ tool has full btf knowledge and is able to pretty print map key/values, dump
|
|||||||
func signatures and line info, along with byte/jit codes.
|
func signatures and line info, along with byte/jit codes.
|
||||||
|
|
||||||
4. ELF File Format Interface
|
4. ELF File Format Interface
|
||||||
============================
|
****************************
|
||||||
|
|
||||||
4.1 .BTF section
|
4.1 .BTF section
|
||||||
----------------
|
================
|
||||||
|
|
||||||
The .BTF section contains type and string data. The format of this section is
|
The .BTF section contains type and string data. The format of this section is
|
||||||
same as the one describe in :ref:`BTF_Type_String`.
|
same as the one describe in :ref:`BTF_Type_String`.
|
||||||
@ -679,7 +641,7 @@ same as the one describe in :ref:`BTF_Type_String`.
|
|||||||
.. _BTF_Ext_Section:
|
.. _BTF_Ext_Section:
|
||||||
|
|
||||||
4.2 .BTF.ext section
|
4.2 .BTF.ext section
|
||||||
--------------------
|
====================
|
||||||
|
|
||||||
The .BTF.ext section encodes func_info and line_info which needs loader
|
The .BTF.ext section encodes func_info and line_info which needs loader
|
||||||
manipulation before loading into the kernel.
|
manipulation before loading into the kernel.
|
||||||
@ -743,7 +705,7 @@ bpf_insn``. For ELF API, the ``insn_off`` is the byte offset from the
|
|||||||
beginning of section (``btf_ext_info_sec->sec_name_off``).
|
beginning of section (``btf_ext_info_sec->sec_name_off``).
|
||||||
|
|
||||||
4.2 .BTF_ids section
|
4.2 .BTF_ids section
|
||||||
--------------------
|
====================
|
||||||
|
|
||||||
The .BTF_ids section encodes BTF ID values that are used within the kernel.
|
The .BTF_ids section encodes BTF ID values that are used within the kernel.
|
||||||
|
|
||||||
@ -804,10 +766,10 @@ All the BTF ID lists and sets are compiled in the .BTF_ids section and
|
|||||||
resolved during the linking phase of kernel build by ``resolve_btfids`` tool.
|
resolved during the linking phase of kernel build by ``resolve_btfids`` tool.
|
||||||
|
|
||||||
5. Using BTF
|
5. Using BTF
|
||||||
============
|
************
|
||||||
|
|
||||||
5.1 bpftool map pretty print
|
5.1 bpftool map pretty print
|
||||||
----------------------------
|
============================
|
||||||
|
|
||||||
With BTF, the map key/value can be printed based on fields rather than simply
|
With BTF, the map key/value can be printed based on fields rather than simply
|
||||||
raw bytes. This is especially valuable for large structure or if your data
|
raw bytes. This is especially valuable for large structure or if your data
|
||||||
@ -849,7 +811,7 @@ bpftool is able to pretty print like below:
|
|||||||
]
|
]
|
||||||
|
|
||||||
5.2 bpftool prog dump
|
5.2 bpftool prog dump
|
||||||
---------------------
|
=====================
|
||||||
|
|
||||||
The following is an example showing how func_info and line_info can help prog
|
The following is an example showing how func_info and line_info can help prog
|
||||||
dump with better kernel symbol names, function prototypes and line
|
dump with better kernel symbol names, function prototypes and line
|
||||||
@ -883,7 +845,7 @@ information.::
|
|||||||
[...]
|
[...]
|
||||||
|
|
||||||
5.3 Verifier Log
|
5.3 Verifier Log
|
||||||
----------------
|
================
|
||||||
|
|
||||||
The following is an example of how line_info can help debugging verification
|
The following is an example of how line_info can help debugging verification
|
||||||
failure.::
|
failure.::
|
||||||
@ -909,7 +871,7 @@ failure.::
|
|||||||
R2 offset is outside of the packet
|
R2 offset is outside of the packet
|
||||||
|
|
||||||
6. BTF Generation
|
6. BTF Generation
|
||||||
=================
|
*****************
|
||||||
|
|
||||||
You need latest pahole
|
You need latest pahole
|
||||||
|
|
||||||
@ -1016,6 +978,6 @@ format.::
|
|||||||
.long 8206 # Line 8 Col 14
|
.long 8206 # Line 8 Col 14
|
||||||
|
|
||||||
7. Testing
|
7. Testing
|
||||||
==========
|
**********
|
||||||
|
|
||||||
Kernel bpf selftest `test_btf.c` provides extensive set of BTF-related tests.
|
Kernel bpf selftest `test_btf.c` provides extensive set of BTF-related tests.
|
||||||
|
@ -5,33 +5,95 @@ BPF Documentation
|
|||||||
This directory contains documentation for the BPF (Berkeley Packet
|
This directory contains documentation for the BPF (Berkeley Packet
|
||||||
Filter) facility, with a focus on the extended BPF version (eBPF).
|
Filter) facility, with a focus on the extended BPF version (eBPF).
|
||||||
|
|
||||||
This kernel side documentation is still work in progress.
|
This kernel side documentation is still work in progress. The main
|
||||||
|
textual documentation is (for historical reasons) described in
|
||||||
|
:ref:`networking-filter`, which describe both classical and extended
|
||||||
|
BPF instruction-set.
|
||||||
The Cilium project also maintains a `BPF and XDP Reference Guide`_
|
The Cilium project also maintains a `BPF and XDP Reference Guide`_
|
||||||
that goes into great technical depth about the BPF Architecture.
|
that goes into great technical depth about the BPF Architecture.
|
||||||
|
|
||||||
|
libbpf
|
||||||
|
======
|
||||||
|
|
||||||
|
Documentation/bpf/libbpf/libbpf.rst is a userspace library for loading and interacting with bpf programs.
|
||||||
|
|
||||||
|
BPF Type Format (BTF)
|
||||||
|
=====================
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
instruction-set
|
|
||||||
verifier
|
|
||||||
libbpf/index
|
|
||||||
btf
|
btf
|
||||||
faq
|
|
||||||
syscall_api
|
|
||||||
helpers
|
|
||||||
programs
|
|
||||||
maps
|
|
||||||
classic_vs_extended.rst
|
|
||||||
bpf_licensing
|
|
||||||
test_debug
|
|
||||||
other
|
|
||||||
|
|
||||||
.. only:: subproject and html
|
|
||||||
|
|
||||||
Indices
|
Frequently asked questions (FAQ)
|
||||||
=======
|
================================
|
||||||
|
|
||||||
* :ref:`genindex`
|
Two sets of Questions and Answers (Q&A) are maintained.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
bpf_design_QA
|
||||||
|
bpf_devel_QA
|
||||||
|
|
||||||
|
Syscall API
|
||||||
|
===========
|
||||||
|
|
||||||
|
The primary info for the bpf syscall is available in the `man-pages`_
|
||||||
|
for `bpf(2)`_. For more information about the userspace API, see
|
||||||
|
Documentation/userspace-api/ebpf/index.rst.
|
||||||
|
|
||||||
|
Helper functions
|
||||||
|
================
|
||||||
|
|
||||||
|
* `bpf-helpers(7)`_ maintains a list of helpers available to eBPF programs.
|
||||||
|
|
||||||
|
|
||||||
|
Program types
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
prog_cgroup_sockopt
|
||||||
|
prog_cgroup_sysctl
|
||||||
|
prog_flow_dissector
|
||||||
|
bpf_lsm
|
||||||
|
prog_sk_lookup
|
||||||
|
|
||||||
|
|
||||||
|
Map types
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
map_cgroup_storage
|
||||||
|
|
||||||
|
|
||||||
|
Testing and debugging BPF
|
||||||
|
=========================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
drgn
|
||||||
|
s390
|
||||||
|
|
||||||
|
|
||||||
|
Other
|
||||||
|
=====
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
ringbuf
|
||||||
|
llvm_reloc
|
||||||
|
|
||||||
.. Links:
|
.. Links:
|
||||||
|
.. _networking-filter: ../networking/filter.rst
|
||||||
|
.. _man-pages: https://www.kernel.org/doc/man-pages/
|
||||||
|
.. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
|
||||||
|
.. _bpf-helpers(7): https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
|
||||||
.. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/
|
.. _BPF and XDP Reference Guide: https://docs.cilium.io/en/latest/bpf/
|
||||||
|
@ -150,46 +150,6 @@ mirror of the mainline's version of libbpf for a stand-alone build.
|
|||||||
However, all changes to libbpf's code base must be upstreamed through
|
However, all changes to libbpf's code base must be upstreamed through
|
||||||
the mainline kernel tree.
|
the mainline kernel tree.
|
||||||
|
|
||||||
|
|
||||||
API documentation convention
|
|
||||||
============================
|
|
||||||
|
|
||||||
The libbpf API is documented via comments above definitions in
|
|
||||||
header files. These comments can be rendered by doxygen and sphinx
|
|
||||||
for well organized html output. This section describes the
|
|
||||||
convention in which these comments should be formated.
|
|
||||||
|
|
||||||
Here is an example from btf.h:
|
|
||||||
|
|
||||||
.. code-block:: c
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief **btf__new()** creates a new instance of a BTF object from the raw
|
|
||||||
* bytes of an ELF's BTF section
|
|
||||||
* @param data raw bytes
|
|
||||||
* @param size number of bytes passed in `data`
|
|
||||||
* @return new BTF object instance which has to be eventually freed with
|
|
||||||
* **btf__free()**
|
|
||||||
*
|
|
||||||
* On error, error-code-encoded-as-pointer is returned, not a NULL. To extract
|
|
||||||
* error code from such a pointer `libbpf_get_error()` should be used. If
|
|
||||||
* `libbpf_set_strict_mode(LIBBPF_STRICT_CLEAN_PTRS)` is enabled, NULL is
|
|
||||||
* returned on error instead. In both cases thread-local `errno` variable is
|
|
||||||
* always set to error code as well.
|
|
||||||
*/
|
|
||||||
|
|
||||||
The comment must start with a block comment of the form '/\*\*'.
|
|
||||||
|
|
||||||
The documentation always starts with a @brief directive. This line is a short
|
|
||||||
description about this API. It starts with the name of the API, denoted in bold
|
|
||||||
like so: **api_name**. Please include an open and close parenthesis if this is a
|
|
||||||
function. Follow with the short description of the API. A longer form description
|
|
||||||
can be added below the last directive, at the bottom of the comment.
|
|
||||||
|
|
||||||
Parameters are denoted with the @param directive, there should be one for each
|
|
||||||
parameter. If this is a function with a non-void return, use the @return directive
|
|
||||||
to document it.
|
|
||||||
|
|
||||||
License
|
License
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
@ -907,17 +907,6 @@ commands can be identified by the underscores in their names.
|
|||||||
specifies the slot for which the information is given. The special
|
specifies the slot for which the information is given. The special
|
||||||
value *CDSL_CURRENT* requests that information about the currently
|
value *CDSL_CURRENT* requests that information about the currently
|
||||||
selected slot be returned.
|
selected slot be returned.
|
||||||
`CDROM_TIMED_MEDIA_CHANGE`
|
|
||||||
Checks whether the disc has been changed since a user supplied time
|
|
||||||
and returns the time of the last disc change.
|
|
||||||
|
|
||||||
*arg* is a pointer to a *cdrom_timed_media_change_info* struct.
|
|
||||||
*arg->last_media_change* may be set by calling code to signal
|
|
||||||
the timestamp of the last known media change (by the caller).
|
|
||||||
Upon successful return, this ioctl call will set
|
|
||||||
*arg->last_media_change* to the latest media change timestamp (in ms)
|
|
||||||
known by the kernel/driver and set *arg->has_changed* to 1 if
|
|
||||||
that timestamp is more recent than the timestamp set by the caller.
|
|
||||||
`CDROM_DRIVE_STATUS`
|
`CDROM_DRIVE_STATUS`
|
||||||
Returns the status of the drive by a call to
|
Returns the status of the drive by a call to
|
||||||
*drive_status()*. Return values are defined in cdrom_drive_status_.
|
*drive_status()*. Return values are defined in cdrom_drive_status_.
|
||||||
|
@ -326,12 +326,6 @@ maps this page at its virtual address.
|
|||||||
dirty. Again, see sparc64 for examples of how
|
dirty. Again, see sparc64 for examples of how
|
||||||
to deal with this.
|
to deal with this.
|
||||||
|
|
||||||
``void flush_dcache_folio(struct folio *folio)``
|
|
||||||
This function is called under the same circumstances as
|
|
||||||
flush_dcache_page(). It allows the architecture to
|
|
||||||
optimise for flushing the entire folio of pages instead
|
|
||||||
of flushing one page at a time.
|
|
||||||
|
|
||||||
``void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
|
``void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
|
||||||
unsigned long user_vaddr, void *dst, void *src, int len)``
|
unsigned long user_vaddr, void *dst, void *src, int len)``
|
||||||
``void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
|
``void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
|
||||||
|
@ -130,11 +130,3 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
|
|||||||
subsystem that the buffer is fully accessible at the elevated privilege
|
subsystem that the buffer is fully accessible at the elevated privilege
|
||||||
level (and ideally inaccessible or at least read-only at the
|
level (and ideally inaccessible or at least read-only at the
|
||||||
lesser-privileged levels).
|
lesser-privileged levels).
|
||||||
|
|
||||||
DMA_ATTR_OVERWRITE
|
|
||||||
------------------
|
|
||||||
|
|
||||||
This is a hint to the DMA-mapping subsystem that the device is expected to
|
|
||||||
overwrite the entire mapped size, thus the caller does not require any of the
|
|
||||||
previous buffer contents to be preserved. This allows bounce-buffering
|
|
||||||
implementations to optimise DMA_FROM_DEVICE transfers.
|
|
||||||
|
@ -67,6 +67,9 @@ variety of methods:
|
|||||||
deprecated
|
deprecated
|
||||||
- generic_handle_domain_irq() handles an interrupt described by a
|
- generic_handle_domain_irq() handles an interrupt described by a
|
||||||
domain and a hwirq number
|
domain and a hwirq number
|
||||||
|
- handle_domain_irq() does the same thing for root interrupt
|
||||||
|
controllers and deals with the set_irq_reg()/irq_enter() sequences
|
||||||
|
that most architecture requires
|
||||||
|
|
||||||
Note that irq domain lookups must happen in contexts that are
|
Note that irq domain lookups must happen in contexts that are
|
||||||
compatible with a RCU read-side critical section.
|
compatible with a RCU read-side critical section.
|
||||||
|
@ -279,7 +279,6 @@ Accounting Framework
|
|||||||
Block Devices
|
Block Devices
|
||||||
=============
|
=============
|
||||||
|
|
||||||
.. kernel-doc:: include/linux/bio.h
|
|
||||||
.. kernel-doc:: block/blk-core.c
|
.. kernel-doc:: block/blk-core.c
|
||||||
:export:
|
:export:
|
||||||
|
|
||||||
@ -295,6 +294,9 @@ Block Devices
|
|||||||
.. kernel-doc:: block/blk-settings.c
|
.. kernel-doc:: block/blk-settings.c
|
||||||
:export:
|
:export:
|
||||||
|
|
||||||
|
.. kernel-doc:: block/blk-exec.c
|
||||||
|
:export:
|
||||||
|
|
||||||
.. kernel-doc:: block/blk-flush.c
|
.. kernel-doc:: block/blk-flush.c
|
||||||
:export:
|
:export:
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ Initialization of kobjects
|
|||||||
Code which creates a kobject must, of course, initialize that object. Some
|
Code which creates a kobject must, of course, initialize that object. Some
|
||||||
of the internal fields are setup with a (mandatory) call to kobject_init()::
|
of the internal fields are setup with a (mandatory) call to kobject_init()::
|
||||||
|
|
||||||
void kobject_init(struct kobject *kobj, const struct kobj_type *ktype);
|
void kobject_init(struct kobject *kobj, struct kobj_type *ktype);
|
||||||
|
|
||||||
The ktype is required for a kobject to be created properly, as every kobject
|
The ktype is required for a kobject to be created properly, as every kobject
|
||||||
must have an associated kobj_type. After calling kobject_init(), to
|
must have an associated kobj_type. After calling kobject_init(), to
|
||||||
@ -156,7 +156,7 @@ kobject_name()::
|
|||||||
There is a helper function to both initialize and add the kobject to the
|
There is a helper function to both initialize and add the kobject to the
|
||||||
kernel at the same time, called surprisingly enough kobject_init_and_add()::
|
kernel at the same time, called surprisingly enough kobject_init_and_add()::
|
||||||
|
|
||||||
int kobject_init_and_add(struct kobject *kobj, const struct kobj_type *ktype,
|
int kobject_init_and_add(struct kobject *kobj, struct kobj_type *ktype,
|
||||||
struct kobject *parent, const char *fmt, ...);
|
struct kobject *parent, const char *fmt, ...);
|
||||||
|
|
||||||
The arguments are the same as the individual kobject_init() and
|
The arguments are the same as the individual kobject_init() and
|
||||||
@ -299,6 +299,7 @@ kobj_type::
|
|||||||
struct kobj_type {
|
struct kobj_type {
|
||||||
void (*release)(struct kobject *kobj);
|
void (*release)(struct kobject *kobj);
|
||||||
const struct sysfs_ops *sysfs_ops;
|
const struct sysfs_ops *sysfs_ops;
|
||||||
|
struct attribute **default_attrs;
|
||||||
const struct attribute_group **default_groups;
|
const struct attribute_group **default_groups;
|
||||||
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
|
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
|
||||||
const void *(*namespace)(struct kobject *kobj);
|
const void *(*namespace)(struct kobject *kobj);
|
||||||
@ -312,10 +313,10 @@ call kobject_init() or kobject_init_and_add().
|
|||||||
|
|
||||||
The release field in struct kobj_type is, of course, a pointer to the
|
The release field in struct kobj_type is, of course, a pointer to the
|
||||||
release() method for this type of kobject. The other two fields (sysfs_ops
|
release() method for this type of kobject. The other two fields (sysfs_ops
|
||||||
and default_groups) control how objects of this type are represented in
|
and default_attrs) control how objects of this type are represented in
|
||||||
sysfs; they are beyond the scope of this document.
|
sysfs; they are beyond the scope of this document.
|
||||||
|
|
||||||
The default_groups pointer is a list of default attributes that will be
|
The default_attrs pointer is a list of default attributes that will be
|
||||||
automatically created for any kobject that is registered with this ktype.
|
automatically created for any kobject that is registered with this ktype.
|
||||||
|
|
||||||
|
|
||||||
@ -372,9 +373,10 @@ If a kset wishes to control the uevent operations of the kobjects
|
|||||||
associated with it, it can use the struct kset_uevent_ops to handle it::
|
associated with it, it can use the struct kset_uevent_ops to handle it::
|
||||||
|
|
||||||
struct kset_uevent_ops {
|
struct kset_uevent_ops {
|
||||||
int (* const filter)(struct kobject *kobj);
|
int (* const filter)(struct kset *kset, struct kobject *kobj);
|
||||||
const char *(* const name)(struct kobject *kobj);
|
const char *(* const name)(struct kset *kset, struct kobject *kobj);
|
||||||
int (* const uevent)(struct kobject *kobj, struct kobj_uevent_env *env);
|
int (* const uevent)(struct kset *kset, struct kobject *kobj,
|
||||||
|
struct kobj_uevent_env *env);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ The third argument (arg) passes a pointer of struct memory_notify::
|
|||||||
unsigned long start_pfn;
|
unsigned long start_pfn;
|
||||||
unsigned long nr_pages;
|
unsigned long nr_pages;
|
||||||
int status_change_nid_normal;
|
int status_change_nid_normal;
|
||||||
|
int status_change_nid_high;
|
||||||
int status_change_nid;
|
int status_change_nid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,6 +65,8 @@ The third argument (arg) passes a pointer of struct memory_notify::
|
|||||||
- nr_pages is # of pages of online/offline memory.
|
- nr_pages is # of pages of online/offline memory.
|
||||||
- status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask
|
- status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask
|
||||||
is (will be) set/clear, if this is -1, then nodemask status is not changed.
|
is (will be) set/clear, if this is -1, then nodemask status is not changed.
|
||||||
|
- status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask
|
||||||
|
is (will be) set/clear, if this is -1, then nodemask status is not changed.
|
||||||
- status_change_nid is set node id when N_MEMORY of nodemask is (will be)
|
- status_change_nid is set node id when N_MEMORY of nodemask is (will be)
|
||||||
set/clear. It means a new(memoryless) node gets new memory by online and a
|
set/clear. It means a new(memoryless) node gets new memory by online and a
|
||||||
node loses all memory. If this is -1, then nodemask status is not changed.
|
node loses all memory. If this is -1, then nodemask status is not changed.
|
||||||
|
@ -95,11 +95,6 @@ More Memory Management Functions
|
|||||||
.. kernel-doc:: mm/mempolicy.c
|
.. kernel-doc:: mm/mempolicy.c
|
||||||
.. kernel-doc:: include/linux/mm_types.h
|
.. kernel-doc:: include/linux/mm_types.h
|
||||||
:internal:
|
:internal:
|
||||||
.. kernel-doc:: include/linux/mm_inline.h
|
|
||||||
.. kernel-doc:: include/linux/page-flags.h
|
|
||||||
.. kernel-doc:: include/linux/mm.h
|
.. kernel-doc:: include/linux/mm.h
|
||||||
:internal:
|
:internal:
|
||||||
.. kernel-doc:: include/linux/page_ref.h
|
|
||||||
.. kernel-doc:: include/linux/mmzone.h
|
.. kernel-doc:: include/linux/mmzone.h
|
||||||
.. kernel-doc:: mm/util.c
|
|
||||||
:functions: folio_mapping
|
|
||||||
|
@ -580,7 +580,7 @@ Flags bitfields such as page flags, gfp_flags
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
%pGp 0x17ffffc0002036(referenced|uptodate|lru|active|private|node=0|zone=2|lastcpupid=0x1fffff)
|
%pGp referenced|uptodate|lru|active|private|node=0|zone=2|lastcpupid=0x1fffff
|
||||||
%pGg GFP_USER|GFP_DMA32|GFP_NOWARN
|
%pGg GFP_USER|GFP_DMA32|GFP_NOWARN
|
||||||
%pGv read|exec|mayread|maywrite|mayexec|denywrite
|
%pGv read|exec|mayread|maywrite|mayexec|denywrite
|
||||||
|
|
||||||
|
@ -216,6 +216,10 @@ resources, scheduled and executed.
|
|||||||
|
|
||||||
This flag is meaningless for unbound wq.
|
This flag is meaningless for unbound wq.
|
||||||
|
|
||||||
|
Note that the flag ``WQ_NON_REENTRANT`` no longer exists as all
|
||||||
|
workqueues are now non-reentrant - any work item is guaranteed to be
|
||||||
|
executed by at most one worker system-wide at any given time.
|
||||||
|
|
||||||
|
|
||||||
``max_active``
|
``max_active``
|
||||||
--------------
|
--------------
|
||||||
@ -387,23 +391,6 @@ the stack trace of the offending worker thread. ::
|
|||||||
The work item's function should be trivially visible in the stack
|
The work item's function should be trivially visible in the stack
|
||||||
trace.
|
trace.
|
||||||
|
|
||||||
Non-reentrance Conditions
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Workqueue guarantees that a work item cannot be re-entrant if the following
|
|
||||||
conditions hold after a work item gets queued:
|
|
||||||
|
|
||||||
1. The work function hasn't been changed.
|
|
||||||
2. No one queues the work item to another workqueue.
|
|
||||||
3. The work item hasn't been reinitiated.
|
|
||||||
|
|
||||||
In other words, if the above conditions hold, the work item is guaranteed to be
|
|
||||||
executed by at most one worker system-wide at any given time.
|
|
||||||
|
|
||||||
Note that requeuing the work item (to the same queue) in the self function
|
|
||||||
doesn't break these conditions, so it's safe to do. Otherwise, caution is
|
|
||||||
required when breaking the conditions inside a work function.
|
|
||||||
|
|
||||||
|
|
||||||
Kernel Inline Documentations Reference
|
Kernel Inline Documentations Reference
|
||||||
======================================
|
======================================
|
||||||
|
@ -69,8 +69,6 @@ the crypto engine via one of:
|
|||||||
|
|
||||||
* crypto_transfer_hash_request_to_engine()
|
* crypto_transfer_hash_request_to_engine()
|
||||||
|
|
||||||
* crypto_transfer_kpp_request_to_engine()
|
|
||||||
|
|
||||||
* crypto_transfer_skcipher_request_to_engine()
|
* crypto_transfer_skcipher_request_to_engine()
|
||||||
|
|
||||||
At the end of the request process, a call to one of the following functions is needed:
|
At the end of the request process, a call to one of the following functions is needed:
|
||||||
@ -81,6 +79,4 @@ At the end of the request process, a call to one of the following functions is n
|
|||||||
|
|
||||||
* crypto_finalize_hash_request()
|
* crypto_finalize_hash_request()
|
||||||
|
|
||||||
* crypto_finalize_kpp_request()
|
|
||||||
|
|
||||||
* crypto_finalize_skcipher_request()
|
* crypto_finalize_skcipher_request()
|
||||||
|
@ -710,39 +710,6 @@ Indentation and Line Breaks
|
|||||||
|
|
||||||
See: https://www.kernel.org/doc/html/latest/process/coding-style.html#breaking-long-lines-and-strings
|
See: https://www.kernel.org/doc/html/latest/process/coding-style.html#breaking-long-lines-and-strings
|
||||||
|
|
||||||
**SPLIT_STRING**
|
|
||||||
Quoted strings that appear as messages in userspace and can be
|
|
||||||
grepped, should not be split across multiple lines.
|
|
||||||
|
|
||||||
See: https://lore.kernel.org/lkml/20120203052727.GA15035@leaf/
|
|
||||||
|
|
||||||
**MULTILINE_DEREFERENCE**
|
|
||||||
A single dereferencing identifier spanned on multiple lines like::
|
|
||||||
|
|
||||||
struct_identifier->member[index].
|
|
||||||
member = <foo>;
|
|
||||||
|
|
||||||
is generally hard to follow. It can easily lead to typos and so makes
|
|
||||||
the code vulnerable to bugs.
|
|
||||||
|
|
||||||
If fixing the multiple line dereferencing leads to an 80 column
|
|
||||||
violation, then either rewrite the code in a more simple way or if the
|
|
||||||
starting part of the dereferencing identifier is the same and used at
|
|
||||||
multiple places then store it in a temporary variable, and use that
|
|
||||||
temporary variable only at all the places. For example, if there are
|
|
||||||
two dereferencing identifiers::
|
|
||||||
|
|
||||||
member1->member2->member3.foo1;
|
|
||||||
member1->member2->member3.foo2;
|
|
||||||
|
|
||||||
then store the member1->member2->member3 part in a temporary variable.
|
|
||||||
It not only helps to avoid the 80 column violation but also reduces
|
|
||||||
the program size by removing the unnecessary dereferences.
|
|
||||||
|
|
||||||
But if none of the above methods work then ignore the 80 column
|
|
||||||
violation because it is much easier to read a dereferencing identifier
|
|
||||||
on a single line.
|
|
||||||
|
|
||||||
**TRAILING_STATEMENTS**
|
**TRAILING_STATEMENTS**
|
||||||
Trailing statements (for example after any conditional) should be
|
Trailing statements (for example after any conditional) should be
|
||||||
on the next line.
|
on the next line.
|
||||||
@ -878,38 +845,6 @@ Macros, Attributes and Symbols
|
|||||||
Use the `fallthrough;` pseudo keyword instead of
|
Use the `fallthrough;` pseudo keyword instead of
|
||||||
`/* fallthrough */` like comments.
|
`/* fallthrough */` like comments.
|
||||||
|
|
||||||
**TRAILING_SEMICOLON**
|
|
||||||
Macro definition should not end with a semicolon. The macro
|
|
||||||
invocation style should be consistent with function calls.
|
|
||||||
This can prevent any unexpected code paths::
|
|
||||||
|
|
||||||
#define MAC do_something;
|
|
||||||
|
|
||||||
If this macro is used within a if else statement, like::
|
|
||||||
|
|
||||||
if (some_condition)
|
|
||||||
MAC;
|
|
||||||
|
|
||||||
else
|
|
||||||
do_something;
|
|
||||||
|
|
||||||
Then there would be a compilation error, because when the macro is
|
|
||||||
expanded there are two trailing semicolons, so the else branch gets
|
|
||||||
orphaned.
|
|
||||||
|
|
||||||
See: https://lore.kernel.org/lkml/1399671106.2912.21.camel@joe-AO725/
|
|
||||||
|
|
||||||
**SINGLE_STATEMENT_DO_WHILE_MACRO**
|
|
||||||
For the multi-statement macros, it is necessary to use the do-while
|
|
||||||
loop to avoid unpredictable code paths. The do-while loop helps to
|
|
||||||
group the multiple statements into a single one so that a
|
|
||||||
function-like macro can be used as a function only.
|
|
||||||
|
|
||||||
But for the single statement macros, it is unnecessary to use the
|
|
||||||
do-while loop. Although the code is syntactically correct but using
|
|
||||||
the do-while loop is redundant. So remove the do-while loop for single
|
|
||||||
statement macros.
|
|
||||||
|
|
||||||
**WEAK_DECLARATION**
|
**WEAK_DECLARATION**
|
||||||
Using weak declarations like __attribute__((weak)) or __weak
|
Using weak declarations like __attribute__((weak)) or __weak
|
||||||
can have unintended link defects. Avoid using them.
|
can have unintended link defects. Avoid using them.
|
||||||
@ -985,11 +920,6 @@ Functions and Variables
|
|||||||
Your compiler (or rather your loader) automatically does
|
Your compiler (or rather your loader) automatically does
|
||||||
it for you.
|
it for you.
|
||||||
|
|
||||||
**MULTIPLE_ASSIGNMENTS**
|
|
||||||
Multiple assignments on a single line makes the code unnecessarily
|
|
||||||
complicated. So on a single line assign value to a single variable
|
|
||||||
only, this makes the code more readable and helps avoid typos.
|
|
||||||
|
|
||||||
**RETURN_PARENTHESES**
|
**RETURN_PARENTHESES**
|
||||||
return is not a function and as such doesn't need parentheses::
|
return is not a function and as such doesn't need parentheses::
|
||||||
|
|
||||||
@ -1027,17 +957,6 @@ Permissions
|
|||||||
Permission bits should use 4 digit octal permissions (like 0700 or 0444).
|
Permission bits should use 4 digit octal permissions (like 0700 or 0444).
|
||||||
Avoid using any other base like decimal.
|
Avoid using any other base like decimal.
|
||||||
|
|
||||||
**SYMBOLIC_PERMS**
|
|
||||||
Permission bits in the octal form are more readable and easier to
|
|
||||||
understand than their symbolic counterparts because many command-line
|
|
||||||
tools use this notation. Experienced kernel developers have been using
|
|
||||||
these traditional Unix permission bits for decades and so they find it
|
|
||||||
easier to understand the octal notation than the symbolic macros.
|
|
||||||
For example, it is harder to read S_IWUSR|S_IRUGO than 0644, which
|
|
||||||
obscures the developer's intent rather than clarifying it.
|
|
||||||
|
|
||||||
See: https://lore.kernel.org/lkml/CA+55aFw5v23T-zvDZp-MmD_EYxF8WbafwwB59934FV7g21uMGQ@mail.gmail.com/
|
|
||||||
|
|
||||||
|
|
||||||
Spacing and Brackets
|
Spacing and Brackets
|
||||||
--------------------
|
--------------------
|
||||||
|
@ -32,7 +32,6 @@ Documentation/dev-tools/testing-overview.rst
|
|||||||
kgdb
|
kgdb
|
||||||
kselftest
|
kselftest
|
||||||
kunit/index
|
kunit/index
|
||||||
ktap
|
|
||||||
|
|
||||||
|
|
||||||
.. only:: subproject and html
|
.. only:: subproject and html
|
||||||
|
@ -194,17 +194,14 @@ additional boot parameters that allow disabling KASAN or controlling features:
|
|||||||
|
|
||||||
- ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``).
|
- ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``).
|
||||||
|
|
||||||
- ``kasan.mode=sync``, ``=async`` or ``=asymm`` controls whether KASAN
|
- ``kasan.mode=sync`` or ``=async`` controls whether KASAN is configured in
|
||||||
is configured in synchronous, asynchronous or asymmetric mode of
|
synchronous or asynchronous mode of execution (default: ``sync``).
|
||||||
execution (default: ``sync``).
|
|
||||||
Synchronous mode: a bad access is detected immediately when a tag
|
Synchronous mode: a bad access is detected immediately when a tag
|
||||||
check fault occurs.
|
check fault occurs.
|
||||||
Asynchronous mode: a bad access detection is delayed. When a tag check
|
Asynchronous mode: a bad access detection is delayed. When a tag check
|
||||||
fault occurs, the information is stored in hardware (in the TFSR_EL1
|
fault occurs, the information is stored in hardware (in the TFSR_EL1
|
||||||
register for arm64). The kernel periodically checks the hardware and
|
register for arm64). The kernel periodically checks the hardware and
|
||||||
only reports tag faults during these checks.
|
only reports tag faults during these checks.
|
||||||
Asymmetric mode: a bad access is detected synchronously on reads and
|
|
||||||
asynchronously on writes.
|
|
||||||
|
|
||||||
- ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack
|
- ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack
|
||||||
traces collection (default: ``on``).
|
traces collection (default: ``on``).
|
||||||
|
@ -50,7 +50,6 @@ program using kcov:
|
|||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <linux/types.h>
|
|
||||||
|
|
||||||
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
|
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
|
||||||
#define KCOV_ENABLE _IO('c', 100)
|
#define KCOV_ENABLE _IO('c', 100)
|
||||||
@ -178,8 +177,6 @@ Comparison operands collection is similar to coverage collection:
|
|||||||
/* Read number of comparisons collected. */
|
/* Read number of comparisons collected. */
|
||||||
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
|
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
uint64_t ip;
|
|
||||||
|
|
||||||
type = cover[i * KCOV_WORDS_PER_CMP + 1];
|
type = cover[i * KCOV_WORDS_PER_CMP + 1];
|
||||||
/* arg1 and arg2 - operands of the comparison. */
|
/* arg1 and arg2 - operands of the comparison. */
|
||||||
arg1 = cover[i * KCOV_WORDS_PER_CMP + 2];
|
arg1 = cover[i * KCOV_WORDS_PER_CMP + 2];
|
||||||
@ -254,8 +251,6 @@ selectively from different subsystems.
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
/* Same includes and defines as above. */
|
|
||||||
|
|
||||||
struct kcov_remote_arg {
|
struct kcov_remote_arg {
|
||||||
__u32 trace_mode;
|
__u32 trace_mode;
|
||||||
__u32 area_size;
|
__u32 area_size;
|
||||||
|