@@ -1437,180 +1437,6 @@ Description:
14371437 If avail_wb_buff < wb_flush_threshold, it indicates that WriteBooster buffer needs to
14381438 be flushed, otherwise it is not necessary.
14391439
1440- What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
1441- What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_version
1442- Date: June 2021
1443- Contact: Daejun Park <daejun7.park@samsung.com>
1444- Description: This entry shows the HPB specification version.
1445- The full information about the descriptor can be found in the UFS
1446- HPB (Host Performance Booster) Extension specifications.
1447- Example: version 1.2.3 = 0123h
1448-
1449- The file is read only.
1450-
1451- What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
1452- What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_control
1453- Date: June 2021
1454- Contact: Daejun Park <daejun7.park@samsung.com>
1455- Description: This entry shows an indication of the HPB control mode.
1456- 00h: Host control mode
1457- 01h: Device control mode
1458-
1459- The file is read only.
1460-
1461- What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
1462- What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_region_size
1463- Date: June 2021
1464- Contact: Daejun Park <daejun7.park@samsung.com>
1465- Description: This entry shows the bHPBRegionSize which can be calculated
1466- as in the following (in bytes):
1467- HPB Region size = 512B * 2^bHPBRegionSize
1468-
1469- The file is read only.
1470-
1471- What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
1472- What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_number_lu
1473- Date: June 2021
1474- Contact: Daejun Park <daejun7.park@samsung.com>
1475- Description: This entry shows the maximum number of HPB LU supported by
1476- the device.
1477- 00h: HPB is not supported by the device.
1478- 01h ~ 20h: Maximum number of HPB LU supported by the device
1479-
1480- The file is read only.
1481-
1482- What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
1483- What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_subregion_size
1484- Date: June 2021
1485- Contact: Daejun Park <daejun7.park@samsung.com>
1486- Description: This entry shows the bHPBSubRegionSize, which can be
1487- calculated as in the following (in bytes) and shall be a multiple of
1488- logical block size:
1489- HPB Sub-Region size = 512B x 2^bHPBSubRegionSize
1490- bHPBSubRegionSize shall not exceed bHPBRegionSize.
1491-
1492- The file is read only.
1493-
1494- What: /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_max_active_regions
1495- What: /sys/bus/platform/devices/*.ufs/geometry_descriptor/hpb_max_active_regions
1496- Date: June 2021
1497- Contact: Daejun Park <daejun7.park@samsung.com>
1498- Description: This entry shows the maximum number of active HPB regions that
1499- is supported by the device.
1500-
1501- The file is read only.
1502-
1503- What: /sys/class/scsi_device/*/device/unit_descriptor/hpb_lu_max_active_regions
1504- Date: June 2021
1505- Contact: Daejun Park <daejun7.park@samsung.com>
1506- Description: This entry shows the maximum number of HPB regions assigned to
1507- the HPB logical unit.
1508-
1509- The file is read only.
1510-
1511- What: /sys/class/scsi_device/*/device/unit_descriptor/hpb_pinned_region_start_offset
1512- Date: June 2021
1513- Contact: Daejun Park <daejun7.park@samsung.com>
1514- Description: This entry shows the start offset of HPB pinned region.
1515-
1516- The file is read only.
1517-
1518- What: /sys/class/scsi_device/*/device/unit_descriptor/hpb_number_pinned_regions
1519- Date: June 2021
1520- Contact: Daejun Park <daejun7.park@samsung.com>
1521- Description: This entry shows the number of HPB pinned regions assigned to
1522- the HPB logical unit.
1523-
1524- The file is read only.
1525-
1526- What: /sys/class/scsi_device/*/device/hpb_stats/hit_cnt
1527- Date: June 2021
1528- Contact: Daejun Park <daejun7.park@samsung.com>
1529- Description: This entry shows the number of reads that changed to HPB read.
1530-
1531- The file is read only.
1532-
1533- What: /sys/class/scsi_device/*/device/hpb_stats/miss_cnt
1534- Date: June 2021
1535- Contact: Daejun Park <daejun7.park@samsung.com>
1536- Description: This entry shows the number of reads that cannot be changed to
1537- HPB read.
1538-
1539- The file is read only.
1540-
1541- What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_noti_cnt
1542- Date: June 2021
1543- Contact: Daejun Park <daejun7.park@samsung.com>
1544- Description: This entry shows the number of response UPIUs that has
1545- recommendations for activating sub-regions and/or inactivating region.
1546-
1547- The file is read only.
1548-
1549- What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_active_cnt
1550- Date: June 2021
1551- Contact: Daejun Park <daejun7.park@samsung.com>
1552- Description: For the HPB device control mode, this entry shows the number of
1553- active sub-regions recommended by response UPIUs. For the HPB host control
1554- mode, this entry shows the number of active sub-regions recommended by the
1555- HPB host control mode heuristic algorithm.
1556-
1557- The file is read only.
1558-
1559- What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_inactive_cnt
1560- Date: June 2021
1561- Contact: Daejun Park <daejun7.park@samsung.com>
1562- Description: For the HPB device control mode, this entry shows the number of
1563- inactive regions recommended by response UPIUs. For the HPB host control
1564- mode, this entry shows the number of inactive regions recommended by the
1565- HPB host control mode heuristic algorithm.
1566-
1567- The file is read only.
1568-
1569- What: /sys/class/scsi_device/*/device/hpb_stats/map_req_cnt
1570- Date: June 2021
1571- Contact: Daejun Park <daejun7.park@samsung.com>
1572- Description: This entry shows the number of read buffer commands for
1573- activating sub-regions recommended by response UPIUs.
1574-
1575- The file is read only.
1576-
1577- What: /sys/class/scsi_device/*/device/hpb_params/requeue_timeout_ms
1578- Date: June 2021
1579- Contact: Daejun Park <daejun7.park@samsung.com>
1580- Description: This entry shows the requeue timeout threshold for write buffer
1581- command in ms. The value can be changed by writing an integer to
1582- this entry.
1583-
1584- What: /sys/bus/platform/drivers/ufshcd/*/attributes/max_data_size_hpb_single_cmd
1585- What: /sys/bus/platform/devices/*.ufs/attributes/max_data_size_hpb_single_cmd
1586- Date: June 2021
1587- Contact: Daejun Park <daejun7.park@samsung.com>
1588- Description: This entry shows the maximum HPB data size for using a single HPB
1589- command.
1590-
1591- === ========
1592- 00h 4KB
1593- 01h 8KB
1594- 02h 12KB
1595- ...
1596- FFh 1024KB
1597- === ========
1598-
1599- The file is read only.
1600-
1601- What: /sys/bus/platform/drivers/ufshcd/*/flags/hpb_enable
1602- What: /sys/bus/platform/devices/*.ufs/flags/hpb_enable
1603- Date: June 2021
1604- Contact: Daejun Park <daejun7.park@samsung.com>
1605- Description: This entry shows the status of HPB.
1606-
1607- == ============================
1608- 0 HPB is not enabled.
1609- 1 HPB is enabled
1610- == ============================
1611-
1612- The file is read only.
1613-
16141440Contact: Daniil Lunev <dlunev@chromium.org>
16151441What: /sys/bus/platform/drivers/ufshcd/*/capabilities/
16161442What: /sys/bus/platform/devices/*.ufs/capabilities/
@@ -1648,76 +1474,3 @@ Description: Indicates status of Write Booster.
16481474
16491475 The file is read only.
16501476
1651- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/activation_thld
1652- Date: February 2021
1653- Contact: Avri Altman <avri.altman@wdc.com>
1654- Description: In host control mode, reads are the major source of activation
1655- trials. Once this threshold hs met, the region is added to the
1656- "to-be-activated" list. Since we reset the read counter upon
1657- write, this include sending a rb command updating the region
1658- ppn as well.
1659-
1660- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/normalization_factor
1661- Date: February 2021
1662- Contact: Avri Altman <avri.altman@wdc.com>
1663- Description: In host control mode, we think of the regions as "buckets".
1664- Those buckets are being filled with reads, and emptied on write.
1665- We use entries_per_srgn - the amount of blocks in a subregion as
1666- our bucket size. This applies because HPB1.0 only handles
1667- single-block reads. Once the bucket size is crossed, we trigger
1668- a normalization work - not only to avoid overflow, but mainly
1669- because we want to keep those counters normalized, as we are
1670- using those reads as a comparative score, to make various decisions.
1671- The normalization is dividing (shift right) the read counter by
1672- the normalization_factor. If during consecutive normalizations
1673- an active region has exhausted its reads - inactivate it.
1674-
1675- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/eviction_thld_enter
1676- Date: February 2021
1677- Contact: Avri Altman <avri.altman@wdc.com>
1678- Description: Region deactivation is often due to the fact that eviction took
1679- place: A region becomes active at the expense of another. This is
1680- happening when the max-active-regions limit has been crossed.
1681- In host mode, eviction is considered an extreme measure. We
1682- want to verify that the entering region has enough reads, and
1683- the exiting region has much fewer reads. eviction_thld_enter is
1684- the min reads that a region must have in order to be considered
1685- a candidate for evicting another region.
1686-
1687- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/eviction_thld_exit
1688- Date: February 2021
1689- Contact: Avri Altman <avri.altman@wdc.com>
1690- Description: Same as above for the exiting region. A region is considered to
1691- be a candidate for eviction only if it has fewer reads than
1692- eviction_thld_exit.
1693-
1694- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/read_timeout_ms
1695- Date: February 2021
1696- Contact: Avri Altman <avri.altman@wdc.com>
1697- Description: In order not to hang on to "cold" regions, we inactivate
1698- a region that has no READ access for a predefined amount of
1699- time - read_timeout_ms. If read_timeout_ms has expired, and the
1700- region is dirty, it is less likely that we can make any use of
1701- HPB reading it so we inactivate it. Still, deactivation has
1702- its overhead, and we may still benefit from HPB reading this
1703- region if it is clean - see read_timeout_expiries.
1704-
1705- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/read_timeout_expiries
1706- Date: February 2021
1707- Contact: Avri Altman <avri.altman@wdc.com>
1708- Description: If the region read timeout has expired, but the region is clean,
1709- just re-wind its timer for another spin. Do that as long as it
1710- is clean and did not exhaust its read_timeout_expiries threshold.
1711-
1712- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/timeout_polling_interval_ms
1713- Date: February 2021
1714- Contact: Avri Altman <avri.altman@wdc.com>
1715- Description: The frequency with which the delayed worker that checks the
1716- read_timeouts is awakened.
1717-
1718- What: /sys/class/scsi_device/*/device/hpb_param_sysfs/inflight_map_req
1719- Date: February 2021
1720- Contact: Avri Altman <avri.altman@wdc.com>
1721- Description: In host control mode the host is the originator of map requests.
1722- To avoid flooding the device with map requests, use a simple throttling
1723- mechanism that limits the number of inflight map requests.
0 commit comments