code:
What:		/sys/block/<disk>/alignment_offset
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report a physical block size that is
		bigger than the logical block size (for instance a drive
		with 4KB physical sectors exposing 512-byte logical
		blocks to the operating system).  This parameter
		indicates how many bytes the beginning of the device is
		offset from the disk's natural alignment.

What:		/sys/block/<disk>/discard_alignment
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may
		internally allocate space in units that are bigger than
		the exported logical block size. The discard_alignment
		parameter indicates how many bytes the beginning of the
		device is offset from the internal allocation unit's
		natural alignment.

What:		/sys/block/<disk>/diskseq
Date:		February 2021
Contact:	Matteo Croce <mcroce@microsoft.com>
Description:
		The /sys/block/<disk>/diskseq files reports the disk
		sequence number, which is a monotonically increasing
		number assigned to every drive.
		Some devices, like the loop device, refresh such number
		every time the backing file is changed.
		The value type is 64 bit unsigned.

What:		/sys/block/<disk>/inflight
Date:		October 2009
Contact:	Jens Axboe <axboe@kernel.dk>, Nikanth Karthikesan <knikanth@suse.de>
Description:
		Reports the number of I/O requests currently in progress
		(pending / in flight) in a device driver. This can be less
		than the number of requests queued in the block device queue.
		The report contains 2 fields: one for read requests
		and one for write requests.
		The value type is unsigned int.
		Cf. Documentation/block/stat.rst which contains a single value for
		requests in flight.
		This is related to /sys/block/<disk>/queue/nr_requests
		and for SCSI device also its queue_depth.

What:		/sys/block/<disk>/integrity/device_is_integrity_capable
Date:		July 2014
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether a storage device is capable of storing
		integrity metadata. Set if the device is T10 PI-capable.

What:		/sys/block/<disk>/integrity/format
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Metadata format for integrity capable block device.
		E.g. T10-DIF-TYPE1-CRC.

What:		/sys/block/<disk>/integrity/protection_interval_bytes
Date:		July 2015
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Describes the number of data bytes which are protected
		by one integrity tuple. Typically the device's logical
		block size.

What:		/sys/block/<disk>/integrity/read_verify
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should verify the
		integrity of read requests serviced by devices that
		support sending integrity metadata.

What:		/sys/block/<disk>/integrity/tag_size
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Number of bytes of integrity tag space available per
		512 bytes of data.

What:		/sys/block/<disk>/integrity/write_generate
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should automatically
		generate checksums for write requests bound for
		devices that support receiving integrity metadata.

What:		/sys/block/<disk>/<partition>/alignment_offset
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report a physical block size that is
		bigger than the logical block size (for instance a drive
		with 4KB physical sectors exposing 512-byte logical
		blocks to the operating system).  This parameter
		indicates how many bytes the beginning of the partition
		is offset from the disk's natural alignment.

What:		/sys/block/<disk>/<partition>/discard_alignment
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may
		internally allocate space in units that are bigger than
		the exported logical block size. The discard_alignment
		parameter indicates how many bytes the beginning of the
		partition is offset from the internal allocation unit's
		natural alignment.

What:		/sys/block/<disk>/<partition>/stat
Date:		February 2008
Contact:	Jerome Marchand <jmarchan@redhat.com>
Description:
		The /sys/block/<disk>/<partition>/stat files display the
		I/O statistics of partition <partition>. The format is the
		same as the format of /sys/block/<disk>/stat.

What:		/sys/block/<disk>/queue/add_random
Date:		June 2010
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This file allows to turn off the disk entropy contribution.
		Default value of this file is '1'(on).

What:		/sys/block/<disk>/queue/chunk_sectors
Date:		September 2016
Contact:	Hannes Reinecke <hare@suse.com>
Description:
		[RO] chunk_sectors has different meaning depending on the type
		of the disk. For a RAID device (dm-raid), chunk_sectors
		indicates the size in 512B sectors of the RAID volume stripe
		segment. For a zoned block device, either host-aware or
		host-managed, chunk_sectors indicates the size in 512B sectors
		of the zones of the device, with the eventual exception of the
		last zone of the device which may be smaller.

What:		/sys/block/<disk>/queue/crypto/
Date:		February 2022
Contact:	linux-block@vger.kernel.org
Description:
		The presence of this subdirectory of /sys/block/<disk>/queue/
		indicates that the device supports inline encryption.  This
		subdirectory contains files which describe the inline encryption
		capabilities of the device.  For more information about inline
		encryption, refer to Documentation/block/inline-encryption.rst.

What:		/sys/block/<disk>/queue/crypto/max_dun_bits
Date:		February 2022
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This file shows the maximum length, in bits, of data unit
		numbers accepted by the device in inline encryption requests.

What:		/sys/block/<disk>/queue/crypto/modes/<mode>
Date:		February 2022
Contact:	linux-block@vger.kernel.org
Description:
		[RO] For each crypto mode (i.e., encryption/decryption
		algorithm) the device supports with inline encryption, a file
		will exist at this location.  It will contain a hexadecimal
		number that is a bitmask of the supported data unit sizes, in
		bytes, for that crypto mode.

		Currently, the crypto modes that may be supported are:

		   * AES-256-XTS
		   * AES-128-CBC-ESSIV
		   * Adiantum

		For example, if a device supports AES-256-XTS inline encryption
		with data unit sizes of 512 and 4096 bytes, the file
		/sys/block/<disk>/queue/crypto/modes/AES-256-XTS will exist and
		will contain "0x1200".

What:		/sys/block/<disk>/queue/crypto/num_keyslots
Date:		February 2022
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This file shows the number of keyslots the device has for
		use with inline encryption.

What:		/sys/block/<disk>/queue/dax
Date:		June 2016
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This file indicates whether the device supports Direct
		Access (DAX), used by CPU-addressable storage to bypass the
		pagecache.  It shows '1' if true, '0' if not.

What:		/sys/block/<disk>/queue/discard_granularity
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] Devices that support discard functionality may internally
		allocate space using units that are bigger than the logical
		block size. The discard_granularity parameter indicates the size
		of the internal allocation unit in bytes if reported by the
		device. Otherwise the discard_granularity will be set to match
		the device's physical block size. A discard_granularity of 0
		means that the device does not support discard functionality.

What:		/sys/block/<disk>/queue/discard_max_bytes
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RW] While discard_max_hw_bytes is the hardware limit for the
		device, this setting is the software limit. Some devices exhibit
		large latencies when large discards are issued, setting this
		value lower will make Linux issue smaller discards and
		potentially help reduce latencies induced by large discard
		operations.

What:		/sys/block/<disk>/queue/discard_max_hw_bytes
Date:		July 2015
Contact:	linux-block@vger.kernel.org
Description:
		[RO] Devices that support discard functionality may have
		internal limits on the number of bytes that can be trimmed or
		unmapped in a single operation.  The `discard_max_hw_bytes`
		parameter is set by the device driver to the maximum number of
		bytes that can be discarded in a single operation.  Discard
		requests issued to the device must not exceed this limit.  A
		`discard_max_hw_bytes` value of 0 means that the device does not
		support discard functionality.

What:		/sys/block/<disk>/queue/discard_zeroes_data
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] Will always return 0.  Don't rely on any specific behavior
		for discards, and don't read this file.

What:		/sys/block/<disk>/queue/dma_alignment
Date:		May 2022
Contact:	linux-block@vger.kernel.org
Description:
		Reports the alignment that user space addresses must have to be
		used for raw block device access with O_DIRECT and other driver
		specific passthrough mechanisms.

What:		/sys/block/<disk>/queue/fua
Date:		May 2018
Contact:	linux-block@vger.kernel.org
Description:
		[RO] Whether or not the block driver supports the FUA flag for
		write requests.  FUA stands for Force Unit Access. If the FUA
		flag is set that means that write requests must bypass the
		volatile cache of the storage device.

What:		/sys/block/<disk>/queue/hw_sector_size
Date:		January 2008
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This is the hardware sector size of the device, in bytes.

