Merge tag '5.15-rc-cifs-part2' of git://git.samba.org/sfrench/cifs-2.6
[linux-2.6-microblaze.git] / Documentation / ABI / testing / sysfs-driver-ufs
index b4a5d55..ec3a714 100644 (file)
@@ -1298,3 +1298,239 @@ Description:    This node is used to set or display whether UFS WriteBooster is
                (if the platform supports UFSHCD_CAP_CLK_SCALING). For a
                platform that doesn't support UFSHCD_CAP_CLK_SCALING, we can
                disable/enable WriteBooster through this sysfs node.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the HPB specification version.
+               The full information about the descriptor can be found in the UFS
+               HPB (Host Performance Booster) Extension specifications.
+               Example: version 1.2.3 = 0123h
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows an indication of the HPB control mode.
+               00h: Host control mode
+               01h: Device control mode
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the bHPBRegionSize which can be calculated
+               as in the following (in bytes):
+               HPB Region size = 512B * 2^bHPBRegionSize
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the maximum number of HPB LU supported by
+               the device.
+               00h: HPB is not supported by the device.
+               01h ~ 20h: Maximum number of HPB LU supported by the device
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the bHPBSubRegionSize, which can be
+               calculated as in the following (in bytes) and shall be a multiple of
+               logical block size:
+               HPB Sub-Region size = 512B x 2^bHPBSubRegionSize
+               bHPBSubRegionSize shall not exceed bHPBRegionSize.
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_max_active_regions
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the maximum number of active HPB regions that
+               is supported by the device.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/unit_descriptor/hpb_lu_max_active_regions
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the maximum number of HPB regions assigned to
+               the HPB logical unit.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/unit_descriptor/hpb_pinned_region_start_offset
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the start offset of HPB pinned region.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/unit_descriptor/hpb_number_pinned_regions
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of HPB pinned regions assigned to
+               the HPB logical unit.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/hit_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of reads that changed to HPB read.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/miss_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of reads that cannot be changed to
+               HPB read.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/rb_noti_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of response UPIUs that has
+               recommendations for activating sub-regions and/or inactivating region.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/rb_active_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of active sub-regions recommended by
+               response UPIUs.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/rb_inactive_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of inactive regions recommended by
+               response UPIUs.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_stats/map_req_cnt
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the number of read buffer commands for
+               activating sub-regions recommended by response UPIUs.
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_params/requeue_timeout_ms
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the requeue timeout threshold for write buffer
+               command in ms. The value can be changed by writing an integer to
+               this entry.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_size_hpb_single_cmd
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the maximum HPB data size for using a single HPB
+               command.
+
+               ===  ========
+               00h  4KB
+               01h  8KB
+               02h  12KB
+               ...
+               FFh  1024KB
+               ===  ========
+
+               The file is read only.
+
+What:          /sys/bus/platform/drivers/ufshcd/*/flags/hpb_enable
+Date:          June 2021
+Contact:       Daejun Park <daejun7.park@samsung.com>
+Description:   This entry shows the status of HPB.
+
+               == ============================
+               0  HPB is not enabled.
+               1  HPB is enabled
+               == ============================
+
+               The file is read only.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/activation_thld
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   In host control mode, reads are the major source of activation
+               trials.  Once this threshold hs met, the region is added to the
+               "to-be-activated" list.  Since we reset the read counter upon
+               write, this include sending a rb command updating the region
+               ppn as well.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/normalization_factor
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   In host control mode, we think of the regions as "buckets".
+               Those buckets are being filled with reads, and emptied on write.
+               We use entries_per_srgn - the amount of blocks in a subregion as
+               our bucket size.  This applies because HPB1.0 only handles
+               single-block reads.  Once the bucket size is crossed, we trigger
+               a normalization work - not only to avoid overflow, but mainly
+               because we want to keep those counters normalized, as we are
+               using those reads as a comparative score, to make various decisions.
+               The normalization is dividing (shift right) the read counter by
+               the normalization_factor. If during consecutive normalizations
+               an active region has exhausted its reads - inactivate it.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/eviction_thld_enter
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   Region deactivation is often due to the fact that eviction took
+               place: A region becomes active at the expense of another. This is
+               happening when the max-active-regions limit has been crossed.
+               In host mode, eviction is considered an extreme measure. We
+               want to verify that the entering region has enough reads, and
+               the exiting region has much fewer reads.  eviction_thld_enter is
+               the min reads that a region must have in order to be considered
+               a candidate for evicting another region.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/eviction_thld_exit
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   Same as above for the exiting region. A region is considered to
+               be a candidate for eviction only if it has fewer reads than
+               eviction_thld_exit.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/read_timeout_ms
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   In order not to hang on to "cold" regions, we inactivate
+               a region that has no READ access for a predefined amount of
+               time - read_timeout_ms. If read_timeout_ms has expired, and the
+               region is dirty, it is less likely that we can make any use of
+               HPB reading it so we inactivate it.  Still, deactivation has
+               its overhead, and we may still benefit from HPB reading this
+               region if it is clean - see read_timeout_expiries.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/read_timeout_expiries
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   If the region read timeout has expired, but the region is clean,
+               just re-wind its timer for another spin.  Do that as long as it
+               is clean and did not exhaust its read_timeout_expiries threshold.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/timeout_polling_interval_ms
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   The frequency with which the delayed worker that checks the
+               read_timeouts is awakened.
+
+What:          /sys/class/scsi_device/*/device/hpb_param_sysfs/inflight_map_req
+Date:          February 2021
+Contact:       Avri Altman <avri.altman@wdc.com>
+Description:   In host control mode the host is the originator of map requests.
+               To avoid flooding the device with map requests, use a simple throttling
+               mechanism that limits the number of inflight map requests.