What:		/sys/block/<disk>/queue/independent_access_ranges/
Date:		October 2021
Contact:	linux-block@vger.kernel.org
Description:
		[RO] The presence of this sub-directory of the
		/sys/block/xxx/queue/ directory indicates that the device is
		capable of executing requests targeting different sector ranges
		in parallel. For instance, single LUN multi-actuator hard-disks
		will have an independent_access_ranges directory if the device
		correctly advertizes the sector ranges of its actuators.

		The independent_access_ranges directory contains one directory
		per access range, with each range described using the sector
		(RO) attribute file to indicate the first sector of the range
		and the nr_sectors (RO) attribute file to indicate the total
		number of sectors in the range starting from the first sector of
		the range.  For example, a dual-actuator hard-disk will have the
		following independent_access_ranges entries.::

			$ tree /sys/block/<disk>/queue/independent_access_ranges/
			/sys/block/<disk>/queue/independent_access_ranges/
			|-- 0
			|   |-- nr_sectors
			|   `-- sector
			`-- 1
			    |-- nr_sectors
			    `-- sector

		The sector and nr_sectors attributes use 512B sector unit,
		regardless of the actual block size of the device. Independent
		access ranges do not overlap and include all sectors within the
		device capacity. The access ranges are numbered in increasing
		order of the range start sector, that is, the sector attribute
		of range 0 always has the value 0.

What:		/sys/block/<disk>/queue/io_poll
Date:		November 2015
Contact:	linux-block@vger.kernel.org
Description:
		[RW] When read, this file shows whether polling is enabled (1)
		or disabled (0).  Writing '0' to this file will disable polling
		for this device.  Writing any non-zero value will enable this
		feature.

What:		/sys/block/<disk>/queue/io_poll_delay
Date:		November 2016
Contact:	linux-block@vger.kernel.org
Description:
		[RW] If polling is enabled, this controls what kind of polling
		will be performed. It defaults to -1, which is classic polling.
		In this mode, the CPU will repeatedly ask for completions
		without giving up any time.  If set to 0, a hybrid polling mode
		is used, where the kernel will attempt to make an educated guess
		at when the IO will complete. Based on this guess, the kernel
		will put the process issuing IO to sleep for an amount of time,
		before entering a classic poll loop. This mode might be a little
		slower than pure classic polling, but it will be more efficient.
		If set to a value larger than 0, the kernel will put the process
		issuing IO to sleep for this amount of microseconds before
		entering classic polling.

What:		/sys/block/<disk>/queue/io_timeout
Date:		November 2018
Contact:	Weiping Zhang <zhangweiping@didiglobal.com>
Description:
		[RW] io_timeout is the request timeout in milliseconds. If a
		request does not complete in this time then the block driver
		timeout handler is invoked. That timeout handler can decide to
		retry the request, to fail it or to start a device recovery
		strategy.

What:		/sys/block/<disk>/queue/iostats
Date:		January 2009
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This file is used to control (on/off) the iostats
		accounting of the disk.

What:		/sys/block/<disk>/queue/logical_block_size
Date:		May 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] This is the smallest unit the storage device can address.
		It is typically 512 bytes.

What:		/sys/block/<disk>/queue/max_active_zones
Date:		July 2020
Contact:	Niklas Cassel <niklas.cassel@wdc.com>
Description:
		[RO] For zoned block devices (zoned attribute indicating
		"host-managed" or "host-aware"), the sum of zones belonging to
		any of the zone states: EXPLICIT OPEN, IMPLICIT OPEN or CLOSED,
		is limited by this value. If this value is 0, there is no limit.

		If the host attempts to exceed this limit, the driver should
		report this error with BLK_STS_ZONE_ACTIVE_RESOURCE, which user
		space may see as the EOVERFLOW errno.

What:		/sys/block/<disk>/queue/max_discard_segments
Date:		February 2017
Contact:	linux-block@vger.kernel.org
Description:
		[RO] The maximum number of DMA scatter/gather entries in a
		discard request.

What:		/sys/block/<disk>/queue/max_hw_sectors_kb
Date:		September 2004
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This is the maximum number of kilobytes supported in a
		single data transfer.

What:		/sys/block/<disk>/queue/max_integrity_segments
Date:		September 2010
Contact:	linux-block@vger.kernel.org
Description:
		[RO] Maximum number of elements in a DMA scatter/gather list
		with integrity data that will be submitted by the block layer
		core to the associated block driver.

What:		/sys/block/<disk>/queue/max_open_zones
Date:		July 2020
Contact:	Niklas Cassel <niklas.cassel@wdc.com>
Description:
		[RO] For zoned block devices (zoned attribute indicating
		"host-managed" or "host-aware"), the sum of zones belonging to
		any of the zone states: EXPLICIT OPEN or IMPLICIT OPEN, is
		limited by this value. If this value is 0, there is no limit.

What:		/sys/block/<disk>/queue/max_sectors_kb
Date:		September 2004
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This is the maximum number of kilobytes that the block
		layer will allow for a filesystem request. Must be smaller than
		or equal to the maximum size allowed by the hardware.

What:		/sys/block/<disk>/queue/max_segment_size
Date:		March 2010
Contact:	linux-block@vger.kernel.org
Description:
		[RO] Maximum size in bytes of a single element in a DMA
		scatter/gather list.

What:		/sys/block/<disk>/queue/max_segments
Date:		March 2010
Contact:	linux-block@vger.kernel.org
Description:
		[RO] Maximum number of elements in a DMA scatter/gather list
		that is submitted to the associated block driver.

What:		/sys/block/<disk>/queue/minimum_io_size
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] Storage devices may report a granularity or preferred
		minimum I/O size which is the smallest request the device can
		perform without incurring a performance penalty.  For disk
		drives this is often the physical block size.  For RAID arrays
		it is often the stripe chunk size.  A properly aligned multiple
		of minimum_io_size is the preferred request size for workloads
		where a high number of I/O operations is desired.

What:		/sys/block/<disk>/queue/nomerges
Date:		January 2010
Contact:	linux-block@vger.kernel.org
Description:
		[RW] Standard I/O elevator operations include attempts to merge
		contiguous I/Os. For known random I/O loads these attempts will
		always fail and result in extra cycles being spent in the
		kernel. This allows one to turn off this behavior on one of two
		ways: When set to 1, complex merge checks are disabled, but the
		simple one-shot merges with the previous I/O request are
		enabled. When set to 2, all merge tries are disabled. The
		default value is 0 - which enables all types of merge tries.

What:		/sys/block/<disk>/queue/nr_requests
Date:		July 2003
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This controls how many requests may be allocated in the
		block layer for read or write requests. Note that the total
		allocated number may be twice this amount, since it applies only
		to reads or writes (not the accumulated sum).

		To avoid priority inversion through request starvation, a
		request queue maintains a separate request pool per each cgroup
		when CONFIG_BLK_CGROUP is enabled, and this parameter applies to
		each such per-block-cgroup request pool.  IOW, if there are N
		block cgroups, each request queue may have up to N request
		pools, each independently regulated by nr_requests.

What:		/sys/block/<disk>/queue/nr_zones
Date:		November 2018
Contact:	Damien Le Moal <damien.lemoal@wdc.com>
Description:
		[RO] nr_zones indicates the total number of zones of a zoned
		block device ("host-aware" or "host-managed" zone model). For
		regular block devices, the value is always 0.

What:		/sys/block/<disk>/queue/optimal_io_size
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] Storage devices may report an optimal I/O size, which is
		the device's preferred unit for sustained I/O.  This is rarely
		reported for disk drives.  For RAID arrays it is usually the
		stripe width or the internal track size.  A properly aligned
		multiple of optimal_io_size is the preferred request size for
		workloads where sustained throughput is desired.  If no optimal
		I/O size is reported this file contains 0.

What:		/sys/block/<disk>/queue/physical_block_size
Date:		May 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] This is the smallest unit a physical storage device can
		write atomically.  It is usually the same as the logical block
		size but may be bigger.  One example is SATA drives with 4KB
		sectors that expose a 512-byte logical block size to the
		operating system.  For stacked block devices the
		physical_block_size variable contains the maximum
		physical_block_size of the component devices.

What:		/sys/block/<disk>/queue/read_ahead_kb
Date:		May 2004
Contact:	linux-block@vger.kernel.org
Description:
		[RW] Maximum number of kilobytes to read-ahead for filesystems
		on this block device.

What:		/sys/block/<disk>/queue/rotational
Date:		January 2009
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This file is used to stat if the device is of rotational
		type or non-rotational type.

What:		/sys/block/<disk>/queue/rq_affinity
Date:		September 2008
Contact:	linux-block@vger.kernel.org
Description:
		[RW] If this option is '1', the block layer will migrate request
		completions to the cpu "group" that originally submitted the
		request. For some workloads this provides a significant
		reduction in CPU cycles due to caching effects.

		For storage configurations that need to maximize distribution of
		completion processing setting this option to '2' forces the
		completion to run on the requesting cpu (bypassing the "group"
		aggregation logic).

What:		/sys/block/<disk>/queue/scheduler
Date:		October 2004
Contact:	linux-block@vger.kernel.org
Description:
		[RW] When read, this file will display the current and available
		IO schedulers for this block device. The currently active IO
		scheduler will be enclosed in [] brackets. Writing an IO
		scheduler name to this file will switch control of this block
		device to that new IO scheduler. Note that writing an IO
		scheduler name to this file will attempt to load that IO
		scheduler module, if it isn't already present in the system.

What:		/sys/block/<disk>/queue/stable_writes
Date:		September 2020
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This file will contain '1' if memory must not be modified
		while it is being used in a write request to this device.  When
		this is the case and the kernel is performing writeback of a
		page, the kernel will wait for writeback to complete before
		allowing the page to be modified again, rather than allowing
		immediate modification as is normally the case.  This
		restriction arises when the device accesses the memory multiple
		times where the same data must be seen every time -- for
		example, once to calculate a checksum and once to actually write
		the data.  If no such restriction exists, this file will contain
		'0'.  This file is writable for testing purposes.

What:		/sys/block/<disk>/queue/throttle_sample_time
Date:		March 2017
Contact:	linux-block@vger.kernel.org
Description:
		[RW] This is the time window that blk-throttle samples data, in
		millisecond.  blk-throttle makes decision based on the
		samplings. Lower time means cgroups have more smooth throughput,
		but higher CPU overhead. This exists only when
		CONFIG_BLK_DEV_THROTTLING_LOW is enabled.

What:		/sys/block/<disk>/queue/virt_boundary_mask
Date:		April 2021
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This file shows the I/O segment memory alignment mask for
		the block device.  I/O requests to this device will be split
		between segments wherever either the memory address of the end
		of the previous segment or the memory address of the beginning
		of the current segment is not aligned to virt_boundary_mask + 1
		bytes.

What:		/sys/block/<disk>/queue/wbt_lat_usec
Date:		November 2016
Contact:	linux-block@vger.kernel.org
Description:
		[RW] If the device is registered for writeback throttling, then
		this file shows the target minimum read latency. If this latency
		is exceeded in a given window of time (see wb_window_usec), then
		the writeback throttling will start scaling back writes. Writing
		a value of '0' to this file disables the feature. Writing a
		value of '-1' to this file resets the value to the default
		setting.

What:		/sys/block/<disk>/queue/write_cache
Date:		April 2016
Contact:	linux-block@vger.kernel.org
Description:
		[RW] When read, this file will display whether the device has
		write back caching enabled or not. It will return "write back"
		for the former case, and "write through" for the latter. Writing
		to this file can change the kernels view of the device, but it
		doesn't alter the device state. This means that it might not be
		safe to toggle the setting from "write back" to "write through",
		since that will also eliminate cache flushes issued by the
		kernel.

What:		/sys/block/<disk>/queue/write_same_max_bytes
Date:		January 2012
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		[RO] Some devices support a write same operation in which a
		single data block can be written to a range of several
		contiguous blocks on storage. This can be used to wipe areas on
		disk or to initialize drives in a RAID configuration.
		write_same_max_bytes indicates how many bytes can be written in
		a single write same command. If write_same_max_bytes is 0, write
		same is not supported by the device.

What:		/sys/block/<disk>/queue/write_zeroes_max_bytes
Date:		November 2016
Contact:	Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Description:
		[RO] Devices that support write zeroes operation in which a
		single request can be issued to zero out the range of contiguous
		blocks on storage without having any payload in the request.
		This can be used to optimize writing zeroes to the devices.
		write_zeroes_max_bytes indicates how many bytes can be written
		in a single write zeroes command. If write_zeroes_max_bytes is
		0, write zeroes is not supported by the device.

What:		/sys/block/<disk>/queue/zone_append_max_bytes
Date:		May 2020
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This is the maximum number of bytes that can be written to
		a sequential zone of a zoned block device using a zone append
		write operation (REQ_OP_ZONE_APPEND). This value is always 0 for
		regular block devices.

What:		/sys/block/<disk>/queue/zone_write_granularity
Date:		January 2021
Contact:	linux-block@vger.kernel.org
Description:
		[RO] This indicates the alignment constraint, in bytes, for
		write operations in sequential zones of zoned block devices
		(devices with a zoned attributed that reports "host-managed" or
		"host-aware"). This value is always 0 for regular block devices.

What:		/sys/block/<disk>/queue/zoned
Date:		September 2016
Contact:	Damien Le Moal <damien.lemoal@wdc.com>
Description:
		[RO] zoned indicates if the device is a zoned block device and
		the zone model of the device if it is indeed zoned.  The
		possible values indicated by zoned are "none" for regular block
		devices and "host-aware" or "host-managed" for zoned block
		devices. The characteristics of host-aware and host-managed
		zoned block devices are described in the ZBC (Zoned Block
		Commands) and ZAC (Zoned Device ATA Command Set) standards.
		These standards also define the "drive-managed" zone model.
		However, since drive-managed zoned block devices do not support
		zone commands, they will be treated as regular block devices and
		zoned will report "none".

What:		/sys/block/<disk>/stat
Date:		February 2008
Contact:	Jerome Marchand <jmarchan@redhat.com>
Description:
		The /sys/block/<disk>/stat files displays the I/O
		statistics of disk <disk>. They contain 11 fields:

		==  ==============================================
		 1  reads completed successfully
		 2  reads merged
		 3  sectors read
		 4  time spent reading (ms)
		 5  writes completed
		 6  writes merged
		 7  sectors written
		 8  time spent writing (ms)
		 9  I/Os currently in progress
		10  time spent doing I/Os (ms)
		11  weighted time spent doing I/Os (ms)
		12  discards completed
		13  discards merged
		14  sectors discarded
		15  time spent discarding (ms)
		16  flush requests completed
		17  time spent flushing (ms)
		==  ==============================================

		For more details refer Documentation/admin-guide/iostats.rst

path: Documentation/ABI/stable/sysfs-block


code:
What:		/sys/bus/firewire/devices/fw[0-9]+/
Date:		May 2007
KernelVersion:	2.6.22
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		IEEE 1394 node device attributes.
		Read-only.  Mutable during the node device's lifetime.
		See IEEE 1212 for semantic definitions.

		config_rom
			Contents of the Configuration ROM register.
			Binary attribute; an array of host-endian u32.

		guid
			The node's EUI-64 in the bus information block of
			Configuration ROM.
			Hexadecimal string representation of an u64.

What:		/sys/bus/firewire/devices/fw[0-9]+/units
Date:		June 2009
KernelVersion:	2.6.31
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		IEEE 1394 node device attribute.
		Read-only.  Mutable during the node device's lifetime.
		See IEEE 1212 for semantic definitions.

		units
			Summary of all units present in an IEEE 1394 node.
			Contains space-separated tuples of specifier_id and
			version of each unit present in the node.  Specifier_id
			and version are hexadecimal string representations of
			u24 of the respective unit directory entries.
			Specifier_id and version within each tuple are separated
			by a colon.

Users:		udev rules to set ownership and access permissions or ACLs of
		/dev/fw[0-9]+ character device files

What:		/sys/bus/firewire/devices/fw[0-9]+/is_local
Date:		July 2012
KernelVersion:	3.6
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		IEEE 1394 node device attribute.
		Read-only and immutable.
Values:		1: The sysfs entry represents a local node (a controller card).

		0: The sysfs entry represents a remote node.

What:		/sys/bus/firewire/devices/fw[0-9]+[.][0-9]+/
Date:		May 2007
KernelVersion:	2.6.22
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		IEEE 1394 unit device attributes.
		Read-only.  Immutable during the unit device's lifetime.
		See IEEE 1212 for semantic definitions.

		modalias
			Same as MODALIAS in the uevent at device creation.

		rom_index
			Offset of the unit directory within the parent device's
			(node device's) Configuration ROM, in quadlets.
			Decimal string representation.

What:		/sys/bus/firewire/devices/*/
Date:		May 2007
KernelVersion:	2.6.22
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		Attributes common to IEEE 1394 node devices and unit devices.
		Read-only.  Mutable during the node device's lifetime.
		Immutable during the unit device's lifetime.
		See IEEE 1212 for semantic definitions.

		These attributes are only created if the root directory of an
		IEEE 1394 node or the unit directory of an IEEE 1394 unit
		actually contains according entries.

		hardware_version
			Hexadecimal string representation of an u24.

		hardware_version_name
			Contents of a respective textual descriptor leaf.

		model
			Hexadecimal string representation of an u24.

		model_name
			Contents of a respective textual descriptor leaf.

		specifier_id
			Hexadecimal string representation of an u24.
			Mandatory in unit directories according to IEEE 1212.

		vendor
			Hexadecimal string representation of an u24.
			Mandatory in the root directory according to IEEE 1212.

		vendor_name
			Contents of a respective textual descriptor leaf.

		version
			Hexadecimal string representation of an u24.
			Mandatory in unit directories according to IEEE 1212.

What:		/sys/bus/firewire/drivers/sbp2/fw*/host*/target*/*:*:*:*/ieee1394_id
		formerly
		/sys/bus/ieee1394/drivers/sbp2/fw*/host*/target*/*:*:*:*/ieee1394_id
Date:		Feb 2004
KernelVersion:	2.6.4
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		SCSI target port identifier and logical unit identifier of a
		logical unit of an SBP-2 target.  The identifiers are specified
		in SAM-2...SAM-4 annex A.  They are persistent and world-wide
		unique properties the SBP-2 attached target.

		Read-only attribute, immutable during the target's lifetime.
		Format, as exposed by firewire-sbp2 since 2.6.22, May 2007:
		Colon-separated hexadecimal string representations of

			u64 EUI-64 : u24 directory_ID : u16 LUN

		without 0x prefixes, without whitespace.  The former sbp2 driver
		(removed in 2.6.37 after being superseded by firewire-sbp2) used
		a somewhat shorter format which was not as close to SAM.

Users:		udev rules to create /dev/disk/by-id/ symlinks

repo_name: angery/linux


code:
What:		/sys/bus/fsl-mc/rescan
Date:		January 2021
KernelVersion:	5.12
Contact:	Ioana Ciornei <ioana.ciornei@nxp.com>
Description:	Writing a non-zero value to this attribute will
		force a rescan of fsl-mc bus in the system and
		synchronize the objects under fsl-mc bus and the
		Management Complex firmware.
Users:		Userspace drivers and management tools

What:		/sys/bus/fsl-mc/autorescan
Date:		January 2021
KernelVersion:	5.12
Contact:	Ioana Ciornei <ioana.ciornei@nxp.com>
Description:	Writing a zero value to this attribute will
		disable the DPRC IRQs on which automatic rescan
		of the fsl-mc bus is performed. A non-zero value
		will enable the DPRC IRQs.
Users:		Userspace drivers and management tools


code:
What:		/sys/bus/mhi/devices/.../serialnumber
Date:		Sept 2020
KernelVersion:	5.10
Contact:	Bhaumik Bhatt <bbhatt@codeaurora.org>
Description:	The file holds the serial number of the client device obtained
		using a BHI (Boot Host Interface) register read after at least
		one attempt to power up the device has been done. If read
		without having the device power on at least once, the file will
		read all 0's.
Users:		Any userspace application or clients interested in device info.

What:		/sys/bus/mhi/devices/.../oem_pk_hash
Date:		Sept 2020
KernelVersion:	5.10
Contact:	Bhaumik Bhatt <bbhatt@codeaurora.org>
Description:	The file holds the OEM PK Hash value of the endpoint device
		obtained using a BHI (Boot Host Interface) register read after
		at least one attempt to power up the device has been done. If
		read without having the device power on at least once, the file
		will read all 0's.
Users:		Any userspace application or clients interested in device info.

What:           /sys/bus/mhi/devices/.../soc_reset
Date:           April 2022
KernelVersion:  5.19
Contact:        mhi@lists.linux.dev
Description:	Initiates a SoC reset on the MHI controller.  A SoC reset is
                a reset of last resort, and will require a complete re-init.
                This can be useful as a method of recovery if the device is
                non-responsive, or as a means of loading new firmware as a
                system administration task.

path: Documentation/ABI/stable/sysfs-bus-mhi


code:
What:		/sys/bus/nvmem/devices/.../nvmem
Date:		July 2015
KernelVersion:  4.2
Contact:	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Description:
		This file allows user to read/write the raw NVMEM contents.
		Permissions for write to this file depends on the nvmem
		provider configuration.
		Note: This file is only present if CONFIG_NVMEM_SYSFS
		is enabled

		ex::

		  hexdump /sys/bus/nvmem/devices/qfprom0/nvmem

		  0000000 0000 0000 0000 0000 0000 0000 0000 0000
		  *
		  00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00
		  0000000 0000 0000 0000 0000 0000 0000 0000 0000
		  ...
		  *
		  0001000


code:
What:		/sys/bus/usb/devices/.../power/persist
Date:		May 2007
KernelVersion:	2.6.23
Contact:	Alan Stern <stern@rowland.harvard.edu>
Description:
		USB device directories can contain a file named power/persist.
		The file holds a boolean value (0 or 1) indicating whether or
		not the "USB-Persist" facility is enabled for the device.  For
		hubs this facility is always enabled and their device
		directories will not contain this file.

		For more information, see Documentation/driver-api/usb/persist.rst.

What:		/sys/bus/usb/devices/.../power/autosuspend
Date:		March 2007
KernelVersion:	2.6.21
Contact:	Alan Stern <stern@rowland.harvard.edu>
Description:
		Each USB device directory will contain a file named
		power/autosuspend.  This file holds the time (in seconds)
		the device must be idle before it will be autosuspended.
		0 means the device will be autosuspended as soon as
		possible.  Negative values will prevent the device from
		being autosuspended at all, and writing a negative value
		will resume the device if it is already suspended.

		The autosuspend delay for newly-created devices is set to
		the value of the usbcore.autosuspend module parameter.

What:		/sys/bus/usb/device/.../power/connected_duration
Date:		January 2008
KernelVersion:	2.6.25
Contact:	Sarah Sharp <sarah.a.sharp@intel.com>
Description:
		If CONFIG_PM is enabled, then this file is present.  When read,
		it returns the total time (in msec) that the USB device has been
		connected to the machine.  This file is read-only.
Users:
		PowerTOP <powertop@lists.01.org>
		https://01.org/powertop/

What:		/sys/bus/usb/device/.../power/active_duration
Date:		January 2008
KernelVersion:	2.6.25
Contact:	Sarah Sharp <sarah.a.sharp@intel.com>
Description:
		If CONFIG_PM is enabled, then this file is present.  When read,
		it returns the total time (in msec) that the USB device has been
		active, i.e. not in a suspended state.  This file is read-only.

		Tools can use this file and the connected_duration file to
		compute the percentage of time that a device has been active.
		For example::

		  echo $((100 * `cat active_duration` / `cat connected_duration`))

		will give an integer percentage.  Note that this does not
		account for counter wrap.
Users:
		PowerTOP <powertop@lists.01.org>
		https://01.org/powertop/

What:		/sys/bus/usb/devices/<busnum>-<port[.port]>...:<config num>-<interface num>/supports_autosuspend
Date:		January 2008
KernelVersion:	2.6.27
Contact:	Sarah Sharp <sarah.a.sharp@intel.com>
Description:
		When read, this file returns 1 if the interface driver
		for this interface supports autosuspend.  It also
		returns 1 if no driver has claimed this interface, as an
		unclaimed interface will not stop the device from being
		autosuspended if all other interface drivers are idle.
		The file returns 0 if autosuspend support has not been
		added to the driver.
Users:
		USB PM tool
		git://git.moblin.org/users/sarah/usb-pm-tool/

What:		/sys/bus/usb/device/.../avoid_reset_quirk
Date:		December 2009
Contact:	Oliver Neukum <oliver@neukum.org>
Description:
		Writing 1 to this file tells the kernel that this
		device will morph into another mode when it is reset.
		Drivers will not use reset for error handling for
		such devices.
Users:
		usb_modeswitch

What:		/sys/bus/usb/devices/.../devnum
KernelVersion:	since at least 2.6.18
Description:
		Device address on the USB bus.
Users:
		libusb

What:		/sys/bus/usb/devices/.../bConfigurationValue
KernelVersion:	since at least 2.6.18
Description:
		bConfigurationValue of the *active* configuration for the
		device. Writing 0 or -1 to bConfigurationValue will reset the
		active configuration (unconfigure the device). Writing
		another value will change the active configuration.

		Note that some devices, in violation of the USB spec, have a
		configuration with a value equal to 0. Writing 0 to
		bConfigurationValue for these devices will install that
		configuration, rather then unconfigure the device.

		Writing -1 will always unconfigure the device.
Users:
		libusb

What:		/sys/bus/usb/devices/.../busnum
KernelVersion:	2.6.22
Description:
		Bus-number of the USB-bus the device is connected to.
Users:
		libusb

What:		/sys/bus/usb/devices/.../descriptors
KernelVersion:	2.6.26
Description:
		Binary file containing cached descriptors of the device. The
		binary data consists of the device descriptor followed by the
		descriptors for each configuration of the device.
		Note that the wTotalLength of the config descriptors can not
		be trusted, as the device may have a smaller config descriptor
		than it advertises. The bLength field of each (sub) descriptor
		can be trusted, and can be used to seek forward one (sub)
		descriptor at a time until the next config descriptor is found.
		All descriptors read from this file are in bus-endian format
Users:
		libusb

What:		/sys/bus/usb/devices/.../speed
KernelVersion:	since at least 2.6.18
Description:
		Speed the device is connected with to the usb-host in
		Mbit / second. IE one of 1.5 / 12 / 480 / 5000.
Users:
		libusb

path: Documentation/ABI/stable/sysfs-bus-usb


code:
What:		/sys/bus/vmbus/hibernation
Date:		Jan 2021
KernelVersion:	5.12
Contact:	Dexuan Cui <decui@microsoft.com>
Description:	Whether the host supports hibernation for the VM.
Users:		Daemon that sets up swap partition/file for hibernation.

What:		/sys/bus/vmbus/devices/<UUID>/id
Date:		Jul 2009
KernelVersion:	2.6.31
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The VMBus child_relid of the device's primary channel
Users:		tools/hv/lsvmbus

What:		/sys/bus/vmbus/devices/<UUID>/class_id
Date:		Jul 2009
KernelVersion:	2.6.31
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The VMBus interface type GUID of the device
Users:		tools/hv/lsvmbus

What:		/sys/bus/vmbus/devices/<UUID>/device_id
Date:		Jul 2009
KernelVersion:	2.6.31
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The VMBus interface instance GUID of the device
Users:		tools/hv/lsvmbus

What:		/sys/bus/vmbus/devices/<UUID>/channel_vp_mapping
Date:		Jul 2015
KernelVersion:	4.2.0
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The mapping of which primary/sub channels are bound to which
		Virtual Processors.
		Format: <channel's child_relid:the bound cpu's number>
Users:		tools/hv/lsvmbus

What:		/sys/bus/vmbus/devices/<UUID>/device
Date:		Dec. 2015
KernelVersion:	4.5
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The 16 bit device ID of the device
Users:		tools/hv/lsvmbus and user level RDMA libraries

What:		/sys/bus/vmbus/devices/<UUID>/vendor
Date:		Dec. 2015
KernelVersion:	4.5
Contact:	K. Y. Srinivasan <kys@microsoft.com>
Description:	The 16 bit vendor ID of the device
Users:		tools/hv/lsvmbus and user level RDMA libraries

What:		/sys/bus/vmbus/devices/<UUID>/numa_node
Date:		Jul 2018
KernelVersion:	4.19
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	This NUMA node to which the VMBUS device is
		attached, or -1 if the node is unknown.

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Directory for per-channel information
		NN is the VMBUS relid associated with the channel.

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/cpu
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	VCPU (sub)channel is affinitized to
Users:		tools/hv/lsvmbus and other debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/in_mask
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Host to guest channel interrupt mask
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/latency
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Channel signaling latency. This file is available only for
		performance critical channels (storage, network, etc.) that use
		the monitor page mechanism.
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/out_mask
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Guest to host channel interrupt mask
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/pending
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Channel interrupt pending state. This file is available only for
		performance critical channels (storage, network, etc.) that use
		the monitor page mechanism.
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/read_avail
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Bytes available to read
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/write_avail
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Bytes available to write
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/events
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Number of times we have signaled the host
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/interrupts
Date:		September. 2017
KernelVersion:	4.14
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Number of times we have taken an interrupt (incoming)
Users:		Debugging tools

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/subchannel_id
Date:		January. 2018
KernelVersion:	4.16
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Subchannel ID associated with VMBUS channel
Users:		Debugging tools and userspace drivers

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/monitor_id
Date:		January. 2018
KernelVersion:	4.16
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Monitor bit associated with channel. This file is available only
		for performance critical channels (storage, network, etc.) that
		use the monitor page mechanism.
Users:		Debugging tools and userspace drivers

What:		/sys/bus/vmbus/devices/<UUID>/channels/<N>/ring
Date:		January. 2018
KernelVersion:	4.16
Contact:	Stephen Hemminger <sthemmin@microsoft.com>
Description:	Binary file created by uio_hv_generic for ring buffer
Users:		Userspace drivers

What:           /sys/bus/vmbus/devices/<UUID>/channels/<N>/intr_in_full
Date:           February 2019
KernelVersion:  5.0
Contact:        Michael Kelley <mikelley@microsoft.com>
Description:    Number of guest to host interrupts caused by the inbound ring
		buffer transitioning from full to not full while a packet is
		waiting for buffer space to become available
Users:          Debugging tools

What:           /sys/bus/vmbus/devices/<UUID>/channels/<N>/intr_out_empty
Date:           February 2019
KernelVersion:  5.0
Contact:        Michael Kelley <mikelley@microsoft.com>
Description:    Number of guest to host interrupts caused by the outbound ring
		buffer transitioning from empty to not empty
Users:          Debugging tools

What:           /sys/bus/vmbus/devices/<UUID>/channels/<N>/out_full_first
Date:           February 2019
KernelVersion:  5.0
Contact:        Michael Kelley <mikelley@microsoft.com>
Description:    Number of write operations that were the first to encounter an
		outbound ring buffer full condition
Users:          Debugging tools

What:           /sys/bus/vmbus/devices/<UUID>/channels/<N>/out_full_total
Date:           February 2019
KernelVersion:  5.0
Contact:        Michael Kelley <mikelley@microsoft.com>
Description:    Total number of write operations that encountered an outbound
		ring buffer full condition
Users:          Debugging tools


code:
What:		/sys/bus/w1/devices/.../w1_master_timeout_us
Date:		April 2015
Contact:	Dmitry Khromov <dk@icelogic.net>
Description:	Bus scanning interval, microseconds component.
		Some of 1-Wire devices commonly associated with physical access
		control systems are attached/generate presence for as short as
		100 ms - hence the tens-to-hundreds milliseconds scan intervals
		are required.

		see Documentation/w1/w1-generic.rst for detailed information.
Users:		any user space application which wants to know bus scanning
		interval


code:
What:		/sys/bus/xen-backend/devices/*/devtype
Date:		Feb 2009
KernelVersion:	2.6.38
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                The type of the device.  e.g., one of: 'vbd' (block),
                'vif' (network), or 'vfb' (framebuffer).

What:		/sys/bus/xen-backend/devices/*/nodename
Date:		Feb 2009
KernelVersion:	2.6.38
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                XenStore node (under /local/domain/NNN/) for this
                backend device.

What:		/sys/bus/xen-backend/devices/vbd-*/physical_device
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                The major:minor number (in hexadecimal) of the
                physical device providing the storage for this backend
                block device.

What:		/sys/bus/xen-backend/devices/vbd-*/mode
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Whether the block device is read-only ('r') or
                read-write ('w').

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/f_req
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of flush requests from the frontend.

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/oo_req
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of requests delayed because the backend was too
                busy processing previous requests.

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/rd_req
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of read requests from the frontend.

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/rd_sect
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of sectors read by the frontend.

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/wr_req
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of write requests from the frontend.

What:		/sys/bus/xen-backend/devices/vbd-*/statistics/wr_sect
Date:		April 2011
KernelVersion:	3.0
Contact:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Description:
                Number of sectors written by the frontend.

What:		/sys/bus/xen-backend/devices/*/state
Date:		August 2018
KernelVersion:	4.19
Contact:	Joe Jin <joe.jin@oracle.com>
Description:
                The state of the device. One of: 'Unknown',
                'Initialising', 'Initialised', 'Connected', 'Closing',
                'Closed', 'Reconfiguring', 'Reconfigured'.


code:
What:		/sys/class/backlight/<backlight>/bl_power
Date:		April 2005
KernelVersion:	2.6.12
Contact:	Richard Purdie <rpurdie@rpsys.net>
Description:
		Control BACKLIGHT power, values are FB_BLANK_* from fb.h

		 - FB_BLANK_UNBLANK (0)   : power on.
		 - FB_BLANK_POWERDOWN (4) : power off
Users:		HAL

What:		/sys/class/backlight/<backlight>/brightness
Date:		April 2005
KernelVersion:	2.6.12
Contact:	Richard Purdie <rpurdie@rpsys.net>
Description:
		Control the brightness for this <backlight>. Values
		are between 0 and max_brightness. This file will also
		show the brightness level stored in the driver, which
		may not be the actual brightness (see actual_brightness).
Users:		HAL

What:		/sys/class/backlight/<backlight>/actual_brightness
Date:		March 2006
KernelVersion:	2.6.17
Contact:	Richard Purdie <rpurdie@rpsys.net>
Description:
		Show the actual brightness by querying the hardware.
Users:		HAL

What:		/sys/class/backlight/<backlight>/max_brightness
Date:		April 2005
KernelVersion:	2.6.12
Contact:	Richard Purdie <rpurdie@rpsys.net>
Description:
		Maximum brightness for <backlight>.
Users:		HAL

What:		/sys/class/backlight/<backlight>/type
Date:		September 2010
KernelVersion:	2.6.37
Contact:	Matthew Garrett <mjg@redhat.com>
Description:
		The type of interface controlled by <backlight>.
		"firmware": The driver uses a standard firmware interface
		"platform": The driver uses a platform-specific interface
		"raw": The driver controls hardware registers directly

		In the general case, when multiple backlight
		interfaces are available for a single device, firmware
		control should be preferred to platform control should
		be preferred to raw control. Using a firmware
		interface reduces the probability of confusion with
		the hardware and the OS independently updating the
		backlight state. Platform interfaces are mostly a
		holdover from pre-standardisation of firmware
		interfaces.


code:
sysfs interface common for all infiniband devices
-------------------------------------------------

What:		/sys/class/infiniband/<device>/node_type
What:		/sys/class/infiniband/<device>/node_guid
What:		/sys/class/infiniband/<device>/sys_image_guid
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===========================================
		node_type:	(RO) Node type (CA, RNIC, usNIC, usNIC UDP,
				switch or router)

		node_guid:	(RO) Node GUID

		sys_image_guid:	(RO) System image GUID
		=============== ===========================================

What:		/sys/class/infiniband/<device>/node_desc
Date:		Feb, 2006
KernelVersion:	v2.6.17
Contact:	linux-rdma@vger.kernel.org
Description:
		(RW) Update the node description with information such as the
		node's hostname, so that IB network management software can tie
		its view to the real world.

What:		/sys/class/infiniband/<device>/fw_ver
Date:		Jun, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Display firmware version

What:		/sys/class/infiniband/<device>/ports/<port-num>/lid
What:		/sys/class/infiniband/<device>/ports/<port-num>/rate
What:		/sys/class/infiniband/<device>/ports/<port-num>/lid_mask_count
What:		/sys/class/infiniband/<device>/ports/<port-num>/sm_sl
What:		/sys/class/infiniband/<device>/ports/<port-num>/sm_lid
What:		/sys/class/infiniband/<device>/ports/<port-num>/state
What:		/sys/class/infiniband/<device>/ports/<port-num>/phys_state
What:		/sys/class/infiniband/<device>/ports/<port-num>/cap_mask
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ===============================================
		lid:		(RO) Port LID

		rate:		(RO) Port data rate (active width * active
				speed)

		lid_mask_count:	(RO) Port LID mask count

		sm_sl:		(RO) Subnet manager SL for port's subnet

		sm_lid:		(RO) Subnet manager LID for port's subnet

		state:		(RO) Port state (DOWN, INIT, ARMED, ACTIVE or
				ACTIVE_DEFER)

		phys_state:	(RO) Port physical state (Sleep, Polling,
				LinkUp, etc)

		cap_mask:	(RO) Port capability mask. 2 bits here are
				settable- IsCommunicationManagementSupported
				(set when CM module is loaded) and IsSM (set
				via open of issmN file).
		=============== ===============================================

What:		/sys/class/infiniband/<device>/ports/<port-num>/link_layer
Date:		Oct, 2010
KernelVersion:	v2.6.37
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Link layer type information (Infiniband or Ethernet type)

What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/symbol_error
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_remote_physical_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_switch_relay_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/link_error_recovery
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_constraint_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_contraint_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/local_link_integrity_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/excessive_buffer_overrun_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_data
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_data
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/link_downed
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_discards
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/VL15_dropped
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_wait
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		**Errors info**:

		symbol_error: (RO) Total number of minor link errors detected on
		one or more physical lanes.

		port_rcv_errors : (RO) Total number of packets containing an
		error that were received on the port.

		port_rcv_remote_physical_errors : (RO) Total number of packets
		marked with the EBP delimiter received on the port.

		port_rcv_switch_relay_errors : (RO) Total number of packets
		received on the port that were discarded because they could not
		be forwarded by the switch relay.

		link_error_recovery: (RO) Total number of times the Port
		Training state machine has successfully completed the link error
		recovery process.

		port_xmit_constraint_errors: (RO) Total number of packets not
		transmitted from the switch physical port due to outbound raw
		filtering or failing outbound partition or IP version check.

		port_rcv_constraint_errors: (RO) Total number of packets
		received on the switch physical port that are discarded due to
		inbound raw filtering or failing inbound partition or IP version
		check.

		local_link_integrity_errors: (RO) The number of times that the
		count of local physical errors exceeded the threshold specified
		by LocalPhyErrors

		excessive_buffer_overrun_errors: (RO) This counter, indicates an
		input buffer overrun. It indicates possible misconfiguration of
		a port, either by the Subnet Manager (SM) or by user
		intervention. It can also indicate hardware issues or extremely
		poor link signal integrity

		**Data info**:

		port_xmit_data: (RO) Total number of data octets, divided by 4
		(lanes), transmitted on all VLs. This is 64 bit counter

		port_rcv_data: (RO) Total number of data octets, divided by 4
		(lanes), received on all VLs. This is 64 bit counter.

		port_xmit_packets: (RO) Total number of packets transmitted on
		all VLs from this port. This may include packets with errors.
		This is 64 bit counter.

		port_rcv_packets: (RO) Total number of packets (this may include
		packets containing Errors. This is 64 bit counter.

		link_downed: (RO) Total number of times the Port Training state
		machine has failed the link error recovery process and downed
		the link.

		unicast_rcv_packets: (RO) Total number of unicast packets,
		including unicast packets containing errors.

		unicast_xmit_packets: (RO) Total number of unicast packets
		transmitted on all VLs from the port. This may include unicast
		packets with errors.

		multicast_rcv_packets: (RO) Total number of multicast packets,
		including multicast packets containing errors.

		multicast_xmit_packets: (RO) Total number of multicast packets
		transmitted on all VLs from the port. This may include multicast
		packets with errors.

		**Misc info**:

		port_xmit_discards: (RO) Total number of outbound packets
		discarded by the port because the port is down or congested.

		VL15_dropped: (RO) Number of incoming VL15 packets dropped due
		to resource limitations (e.g., lack of buffers) of the port.

		port_xmit_wait: (RO) The number of ticks during which the port
		had data to transmit but no data was sent during the entire tick
		(either because of insufficient credits or because of lack of
		arbitration).

		Each of these files contains the corresponding value from the
		port's Performance Management PortCounters attribute, as
		described in the InfiniBand Architecture Specification.

What:		/sys/class/infiniband/<device-name>/hw_counters/lifespan
What:		/sys/class/infiniband/<device-name>/ports/<port-num>/hw_counters/lifespan
Date:		May, 2016
KernelVersion:	4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		The optional "hw_counters" subdirectory can be under either the
		parent device or the port subdirectories or both. If present,
		there are a list of counters provided by the hardware. They may
		match some of the counters in the counters directory, but they
		often include many other counters. In addition to the various
		counters, there will be a file named "lifespan" that configures
		how frequently the core should update the counters when they are
		being accessed (counters are not updated if they are not being
		accessed). The lifespan is in milliseconds and defaults to 10
		unless set to something else by the driver. Users may echo a
		value between 0-10000 to the lifespan file to set the length
		of time between updates in milliseconds.

What:		/sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/ndevs/<gid-index>
Date:		November 29, 2015
KernelVersion:	4.4.0
Contact:	linux-rdma@vger.kernel.org
Description: 	The net-device's name associated with the GID resides
		at index <gid-index>.

What:		/sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/types/<gid-index>
Date:		November 29, 2015
KernelVersion:	4.4.0
Contact:	linux-rdma@vger.kernel.org
Description: 	The RoCE type of the associated GID resides at index <gid-index>.
		This could either be "IB/RoCE v1" for IB and RoCE v1 based GIDs
		or "RoCE v2" for RoCE v2 based GIDs.

What:		/sys/class/infiniband_mad/umad<N>/ibdev
What:		/sys/class/infiniband_mad/umad<N>/port
What:		/sys/class/infiniband_mad/issm<N>/ibdev
What:		/sys/class/infiniband_mad/issm<N>/port
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		Each port of each InfiniBand device has a "umad" device and an
		"issm" device attached. For example, a two-port HCA will have
		two umad devices and two issm devices, while a switch will have
		one device of each type (for switch port 0).

		======= =====================================
		ibdev:	(RO) Show Infiniband (IB) device name

		port:	(RO) Display port number
		======= =====================================

What:		/sys/class/infiniband_mad/abi_version
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Value is incremented if any changes are made that break
		userspace ABI compatibility of umad & issm devices.

What:		/sys/class/infiniband_verbs/uverbs<N>/ibdev
What:		/sys/class/infiniband_verbs/uverbs<N>/abi_version
Date:		Sept, 2005
KernelVersion:	v2.6.14
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===========================================
		ibdev:		(RO) Display Infiniband (IB) device name

		abi_version:	(RO) Show ABI version of IB device specific
				interfaces.
		=============== ===========================================

What:		/sys/class/infiniband_verbs/abi_version
Date:		Sep, 2005
KernelVersion:	v2.6.14
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Value is incremented if any changes are made that break
		userspace ABI compatibility of uverbs devices.

sysfs interface for Mellanox IB HCA low-level driver (mthca)
------------------------------------------------------------

What:		/sys/class/infiniband/mthcaX/hw_rev
What:		/sys/class/infiniband/mthcaX/hca_type
What:		/sys/class/infiniband/mthcaX/board_id
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ================================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host Channel Adapter type: MT23108, MT25208
				(MT23108 compat mode), MT25208 or MT25204

		board_id:	(RO) Manufacturing board ID
		=============== ================================================

sysfs interface for Mellanox ConnectX HCA IB driver (mlx4)
----------------------------------------------------------

What:		/sys/class/infiniband/mlx4_X/hw_rev
What:		/sys/class/infiniband/mlx4_X/hca_type
What:		/sys/class/infiniband/mlx4_X/board_id
Date:		Sep, 2007
KernelVersion:	v2.6.24
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===============================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Manufacturing board ID
		=============== ===============================

What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/gids/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/admin_guids/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/pkeys/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/mcgs/
What:		/sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/gid_idx/0
What:		/sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/pkey_idx/<n>
Date:		Aug, 2012
KernelVersion:	v3.6.15
Contact:	linux-rdma@vger.kernel.org
Description:
		The sysfs iov directory is used to manage and examine the port
		P_Key and guid paravirtualization. This directory is added only
		for the master -- slaves do not have it.

		Under iov/ports, the administrator may examine the gid and P_Key
		tables as they are present in the device (and as are seen in the
		"network view" presented to the SM).

		The "pkeys" and "gids" subdirectories contain one file for each
		entry in the port's P_Key or GID table respectively. For
		example, ports/1/pkeys/10 contains the value at index 10 in port
		1's P_Key table.

		======================= ==========================================
		gids/<n>:		(RO) The physical port gids n = 0..127

		admin_guids/<n>:	(RW) Allows examining or changing the
					administrative state of a given GUID
					n = 0..127

		pkeys/<n>:		(RO) Displays the contents of the physical
					key table n = 0..126

		mcgs/:			(RO) Muticast group table

		<m>/gid_idx/0:		(RO) Display the GID mapping m = 1..2

		<m>/pkey_idx/<n>:	(RW) Writable except for RoCE pkeys.
					m = 1..2, n = 0..126

					Under the iov/<pci slot number>
					directories, the admin may map the index
					numbers in the physical tables (as under
					iov/ports) to the paravirtualized index
					numbers that guests see.

					For example, if the administrator, for
					port 1 on guest 2 maps physical pkey
					index 10 to virtual index 1, then that
					guest, whenever it uses its pkey index
					1, will actually be using the real pkey
					index 10.
		======================= ==========================================

What:		/sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/smi_enabled
What:           /sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/enable_smi_admin
Date:		May, 2014
KernelVersion:	v3.15.7
Contact:	linux-rdma@vger.kernel.org
Description:
		Enabling QP0 on VFs for selected VF/port. By default, no VFs are
		enabled for QP0 operation.

		================= ==== ===========================================
		smi_enabled:	  (RO) Indicates whether smi is currently enabled
				       for the indicated VF/port

		enable_smi_admin: (RW) Used by the admin to request that smi
				       capability be enabled or disabled for the
				       indicated VF/port. 0 = disable, 1 = enable.
		================= ==== ===========================================

		The requested enablement will occur at the next reset of the VF
		(e.g. driver restart on the VM which owns the VF).

sysfs interface for Chelsio T4/T5 RDMA driver (cxgb4)
-----------------------------------------------------

What:		/sys/class/infiniband/cxgb4_X/hw_rev
What:		/sys/class/infiniband/cxgb4_X/hca_type
What:		/sys/class/infiniband/cxgb4_X/board_id
Date:		Apr, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== =============================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Driver short name. Should normally match
				the name in its bus driver structure (e.g.
				pci_driver::name)

		board_id:	(RO) Manufacturing board id. (Vendor + device
				information)
		=============== =============================================

sysfs interface for Intel IB driver qib
---------------------------------------

What:		/sys/class/infiniband/qibX/version
What:		/sys/class/infiniband/qibX/hw_rev
What:		/sys/class/infiniband/qibX/hca_type
What:		/sys/class/infiniband/qibX/board_id
What:		/sys/class/infiniband/qibX/boardversion
What:		/sys/class/infiniband/qibX/nctxts
What:		/sys/class/infiniband/qibX/localbus_info
What:		/sys/class/infiniband/qibX/tempsense
What:		/sys/class/infiniband/qibX/serial
What:		/sys/class/infiniband/qibX/nfreectxts
What:		/sys/class/infiniband/qibX/chip_reset
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ======================================================
		version:	(RO) Display version information of installed software
				and drivers.

		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Manufacturing board id

		boardversion:	(RO) Current version of the chip architecture

		nctxts:		(RO) Return the number of user ports (contexts)
				available

		localbus_info:	(RO) Human readable localbus info

		tempsense:	(RO) Display temp sense registers in decimal

		serial:		(RO) Serial number of the HCA

		nfreectxts:	(RO) The number of free user ports (contexts)
				available.

		chip_reset:	(WO) Reset the chip if possible by writing
				"reset" to this file. Only allowed if no user
				contexts are open that use chip resources.
		=============== ======================================================

What:		/sys/class/infiniband/qibX/ports/<N>/sl2vl/[0-15]
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) The directory contains 16 files numbered 0-15 that specify
		the Service Level (SL). Listing the SL files returns the Virtual
		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_table_bin
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		Per-port congestion control. Both are binary attributes.

		=============== ================================================
		cc_table_bin	(RO) Congestion control table size followed by
				table entries.

		cc_settings_bin (RO) Congestion settings: port control, control
				map and an array of 16 entries for the
				congestion entries - increase, timer, event log
				trigger threshold and the minimum injection rate
				delay.
		=============== ================================================

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/hrtbt_enable
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/status
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/status_str
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]

		=============== ===============================================
		loopback:	(WO)
		led_override:	(WO)
		hrtbt_enable:	(RW)
		status:		(RO)

		status_str:	(RO) Displays information about the link state,
				possible cable/switch problems, and hardware
				errors. Possible states are- "Initted",
				"Present", "IB_link_up", "IB_configured" or
				"Fatal_Hardware_Error".
		=============== ===============================================

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/rdma_seq
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/rc_timeouts
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/dma_wait
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/unaligned
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]

sysfs interface for Mellanox Connect-IB HCA driver mlx5
-------------------------------------------------------

What:		/sys/class/infiniband/mlx5_X/hw_rev
What:		/sys/class/infiniband/mlx5_X/hca_type
What:		/sys/class/infiniband/mlx5_X/reg_pages
What:		/sys/class/infiniband/mlx5_X/fw_pages
Date:		Jul, 2013
KernelVersion:	v3.11
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]

sysfs interface for Cisco VIC (usNIC) Verbs Driver
--------------------------------------------------

What:		/sys/class/infiniband/usnic_X/board_id
What:		/sys/class/infiniband/usnic_X/config
What:		/sys/class/infiniband/usnic_X/qp_per_vf
What:		/sys/class/infiniband/usnic_X/max_vf
What:		/sys/class/infiniband/usnic_X/cq_per_vf
What:		/sys/class/infiniband/usnic_X/iface
Date:		Sep, 2013
KernelVersion:	v3.14
Contact:	Christian Benvenuti <benve@cisco.com>,
		Dave Goodell <dgoodell@cisco.com>,
		linux-rdma@vger.kernel.org
Description:

		=============== ===============================================
		board_id:	(RO) Manufacturing board id

		config:		(RO) Report the configuration for this PF

		qp_per_vf:	(RO) Queue pairs per virtual function.

		max_vf:		(RO) Max virtual functions

		cq_per_vf:	(RO) Completion queue per virtual function

		iface:		(RO) Shows which network interface this usNIC
				entry is associated to (visible with ifconfig).
		=============== ===============================================

What:		/sys/class/infiniband/usnic_X/qpn/summary
What:		/sys/class/infiniband/usnic_X/qpn/context
Date:		Sep, 2013
KernelVersion:	v3.14
Contact:	Christian Benvenuti <benve@cisco.com>,
		Dave Goodell <dgoodell@cisco.com>,
		linux-rdma@vger.kernel.org
Description:
		[to be documented]

sysfs interface for Emulex RoCE HCA Driver
------------------------------------------

What:		/sys/class/infiniband/ocrdmaX/hw_rev
Date:		Feb, 2014
KernelVersion:	v3.14
Description:
		hw_rev:		(RO) Hardware revision number

What:		/sys/class/infiniband/ocrdmaX/hca_type
Date:		Jun, 2014
KernelVersion:	v3.16
Contact:	linux-rdma@vger.kernel.org
Description:
		hca_type:	(RO) Display FW version

sysfs interface for Intel Omni-Path driver (HFI1)
-------------------------------------------------

What:		/sys/class/infiniband/hfi1_X/hw_rev
What:		/sys/class/infiniband/hfi1_X/board_id
What:		/sys/class/infiniband/hfi1_X/nctxts
What:		/sys/class/infiniband/hfi1_X/serial
What:		/sys/class/infiniband/hfi1_X/chip_reset
What:		/sys/class/infiniband/hfi1_X/boardversion
What:		/sys/class/infiniband/hfi1_X/nfreectxts
What:		/sys/class/infiniband/hfi1_X/tempsense
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== =============================================
		hw_rev:		(RO) Hardware revision number

		board_id:	(RO) Manufacturing board id

		nctxts:		(RO) Total contexts available.

		serial:		(RO) Board serial number

		chip_reset:	(WO) Write "reset" to this file to reset the
				chip if possible. Only allowed if no user
				contexts are open that use chip resources.

		boardversion:	(RO) Human readable board info

		nfreectxts:	(RO) The number of free user ports (contexts)
				available.

		tempsense:	(RO) Thermal sense information
		=============== =============================================

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_prescan
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		Per-port congestion control.

		=============== ================================================
		cc_table_bin	(RO) CCA tables used by PSM2 Congestion control
				table size followed by table entries. Binary
				attribute.

		cc_settings_bin (RO) Congestion settings: port control, control
				map and an array of 16 entries for the
				congestion entries - increase, timer, event log
				trigger threshold and the minimum injection rate
				delay. Binary attribute.

		cc_prescan	(RW) enable prescanning for faster BECN
				response. Write "on" to enable and "off" to
				disable.
		=============== ================================================

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>/vl2mtu/[0-15]
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===================================================
		sc2vl/:		(RO) 32 files (0 - 31) used to translate sl->vl

		sl2sc/:		(RO) 32 files (0 - 31) used to translate sl->sc

		vl2mtu/:	(RO) 16 files (0 - 15) used to determine MTU for vl
		=============== ===================================================

What:		/sys/class/infiniband/hfi1_X/sdma_<N>/cpu_list
What:		/sys/class/infiniband/hfi1_X/sdma_<N>/vl
Date:		Sept, 2016
KernelVersion:	v4.8
Contact:	linux-rdma@vger.kernel.org
Description:
		sdma<N>/ contains one directory per sdma engine (0 - 15)

		=============== ==============================================
		cpu_list:	(RW) List of cpus for user-process to sdma
				engine assignment.

		vl:		(RO) Displays the virtual lane (vl) the sdma
				engine maps to.
		=============== ==============================================

		This interface gives the user control on the affinity settings
		for the device. As an example, to set an sdma engine irq
		affinity and thread affinity of a user processes to use the
		sdma engine, which is "near" in terms of NUMA configuration, or
		physical cpu location, the user will do::

		  echo "3" > /proc/irq/<N>/smp_affinity_list
		  echo "4-7" > /sys/devices/.../sdma3/cpu_list
		  cat /sys/devices/.../sdma3/vl
		  0
		  echo "8" > /proc/irq/<M>/smp_affinity_list
		  echo "9-12" > /sys/devices/.../sdma4/cpu_list
		  cat /sys/devices/.../sdma4/vl
		  1

		to make sure that when a process runs on cpus 4,5,6, or 7, and
		uses vl=0, then sdma engine 3 is selected by the driver, and
		also the interrupt of the sdma engine 3 is steered to cpu 3.
		Similarly, when a process runs on cpus 9,10,11, or 12 and sets
		vl=1, then engine 4 will be selected and the irq of the sdma
		engine 4 is steered to cpu 8.  This assumes that in the above N
		is the irq number of "sdma3", and M is irq number of "sdma4" in
		the /proc/interrupts file.

sysfs interface for QLogic qedr NIC Driver
------------------------------------------

What:		/sys/class/infiniband/qedrX/hw_rev
What:		/sys/class/infiniband/qedrX/hca_type
Date:		Oct, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ==== ========================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Display HCA type
		=============== ==== ========================

sysfs interface for VMware Paravirtual RDMA driver
--------------------------------------------------

What:		/sys/class/infiniband/vmw_pvrdmaX/hw_rev
What:		/sys/class/infiniband/vmw_pvrdmaX/hca_type
What:		/sys/class/infiniband/vmw_pvrdmaX/board_id
Date:		Oct, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ==== =====================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Display PVRDMA manufacturing board ID
		=============== ==== =====================================

sysfs interface for Broadcom NetXtreme-E RoCE driver
----------------------------------------------------

What:		/sys/class/infiniband/bnxt_reX/hw_rev
What:		/sys/class/infiniband/bnxt_reX/hca_type
Date:		Feb, 2017
KernelVersion:	v4.11
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ==== =========================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type
		=============== ==== =========================


code:
rfkill - radio frequency (RF) connector kill switch support

For details to this subsystem look at Documentation/driver-api/rfkill.rst.

For the deprecated ``/sys/class/rfkill/*/claim`` knobs of this interface look in
Documentation/ABI/removed/sysfs-class-rfkill.

What: 		/sys/class/rfkill
Date:		09-Jul-2007
KernelVersion:	v2.6.22
Contact:	linux-wireless@vger.kernel.org,
Description: 	The rfkill class subsystem folder.
		Each registered rfkill driver is represented by an rfkillX
		subfolder (X being an integer >= 0).

What:		/sys/class/rfkill/rfkill[0-9]+/name
Date:		09-Jul-2007
KernelVersion	v2.6.22
Contact:	linux-wireless@vger.kernel.org
Description: 	Name assigned by driver to this key (interface or driver name).
Values: 	arbitrary string.

What: 		/sys/class/rfkill/rfkill[0-9]+/type
Date:		09-Jul-2007
KernelVersion	v2.6.22
Contact:	linux-wireless@vger.kernel.org
Description: 	Driver type string ("wlan", "bluetooth", etc).
Values: 	See include/linux/rfkill.h.

What:		/sys/class/rfkill/rfkill[0-9]+/persistent
Date:		09-Jul-2007
KernelVersion	v2.6.22
Contact:	linux-wireless@vger.kernel.org
Description: 	Whether the soft blocked state is initialised from non-volatile
		storage at startup.
Values: 	A numeric value:

		- 0: false
		- 1: true

What:		/sys/class/rfkill/rfkill[0-9]+/state
Date:		09-Jul-2007
KernelVersion	v2.6.22
Contact:	linux-wireless@vger.kernel.org
Description: 	Current state of the transmitter.
		This file was scheduled to be removed in 2014, but due to its
		large number of users it will be sticking around for a bit
		longer. Despite it being marked as stable, the newer "hard" and
		"soft" interfaces should be preferred, since it is not possible
		to express the 'soft and hard block' state of the rfkill driver
		through this interface. There will likely be another attempt to
		remove it in the future.
Values: 	A numeric value.

		0: RFKILL_STATE_SOFT_BLOCKED
			transmitter is turned off by software
		1: RFKILL_STATE_UNBLOCKED
			transmitter is (potentially) active
		2: RFKILL_STATE_HARD_BLOCKED
			transmitter is forced off by something outside of
			the driver's control.

What:		/sys/class/rfkill/rfkill[0-9]+/hard
Date:		12-March-2010
KernelVersion	v2.6.34
Contact:	linux-wireless@vger.kernel.org
Description: 	Current hardblock state. This file is read only.
Values: 	A numeric value.

		0: inactive
			The transmitter is (potentially) active.
		1: active
			The transmitter is forced off by something outside of
			the driver's control.

What:		/sys/class/rfkill/rfkill[0-9]+/soft
Date:		12-March-2010
KernelVersion	v2.6.34
Contact:	linux-wireless@vger.kernel.org
Description:	Current softblock state. This file is read and write.
Values: 	A numeric value.

		0: inactive
			The transmitter is (potentially) active.

		1: active
			The transmitter is turned off by software.


code:
What:		/sys/class/tpm/tpmX/device/
Date:		April 2005
KernelVersion:	2.6.12
Contact:	linux-integrity@vger.kernel.org
Description:	The device/ directory under a specific TPM instance exposes
		the properties of that TPM chip

What:		/sys/class/tpm/tpmX/device/active
Date:		April 2006
KernelVersion:	2.6.17
Contact:	linux-integrity@vger.kernel.org
Description:	The "active" property prints a '1' if the TPM chip is accepting
		commands. An inactive TPM chip still contains all the state of
		an active chip (Storage Root Key, NVRAM, etc), and can be
		visible to the OS, but will only accept a restricted set of
		commands. See the TPM Main Specification part 2, Structures,
		section 17 for more information on which commands are
		available.

What:		/sys/class/tpm/tpmX/device/cancel
Date:		June 2005
KernelVersion:	2.6.13
Contact:	linux-integrity@vger.kernel.org
Description:	The "cancel" property allows you to cancel the currently
		pending TPM command. Writing any value to cancel will call the
		TPM vendor specific cancel operation.

What:		/sys/class/tpm/tpmX/device/caps
Date:		April 2005
KernelVersion:	2.6.12
Contact:	linux-integrity@vger.kernel.org
Description:	The "caps" property contains TPM manufacturer and version info.

		Example output::

		  Manufacturer: 0x53544d20
		  TCG version: 1.2
		  Firmware version: 8.16

		Manufacturer is a hex dump of the 4 byte manufacturer info
		space in a TPM. TCG version shows the TCG TPM spec level that
		the chip supports. Firmware version is that of the chip and
		is manufacturer specific.

What:		/sys/class/tpm/tpmX/device/durations
Date:		March 2011
KernelVersion:	3.1
Contact:	linux-integrity@vger.kernel.org
Description:	The "durations" property shows the 3 vendor-specific values
		used to wait for a short, medium and long TPM command. All
		TPM commands are categorized as short, medium or long in
		execution time, so that the driver doesn't have to wait
		any longer than necessary before starting to poll for a
		result.

		Example output::

		  3015000 4508000 180995000 [original]

		Here the short, medium and long durations are displayed in
		usecs. "[original]" indicates that the values are displayed
		unmodified from when they were queried from the chip.
		Durations can be modified in the case where a buggy chip
		reports them in msec instead of usec and they need to be
		scaled to be displayed in usecs. In this case "[adjusted]"
		will be displayed in place of "[original]".

What:		/sys/class/tpm/tpmX/device/enabled
Date:		April 2006
KernelVersion:	2.6.17
Contact:	linux-integrity@vger.kernel.org
Description:	The "enabled" property prints a '1' if the TPM chip is enabled,
		meaning that it should be visible to the OS. This property
		may be visible but produce a '0' after some operation that
		disables the TPM.

What:		/sys/class/tpm/tpmX/device/owned
Date:		April 2006
KernelVersion:	2.6.17
Contact:	linux-integrity@vger.kernel.org
Description:	The "owned" property produces a '1' if the TPM_TakeOwnership
		ordinal has been executed successfully in the chip. A '0'
		indicates that ownership hasn't been taken.

What:		/sys/class/tpm/tpmX/device/pcrs
Date:		April 2005
KernelVersion:	2.6.12
Contact:	linux-integrity@vger.kernel.org
Description:	The "pcrs" property will dump the current value of all Platform
		Configuration Registers in the TPM. Note that since these
		values may be constantly changing, the output is only valid
		for a snapshot in time.

		Example output::

		  PCR-00: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
		  PCR-01: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
		  PCR-02: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
		  PCR-03: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
		  PCR-04: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
		  ...

		The number of PCRs and hex bytes needed to represent a PCR
		value will vary depending on TPM chip version. For TPM 1.1 and
		1.2 chips, PCRs represent SHA-1 hashes, which are 20 bytes
		long. Use the "caps" property to determine TPM version.

What:		/sys/class/tpm/tpmX/device/pubek
Date:		April 2005
KernelVersion:	2.6.12
Contact:	linux-integrity@vger.kernel.org
Description:	The "pubek" property will return the TPM's public endorsement
		key if possible. If the TPM has had ownership established and
		is version 1.2, the pubek will not be available without the
		owner's authorization. Since the TPM driver doesn't store any
		secrets, it can't authorize its own request for the pubek,
		making it unaccessible. The public endorsement key is gener-
		ated at TPM manufacture time and exists for the life of the
		chip.

		Example output::

		  Algorithm: 00 00 00 01
		  Encscheme: 00 03
		  Sigscheme: 00 01
		  Parameters: 00 00 08 00 00 00 00 02 00 00 00 00
		  Modulus length: 256
		  Modulus:
		  B4 76 41 82 C9 20 2C 10 18 40 BC 8B E5 44 4C 6C
		  3A B2 92 0C A4 9B 2A 83 EB 5C 12 85 04 48 A0 B6
		  1E E4 81 84 CE B2 F2 45 1C F0 85 99 61 02 4D EB
		  86 C4 F7 F3 29 60 52 93 6B B2 E5 AB 8B A9 09 E3
		  D7 0E 7D CA 41 BF 43 07 65 86 3C 8C 13 7A D0 8B
		  82 5E 96 0B F8 1F 5F 34 06 DA A2 52 C1 A9 D5 26
		  0F F4 04 4B D9 3F 2D F2 AC 2F 74 64 1F 8B CD 3E
		  1E 30 38 6C 70 63 69 AB E2 50 DF 49 05 2E E1 8D
		  6F 78 44 DA 57 43 69 EE 76 6C 38 8A E9 8E A3 F0
		  A7 1F 3C A8 D0 12 15 3E CA 0E BD FA 24 CD 33 C6
		  47 AE A4 18 83 8E 22 39 75 93 86 E6 FD 66 48 B6
		  10 AD 94 14 65 F9 6A 17 78 BD 16 53 84 30 BF 70
		  E0 DC 65 FD 3C C6 B0 1E BF B9 C1 B5 6C EF B1 3A
		  F8 28 05 83 62 26 11 DC B4 6B 5A 97 FF 32 26 B6
		  F7 02 71 CF 15 AE 16 DD D1 C1 8E A8 CF 9B 50 7B
		  C3 91 FF 44 1E CF 7C 39 FE 17 77 21 20 BD CE 9B

		Possible values::

		  Algorithm:	TPM_ALG_RSA			(1)
		  Encscheme:	TPM_ES_RSAESPKCSv15		(2)
				TPM_ES_RSAESOAEP_SHA1_MGF1	(3)
		  Sigscheme:	TPM_SS_NONE			(1)
		  Parameters, a byte string of 3 u32 values:
			Key Length (bits):	00 00 08 00	(2048)
			Num primes:		00 00 00 02	(2)
			Exponent Size:		00 00 00 00	(0 means the
								 default exp)
		  Modulus Length: 256 (bytes)
		  Modulus:	The 256 byte Endorsement Key modulus

What:		/sys/class/tpm/tpmX/device/temp_deactivated
Date:		April 2006
KernelVersion:	2.6.17
Contact:	linux-integrity@vger.kernel.org
Description:	The "temp_deactivated" property returns a '1' if the chip has
		been temporarily deactivated, usually until the next power
		cycle. Whether a warm boot (reboot) will clear a TPM chip
		from a temp_deactivated state is platform specific.

What:		/sys/class/tpm/tpmX/device/timeouts
Date:		March 2011
KernelVersion:	3.1
Contact:	linux-integrity@vger.kernel.org
Description:	The "timeouts" property shows the 4 vendor-specific values
		for the TPM's interface spec timeouts. The use of these
		timeouts is defined by the TPM interface spec that the chip
		conforms to.

		Example output::

		  750000 750000 750000 750000 [original]

		The four timeout values are shown in usecs, with a trailing
		"[original]" or "[adjusted]" depending on whether the values
		were scaled by the driver to be reported in usec from msecs.

What:		/sys/class/tpm/tpmX/tpm_version_major
Date:		October 2019
KernelVersion:	5.5
Contact:	linux-integrity@vger.kernel.org
Description:	The "tpm_version_major" property shows the TCG spec major version
		implemented by the TPM device.

		Example output::

		  2

What:		/sys/class/tpm/tpmX/pcr-<H>/<N>
Date:		March 2021
KernelVersion:	5.12
Contact:	linux-integrity@vger.kernel.org
Description:	produces output in compact hex representation for PCR
		number N from hash bank H.  N is the numeric value of
		the PCR number and H is the crypto string
		representation of the hash

		Example output::

		  cat /sys/class/tpm/tpm0/pcr-sha256/7
		  2ED93F199692DC6788EFA6A1FE74514AB9760B2A6CEEAEF6C808C13E4ABB0D42


code:
What:		/sys/class/ubi/
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		The ubi/ class sub-directory belongs to the UBI subsystem and
		provides general UBI information, per-UBI device information
		and per-UBI volume information.

What:		/sys/class/ubi/version
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		This file contains version of the latest supported UBI on-media
		format. Currently it is 1, and there is no plan to change this.
		However, if in the future UBI needs on-flash format changes
		which cannot be done in a compatible manner, a new format
		version will be added. So this is a mechanism for possible
		future backward-compatible (but forward-incompatible)
		improvements.

What:		/sys/class/ubiX/
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		The /sys/class/ubi0, /sys/class/ubi1, etc directories describe
		UBI devices (UBI device 0, 1, etc). They contain general UBI
		device information and per UBI volume information (each UBI
		device may have many UBI volumes)

What:		/sys/class/ubi/ubiX/avail_eraseblocks
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Amount of available logical eraseblock. For example, one may
		create a new UBI volume which has this amount of logical
		eraseblocks.

What:		/sys/class/ubi/ubiX/bad_peb_count
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Count of bad physical eraseblocks on the underlying MTD device.

What:		/sys/class/ubi/ubiX/bgt_enabled
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Contains ASCII "0\n" if the UBI background thread is disabled,
		and ASCII "1\n" if it is enabled.

What:		/sys/class/ubi/ubiX/dev
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Major and minor numbers of the character device corresponding
		to this UBI device (in <major>:<minor> format).

What:		/sys/class/ubi/ubiX/eraseblock_size
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Maximum logical eraseblock size this UBI device may provide. UBI
		volumes may have smaller logical eraseblock size because of their
		alignment.

What:		/sys/class/ubi/ubiX/max_ec
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Maximum physical eraseblock erase counter value.

What:		/sys/class/ubi/ubiX/max_vol_count
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Maximum number of volumes which this UBI device may have.

What:		/sys/class/ubi/ubiX/min_io_size
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Minimum input/output unit size. All the I/O may only be done
		in fractions of the contained number.

What:		/sys/class/ubi/ubiX/mtd_num
Date:		January 2008
KernelVersion:	2.6.25
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Number of the underlying MTD device.

What:		/sys/class/ubi/ubiX/reserved_for_bad
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Number of physical eraseblocks reserved for bad block handling.

What:		/sys/class/ubi/ubiX/ro_mode
Date:		April 2016
KernelVersion:	4.7
Contact:	linux-mtd@lists.infradead.org
Description:
		Contains ASCII "1\n" if the read-only flag is set on this
		device, and "0\n" if it is cleared. UBI devices mark themselves
		as read-only when they detect an unrecoverable error.

What:		/sys/class/ubi/ubiX/total_eraseblocks
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Total number of good (not marked as bad) physical eraseblocks on
		the underlying MTD device.

What:		/sys/class/ubi/ubiX/volumes_count
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Count of volumes on this UBI device.

What:		/sys/class/ubi/ubiX/ubiX_Y/
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		The /sys/class/ubi/ubiX/ubiX_0/, /sys/class/ubi/ubiX/ubiX_1/,
		etc directories describe UBI volumes on UBI device X (volumes
		0, 1, etc).

What:		/sys/class/ubi/ubiX/ubiX_Y/alignment
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Volume alignment - the value the logical eraseblock size of
		this volume has to be aligned on. For example, 2048 means that
		logical eraseblock size is multiple of 2048. In other words,
		volume logical eraseblock size is UBI device logical eraseblock
		size aligned to the alignment value.

What:		/sys/class/ubi/ubiX/ubiX_Y/corrupted
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Contains ASCII "0\n" if the UBI volume is OK, and ASCII "1\n"
		if it is corrupted (e.g., due to an interrupted volume update).

What:		/sys/class/ubi/ubiX/ubiX_Y/data_bytes
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		The amount of data this volume contains. This value makes sense
		only for static volumes, and for dynamic volume it equivalent
		to the total volume size in bytes.

What:		/sys/class/ubi/ubiX/ubiX_Y/dev
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Major and minor numbers of the character device corresponding
		to this UBI volume (in <major>:<minor> format).

What:		/sys/class/ubi/ubiX/ubiX_Y/name
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Volume name.

What:		/sys/class/ubi/ubiX/ubiX_Y/reserved_ebs
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Count of physical eraseblock reserved for this volume.
		Equivalent to the volume size in logical eraseblocks.

What:		/sys/class/ubi/ubiX/ubiX_Y/type
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Volume type. Contains ASCII "dynamic\n" for dynamic volumes and
		"static\n" for static volumes.

What:		/sys/class/ubi/ubiX/ubiX_Y/upd_marker
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Contains ASCII "0\n" if the update marker is not set for this
		volume, and "1\n" if it is set. The update marker is set when
		volume update starts, and cleaned when it ends. So the presence
		of the update marker indicates that the volume is being updated
		at the moment of the update was interrupted. The later may be
		checked using the "corrupted" sysfs file.

What:		/sys/class/ubi/ubiX/ubiX_Y/usable_eb_size
Date:		July 2006
KernelVersion:	2.6.22
Contact:	Artem Bityutskiy <dedekind@infradead.org>
Description:
		Logical eraseblock size of this volume. Equivalent to logical
		eraseblock size of the device aligned on the volume alignment
		value.


code:
What:		/sys/class/udc/<udc>/a_alt_hnp_support
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates if an OTG A-Host supports HNP at an alternate port.
Users:

What:		/sys/class/udc/<udc>/a_hnp_support
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates if an OTG A-Host supports HNP at this port.
Users:

What:		/sys/class/udc/<udc>/b_hnp_enable
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates if an OTG A-Host enabled HNP support.
Users:

What:		/sys/class/udc/<udc>/current_speed
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates the current negotiated speed at this port.
Users:

What:		/sys/class/udc/<udc>/is_a_peripheral
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates that this port is the default Host on an OTG session
		but HNP was used to switch roles.
Users:

What:		/sys/class/udc/<udc>/is_otg
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates that this port support OTG.
Users:

What:		/sys/class/udc/<udc>/maximum_speed
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates the maximum USB speed supported by this port.
Users:

What:		/sys/class/udc/<udc>/soft_connect
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Allows users to disconnect data pullup resistors thus causing a
		logical disconnection from the USB Host.
Users:

What:		/sys/class/udc/<udc>/srp
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Allows users to manually start Session Request Protocol.
Users:

What:		/sys/class/udc/<udc>/state
Date:		June 2011
KernelVersion:	3.1
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Indicates current state of the USB Device Controller. Valid
		states are: 'not-attached', 'attached', 'powered',
		'reconnecting', 'unauthenticated', 'default', 'addressed',
		'configured', and 'suspended'; however not all USB Device
		Controllers support reporting all states.
Users:

What:		/sys/class/udc/<udc>/function
Date:		June 2017
KernelVersion:	4.13
Contact:	Felipe Balbi <balbi@kernel.org>
Description:
		Prints out name of currently running USB Gadget Driver.
Users: