3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-11 17:55:54 +00:00

mempow update

This commit is contained in:
Raziel K. Crowe 2022-09-13 23:14:27 +05:00
parent f23474ff82
commit 8b701010de
12557 changed files with 362597 additions and 200880 deletions

View File

@ -260,6 +260,15 @@ Description:
for discards, and don't read this file. 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 What: /sys/block/<disk>/queue/fua
Date: May 2018 Date: May 2018
Contact: linux-block@vger.kernel.org Contact: linux-block@vger.kernel.org

View File

@ -19,3 +19,13 @@ Description: The file holds the OEM PK Hash value of the endpoint device
read without having the device power on at least once, the file read without having the device power on at least once, the file
will read all 0's. will read all 0's.
Users: Any userspace application or clients interested in device info. 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.

View File

@ -1,7 +1,7 @@
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_health What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_health
Date: June 2018 Date: June 2018
KernelVersion: 4.19 KernelVersion: 4.19
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file shows ASIC health status. The possible values are: Description: This file shows ASIC health status. The possible values are:
0 - health failed, 2 - health OK, 3 - ASIC in booting state. 0 - health failed, 2 - health OK, 3 - ASIC in booting state.
@ -11,7 +11,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld1_version
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld2_version What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld2_version
Date: June 2018 Date: June 2018
KernelVersion: 4.19 KernelVersion: 4.19
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show with which CPLD versions have been burned Description: These files show with which CPLD versions have been burned
on carrier and switch boards. on carrier and switch boards.
@ -20,7 +20,7 @@ Description: These files show with which CPLD versions have been burned
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/fan_dir What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/fan_dir
Date: December 2018 Date: December 2018
KernelVersion: 5.0 KernelVersion: 5.0
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file shows the system fans direction: Description: This file shows the system fans direction:
forward direction - relevant bit is set 0; forward direction - relevant bit is set 0;
reversed direction - relevant bit is set 1. reversed direction - relevant bit is set 1.
@ -30,7 +30,7 @@ Description: This file shows the system fans direction:
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version
Date: November 2018 Date: November 2018
KernelVersion: 5.0 KernelVersion: 5.0
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show with which CPLD versions have been burned Description: These files show with which CPLD versions have been burned
on LED or Gearbox board. on LED or Gearbox board.
@ -39,7 +39,7 @@ Description: These files show with which CPLD versions have been burned
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable
Date: November 2018 Date: November 2018
KernelVersion: 5.0 KernelVersion: 5.0
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files enable and disable the access to the JTAG domain. Description: These files enable and disable the access to the JTAG domain.
By default access to the JTAG domain is disabled. By default access to the JTAG domain is disabled.
@ -48,7 +48,7 @@ Description: These files enable and disable the access to the JTAG domain.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/select_iio What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/select_iio
Date: June 2018 Date: June 2018
KernelVersion: 4.19 KernelVersion: 4.19
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file allows iio devices selection. Description: This file allows iio devices selection.
Attribute select_iio can be written with 0 or with 1. It Attribute select_iio can be written with 0 or with 1. It
@ -62,7 +62,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/psu1_on
/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pwr_down /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pwr_down
Date: June 2018 Date: June 2018
KernelVersion: 4.19 KernelVersion: 4.19
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files allow asserting system power cycling, switching Description: These files allow asserting system power cycling, switching
power supply units on and off and system's main power domain power supply units on and off and system's main power domain
shutdown. shutdown.
@ -89,7 +89,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_short_pb
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_reset What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_reset
Date: June 2018 Date: June 2018
KernelVersion: 4.19 KernelVersion: 4.19
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show the system reset cause, as following: power Description: These files show the system reset cause, as following: power
auxiliary outage or power refresh, ASIC thermal shutdown, halt, auxiliary outage or power refresh, ASIC thermal shutdown, halt,
hotswap, watchdog, firmware reset, long press power button, hotswap, watchdog, firmware reset, long press power button,
@ -106,7 +106,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_system
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_voltmon_upgrade_fail What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_voltmon_upgrade_fail
Date: November 2018 Date: November 2018
KernelVersion: 5.0 KernelVersion: 5.0
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show the system reset cause, as following: ComEx Description: These files show the system reset cause, as following: ComEx
power fail, reset from ComEx, system platform reset, reset power fail, reset from ComEx, system platform reset, reset
due to voltage monitor devices upgrade failure, due to voltage monitor devices upgrade failure,
@ -119,7 +119,7 @@ Description: These files show the system reset cause, as following: ComEx
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version
Date: November 2018 Date: November 2018
KernelVersion: 5.0 KernelVersion: 5.0
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show with which CPLD versions have been burned Description: These files show with which CPLD versions have been burned
on LED board. on LED board.
@ -133,7 +133,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sff_wd
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_swb_wd What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_swb_wd
Date: June 2019 Date: June 2019
KernelVersion: 5.3 KernelVersion: 5.3
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show the system reset cause, as following: Description: These files show the system reset cause, as following:
COMEX thermal shutdown; wathchdog power off or reset was derived COMEX thermal shutdown; wathchdog power off or reset was derived
by one of the next components: COMEX, switch board or by Small Form by one of the next components: COMEX, switch board or by Small Form
@ -148,7 +148,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config1
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config2 What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config2
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show system static topology identification Description: These files show system static topology identification
like system's static I2C topology, number and type of FPGA like system's static I2C topology, number and type of FPGA
devices within the system and so on. devices within the system and so on.
@ -161,7 +161,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_soc
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_pwr_off What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_pwr_off
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show the system reset causes, as following: reset Description: These files show the system reset causes, as following: reset
due to AC power failure, reset invoked from software by due to AC power failure, reset invoked from software by
assertion reset signal through CPLD. reset caused by signal assertion reset signal through CPLD. reset caused by signal
@ -173,7 +173,7 @@ Description: These files show the system reset causes, as following: reset
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pcie_asic_reset_dis What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pcie_asic_reset_dis
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file allows to retain ASIC up during PCIe root complex Description: This file allows to retain ASIC up during PCIe root complex
reset, when attribute is set 1. reset, when attribute is set 1.
@ -182,7 +182,7 @@ Description: This file allows to retain ASIC up during PCIe root complex
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/vpd_wp What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/vpd_wp
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file allows to overwrite system VPD hardware write Description: This file allows to overwrite system VPD hardware write
protection when attribute is set 1. protection when attribute is set 1.
@ -191,7 +191,7 @@ Description: This file allows to overwrite system VPD hardware write
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/voltreg_update_status What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/voltreg_update_status
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file exposes the configuration update status of burnable Description: This file exposes the configuration update status of burnable
voltage regulator devices. The status values are as following: voltage regulator devices. The status values are as following:
0 - OK; 1 - CRC failure; 2 = I2C failure; 3 - in progress. 0 - OK; 1 - CRC failure; 2 = I2C failure; 3 - in progress.
@ -201,7 +201,7 @@ Description: This file exposes the configuration update status of burnable
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/ufm_version What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/ufm_version
Date: January 2020 Date: January 2020
KernelVersion: 5.6 KernelVersion: 5.6
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file exposes the firmware version of burnable voltage Description: This file exposes the firmware version of burnable voltage
regulator devices. regulator devices.
@ -217,7 +217,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version_min
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version_min What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version_min
Date: July 2020 Date: July 2020
KernelVersion: 5.9 KernelVersion: 5.9
Contact: Vadim Pasternak <vadimpmellanox.com> Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files show with which CPLD part numbers and minor Description: These files show with which CPLD part numbers and minor
versions have been burned CPLD devices equipped on a versions have been burned CPLD devices equipped on a
system. system.
@ -467,3 +467,78 @@ Description: These files provide the maximum powered required for line card
feeding and line card configuration Id. feeding and line card configuration Id.
The files are read only. The files are read only.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/phy_reset
Date: May 2022
KernelVersion: 5.19
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file allows to reset PHY 88E1548 when attribute is set 0
due to some abnormal PHY behavior.
Expected behavior:
When phy_reset is written 1, all PHY 88E1548 are released
from the reset state, when 0 - are hold in reset state.
The files are read/write.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/mac_reset
Date: May 2022
KernelVersion: 5.19
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file allows to reset ASIC MT52132 when attribute is set 0
due to some abnormal ASIC behavior.
Expected behavior:
When mac_reset is written 1, the ASIC MT52132 is released
from the reset state, when 0 - is hold in reset state.
The files are read/write.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/qsfp_pwr_good
Date: May 2022
KernelVersion: 5.19
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file shows QSFP ports power status. The value is set to 0
when one of any QSFP ports is plugged. The value is set to 1 when
there are no any QSFP ports are plugged.
The possible values are:
0 - Power good, 1 - Not power good.
The files are read only.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic2_health
Date: July 2022
KernelVersion: 5.20
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file shows 2-nd ASIC health status. The possible values are:
0 - health failed, 2 - health OK, 3 - ASIC in booting state.
The file is read only.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_reset
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic2_reset
Date: July 2022
KernelVersion: 5.20
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: These files allow to each of ASICs by writing 1.
The files are write only.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/comm_chnl_ready
Date: July 2022
KernelVersion: 5.20
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: This file is used to indicate remote end (for example BMC) that system
host CPU is ready for sending telemetry data to remote end.
For indication the file should be written 1.
The file is write only.
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config3
Date: January 2020
KernelVersion: 5.6
Contact: Vadim Pasternak <vadimp@nvidia.com>
Description: The file indicates COME module hardware configuration.
The value is pushed by hardware through GPIO pins.
The purpose is to expose some minor BOM changes for the same system SKU.
The file is read only.

View File

@ -38,7 +38,7 @@ What: /sys/module/<MODULENAME>/srcversion
Date: Jun 2005 Date: Jun 2005
Description: Description:
If the module source has MODULE_VERSION, this file will contain If the module source has MODULE_VERSION, this file will contain
the checksum of the the source code. the checksum of the source code.
What: /sys/module/<MODULENAME>/version What: /sys/module/<MODULENAME>/version
Date: Jun 2005 Date: Jun 2005

View File

@ -19,7 +19,7 @@ KernelVersion: 3.13
Description: Description:
The attributes: The attributes:
=========== ============================================== ============ ==============================================
file The path to the backing file for the LUN. file The path to the backing file for the LUN.
Required if LUN is not marked as removable. Required if LUN is not marked as removable.
ro Flag specifying access to the LUN shall be ro Flag specifying access to the LUN shall be
@ -32,4 +32,10 @@ Description:
being a CD-ROM. being a CD-ROM.
nofua Flag specifying that FUA flag nofua Flag specifying that FUA flag
in SCSI WRITE(10,12) in SCSI WRITE(10,12)
=========== ============================================== forced_eject This write-only file is useful only when
the function is active. It causes the backing
file to be forcibly detached from the LUN,
regardless of whether the host has allowed it.
Any non-zero number of bytes written will
result in ejection.
============ ==============================================

View File

@ -7,6 +7,7 @@ Description: UVC function directory
streaming_maxburst 0..15 (ss only) streaming_maxburst 0..15 (ss only)
streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss) streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss)
streaming_interval 1..16 streaming_interval 1..16
function_name string [32]
=================== ============================= =================== =============================
What: /config/usb-gadget/gadget/functions/uvc.name/control What: /config/usb-gadget/gadget/functions/uvc.name/control

View File

@ -101,6 +101,15 @@ Description: Specify the size of the DMA transaction when using DMA to read
When the write is finished, the user can read the "data_dma" When the write is finished, the user can read the "data_dma"
blob blob
What: /sys/kernel/debug/habanalabs/hl<n>/dump_razwi_events
Date: Aug 2022
KernelVersion: 5.20
Contact: fkassabri@habana.ai
Description: Dumps all razwi events to dmesg if exist.
After reading the status register of an existing event
the routine will clear the status register.
Usage: cat dump_razwi_events
What: /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations What: /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations
Date: Jan 2021 Date: Jan 2021
KernelVersion: 5.12 KernelVersion: 5.12
@ -121,14 +130,16 @@ Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets I2C device address for I2C transaction that is generated Description: Sets I2C device address for I2C transaction that is generated
by the device's CPU by the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets I2C bus address for I2C transaction that is generated by Description: Sets I2C bus address for I2C transaction that is generated by
the device's CPU the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
Date: Jan 2019 Date: Jan 2019
@ -136,39 +147,60 @@ KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Triggers an I2C transaction that is generated by the device's Description: Triggers an I2C transaction that is generated by the device's
CPU. Writing to this file generates a write transaction while CPU. Writing to this file generates a write transaction while
reading from the file generates a read transaction reading from the file generates a read transaction, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len What: /sys/kernel/debug/habanalabs/hl<n>/i2c_len
Date: Dec 2021 Date: Dec 2021
KernelVersion: 5.17 KernelVersion: 5.17
Contact: obitton@habana.ai Contact: obitton@habana.ai
Description: Sets I2C length in bytes for I2C transaction that is generated by Description: Sets I2C length in bytes for I2C transaction that is generated by
the device's CPU the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets I2C register id for I2C transaction that is generated by Description: Sets I2C register id for I2C transaction that is generated by
the device's CPU the device's CPU, Not available when device is loaded with secured
firmware
What: /sys/kernel/debug/habanalabs/hl<n>/led0 What: /sys/kernel/debug/habanalabs/hl<n>/led0
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets the state of the first S/W led on the device Description: Sets the state of the first S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/habanalabs/hl<n>/led1 What: /sys/kernel/debug/habanalabs/hl<n>/led1
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets the state of the second S/W led on the device Description: Sets the state of the second S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/habanalabs/hl<n>/led2 What: /sys/kernel/debug/habanalabs/hl<n>/led2
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets the state of the third S/W led on the device Description: Sets the state of the third S/W led on the device, Not available
when device is loaded with secured firmware
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
Date: May 2022
KernelVersion: 5.19
Contact: dhirschfeld@habana.ai
Description: Allows the root user to scrub the dram memory. The scrubbing
value can be set using the debugfs file memory_scrub_val.
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub_val
Date: May 2022
KernelVersion: 5.19
Contact: dhirschfeld@habana.ai
Description: The value to which the dram will be set to when the user
scrubs the dram using 'memory_scrub' debugfs file and
the scrubbing value when using module param 'memory_scrub'
What: /sys/kernel/debug/habanalabs/hl<n>/mmu What: /sys/kernel/debug/habanalabs/hl<n>/mmu
Date: Jan 2019 Date: Jan 2019
@ -190,6 +222,30 @@ Description: Check and display page fault or access violation mmu errors for
echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error
cat /sys/kernel/debug/habanalabs/hl0/mmu_error cat /sys/kernel/debug/habanalabs/hl0/mmu_error
What: /sys/kernel/debug/habanalabs/hl<n>/monitor_dump
Date: Mar 2022
KernelVersion: 5.19
Contact: osharabi@habana.ai
Description: Allows the root user to dump monitors status from the device's
protected config space.
This property is a binary blob that contains the result of the
monitors registers dump.
This custom interface is needed (instead of using the generic
Linux user-space PCI mapping) because this space is protected
and cannot be accessed using PCI read.
This interface doesn't support concurrency in the same device.
Only supported on GAUDI.
What: /sys/kernel/debug/habanalabs/hl<n>/monitor_dump_trig
Date: Mar 2022
KernelVersion: 5.19
Contact: osharabi@habana.ai
Description: Triggers dump of monitor data. The value to trigger the operation
must be 1. Triggering the monitor dump operation initiates dump of
current registers values of all monitors.
When the write is finished, the user can read the "monitor_dump"
blob
What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
@ -239,7 +295,7 @@ Description: Displays a list with information about the currently user
to DMA addresses to DMA addresses
What: /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup What: /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup
Date: Aug 2021 Date: Oct 2021
KernelVersion: 5.15 KernelVersion: 5.15
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Allows to search for specific user pointers (user virtual Description: Allows to search for specific user pointers (user virtual

View File

@ -104,6 +104,20 @@ Description: Dump the status of the QM.
Four states: initiated, started, stopped and closed. Four states: initiated, started, stopped and closed.
Available for both PF and VF, and take no other effect on HPRE. Available for both PF and VF, and take no other effect on HPRE.
What: /sys/kernel/debug/hisi_hpre/<bdf>/qm/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: QM debug registers(regs) read hardware register value. This
node is used to show the change of the qm register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: HPRE debug registers(regs) read hardware register value. This
node is used to show the change of the register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_cnt What: /sys/kernel/debug/hisi_hpre/<bdf>/hpre_dfx/send_cnt
Date: Apr 2020 Date: Apr 2020
Contact: linux-crypto@vger.kernel.org Contact: linux-crypto@vger.kernel.org

View File

@ -84,6 +84,20 @@ Description: Dump the status of the QM.
Four states: initiated, started, stopped and closed. Four states: initiated, started, stopped and closed.
Available for both PF and VF, and take no other effect on SEC. Available for both PF and VF, and take no other effect on SEC.
What: /sys/kernel/debug/hisi_sec2/<bdf>/qm/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: QM debug registers(regs) read hardware register value. This
node is used to show the change of the qm register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_sec2/<bdf>/sec_dfx/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: SEC debug registers(regs) read hardware register value. This
node is used to show the change of the register values. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_sec2/<bdf>/sec_dfx/send_cnt What: /sys/kernel/debug/hisi_sec2/<bdf>/sec_dfx/send_cnt
Date: Apr 2020 Date: Apr 2020
Contact: linux-crypto@vger.kernel.org Contact: linux-crypto@vger.kernel.org

View File

@ -97,6 +97,20 @@ Description: Dump the status of the QM.
Four states: initiated, started, stopped and closed. Four states: initiated, started, stopped and closed.
Available for both PF and VF, and take no other effect on ZIP. Available for both PF and VF, and take no other effect on ZIP.
What: /sys/kernel/debug/hisi_zip/<bdf>/qm/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: QM debug registers(regs) read hardware register value. This
node is used to show the change of the qm registers value. This
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_zip/<bdf>/zip_dfx/diff_regs
Date: Mar 2022
Contact: linux-crypto@vger.kernel.org
Description: ZIP debug registers(regs) read hardware register value. This
node is used to show the change of the registers value. this
node can be help users to check the change of register values.
What: /sys/kernel/debug/hisi_zip/<bdf>/zip_dfx/send_cnt What: /sys/kernel/debug/hisi_zip/<bdf>/zip_dfx/send_cnt
Date: Apr 2020 Date: Apr 2020
Contact: linux-crypto@vger.kernel.org Contact: linux-crypto@vger.kernel.org

View File

@ -27,8 +27,9 @@ Description:
[fowner=] [fgroup=]] [fowner=] [fgroup=]]
lsm: [[subj_user=] [subj_role=] [subj_type=] lsm: [[subj_user=] [subj_role=] [subj_type=]
[obj_user=] [obj_role=] [obj_type=]] [obj_user=] [obj_role=] [obj_type=]]
option: [[appraise_type=]] [template=] [permit_directio] option: [digest_type=] [template=] [permit_directio]
[appraise_flag=] [appraise_algos=] [keyrings=] [appraise_type=] [appraise_flag=]
[appraise_algos=] [keyrings=]
base: base:
func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK][MODULE_CHECK] func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK][MODULE_CHECK]
[FIRMWARE_CHECK] [FIRMWARE_CHECK]
@ -47,10 +48,21 @@ Description:
fgroup:= decimal value fgroup:= decimal value
lsm: are LSM specific lsm: are LSM specific
option: option:
appraise_type:= [imasig] [imasig|modsig] appraise_type:= [imasig] | [imasig|modsig] | [sigv3]
where 'imasig' is the original or the signature
format v2.
where 'modsig' is an appended signature,
where 'sigv3' is the signature format v3. (Currently
limited to fsverity digest based signatures
stored in security.ima xattr. Requires
specifying "digest_type=verity" first.)
appraise_flag:= [check_blacklist] appraise_flag:= [check_blacklist]
Currently, blacklist check is only for files signed with appended Currently, blacklist check is only for files signed with appended
signature. signature.
digest_type:= verity
Require fs-verity's file digest instead of the
regular IMA file hash.
keyrings:= list of keyrings keyrings:= list of keyrings
(eg, .builtin_trusted_keys|.ima). Only valid (eg, .builtin_trusted_keys|.ima). Only valid
when action is "measure" and func is KEY_CHECK. when action is "measure" and func is KEY_CHECK.
@ -149,3 +161,30 @@ Description:
security.ima xattr of a file: security.ima xattr of a file:
appraise func=SETXATTR_CHECK appraise_algos=sha256,sha384,sha512 appraise func=SETXATTR_CHECK appraise_algos=sha256,sha384,sha512
Example of a 'measure' rule requiring fs-verity's digests
with indication of type of digest in the measurement list.
measure func=FILE_CHECK digest_type=verity \
template=ima-ngv2
Example of 'measure' and 'appraise' rules requiring fs-verity
signatures (format version 3) stored in security.ima xattr.
The 'measure' rule specifies the 'ima-sigv3' template option,
which includes the indication of type of digest and the file
signature in the measurement list.
measure func=BPRM_CHECK digest_type=verity \
template=ima-sigv3
The 'appraise' rule specifies the type and signature format
version (sigv3) required.
appraise func=BPRM_CHECK digest_type=verity \
appraise_type=sigv3
All of these policy rules could, for example, be constrained
either based on a filesystem's UUID (fsuuid) or based on LSM
labels.

View File

@ -22,6 +22,7 @@ Description:
MMUPageSize: 4 kB MMUPageSize: 4 kB
Rss: 884 kB Rss: 884 kB
Pss: 385 kB Pss: 385 kB
Pss_Dirty: 68 kB
Pss_Anon: 301 kB Pss_Anon: 301 kB
Pss_File: 80 kB Pss_File: 80 kB
Pss_Shmem: 4 kB Pss_Shmem: 4 kB

View File

@ -107,13 +107,14 @@ Description:
described in ATA8 7.16 and 7.17. Only valid if described in ATA8 7.16 and 7.17. Only valid if
the device is not a PM. the device is not a PM.
pio_mode: (RO) Transfer modes supported by the device when pio_mode: (RO) PIO transfer mode used by the device.
in PIO mode. Mostly used by PATA device. Mostly used by PATA devices.
xfer_mode: (RO) Current transfer mode xfer_mode: (RO) Current transfer mode. Mostly used by
PATA devices.
dma_mode: (RO) Transfer modes supported by the device when dma_mode: (RO) DMA transfer mode used by the device.
in DMA mode. Mostly used by PATA device. Mostly used by PATA devices.
class: (RO) Device class. Can be "ata" for disk, class: (RO) Device class. Can be "ata" for disk,
"atapi" for packet device, "pmp" for PM, or "atapi" for packet device, "pmp" for PM, or

View File

@ -7,6 +7,7 @@ Description:
all descendant memdevs for unbind. Writing '1' to this attribute all descendant memdevs for unbind. Writing '1' to this attribute
flushes that work. flushes that work.
What: /sys/bus/cxl/devices/memX/firmware_version What: /sys/bus/cxl/devices/memX/firmware_version
Date: December, 2020 Date: December, 2020
KernelVersion: v5.12 KernelVersion: v5.12
@ -16,6 +17,7 @@ Description:
Memory Device Output Payload in the CXL-2.0 Memory Device Output Payload in the CXL-2.0
specification. specification.
What: /sys/bus/cxl/devices/memX/ram/size What: /sys/bus/cxl/devices/memX/ram/size
Date: December, 2020 Date: December, 2020
KernelVersion: v5.12 KernelVersion: v5.12
@ -25,6 +27,7 @@ Description:
identically named field in the Identify Memory Device Output identically named field in the Identify Memory Device Output
Payload in the CXL-2.0 specification. Payload in the CXL-2.0 specification.
What: /sys/bus/cxl/devices/memX/pmem/size What: /sys/bus/cxl/devices/memX/pmem/size
Date: December, 2020 Date: December, 2020
KernelVersion: v5.12 KernelVersion: v5.12
@ -34,6 +37,7 @@ Description:
identically named field in the Identify Memory Device Output identically named field in the Identify Memory Device Output
Payload in the CXL-2.0 specification. Payload in the CXL-2.0 specification.
What: /sys/bus/cxl/devices/memX/serial What: /sys/bus/cxl/devices/memX/serial
Date: January, 2022 Date: January, 2022
KernelVersion: v5.18 KernelVersion: v5.18
@ -43,6 +47,7 @@ Description:
capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2 capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2
Memory Device PCIe Capabilities and Extended Capabilities. Memory Device PCIe Capabilities and Extended Capabilities.
What: /sys/bus/cxl/devices/memX/numa_node What: /sys/bus/cxl/devices/memX/numa_node
Date: January, 2022 Date: January, 2022
KernelVersion: v5.18 KernelVersion: v5.18
@ -52,114 +57,334 @@ Description:
host PCI device for this memory device, emit the CPU node host PCI device for this memory device, emit the CPU node
affinity for this device. affinity for this device.
What: /sys/bus/cxl/devices/*/devtype What: /sys/bus/cxl/devices/*/devtype
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL device objects export the devtype attribute which mirrors (RO) CXL device objects export the devtype attribute which
the same value communicated in the DEVTYPE environment variable mirrors the same value communicated in the DEVTYPE environment
for uevents for devices on the "cxl" bus. variable for uevents for devices on the "cxl" bus.
What: /sys/bus/cxl/devices/*/modalias What: /sys/bus/cxl/devices/*/modalias
Date: December, 2021 Date: December, 2021
KernelVersion: v5.18 KernelVersion: v5.18
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL device objects export the modalias attribute which mirrors (RO) CXL device objects export the modalias attribute which
the same value communicated in the MODALIAS environment variable mirrors the same value communicated in the MODALIAS environment
for uevents for devices on the "cxl" bus. variable for uevents for devices on the "cxl" bus.
What: /sys/bus/cxl/devices/portX/uport What: /sys/bus/cxl/devices/portX/uport
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL port objects are enumerated from either a platform firmware (RO) CXL port objects are enumerated from either a platform
device (ACPI0017 and ACPI0016) or PCIe switch upstream port with firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
CXL component registers. The 'uport' symlink connects the CXL port with CXL component registers. The 'uport' symlink connects
portX object to the device that published the CXL port the CXL portX object to the device that published the CXL port
capability. capability.
What: /sys/bus/cxl/devices/portX/dportY What: /sys/bus/cxl/devices/portX/dportY
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL port objects are enumerated from either a platform firmware (RO) CXL port objects are enumerated from either a platform
device (ACPI0017 and ACPI0016) or PCIe switch upstream port with firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
CXL component registers. The 'dportY' symlink identifies one or port with CXL component registers. The 'dportY' symlink
more downstream ports that the upstream port may target in its identifies one or more downstream ports that the upstream port
decode of CXL memory resources. The 'Y' integer reflects the may target in its decode of CXL memory resources. The 'Y'
hardware port unique-id used in the hardware decoder target integer reflects the hardware port unique-id used in the
list. hardware decoder target list.
What: /sys/bus/cxl/devices/decoderX.Y What: /sys/bus/cxl/devices/decoderX.Y
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL decoder objects are enumerated from either a platform (RO) CXL decoder objects are enumerated from either a platform
firmware description, or a CXL HDM decoder register set in a firmware description, or a CXL HDM decoder register set in a
PCIe device (see CXL 2.0 section 8.2.5.12 CXL HDM Decoder PCIe device (see CXL 2.0 section 8.2.5.12 CXL HDM Decoder
Capability Structure). The 'X' in decoderX.Y represents the Capability Structure). The 'X' in decoderX.Y represents the
cxl_port container of this decoder, and 'Y' represents the cxl_port container of this decoder, and 'Y' represents the
instance id of a given decoder resource. instance id of a given decoder resource.
What: /sys/bus/cxl/devices/decoderX.Y/{start,size} What: /sys/bus/cxl/devices/decoderX.Y/{start,size}
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
The 'start' and 'size' attributes together convey the physical (RO) The 'start' and 'size' attributes together convey the
address base and number of bytes mapped in the decoder's decode physical address base and number of bytes mapped in the
window. For decoders of devtype "cxl_decoder_root" the address decoder's decode window. For decoders of devtype
range is fixed. For decoders of devtype "cxl_decoder_switch" the "cxl_decoder_root" the address range is fixed. For decoders of
address is bounded by the decode range of the cxl_port ancestor devtype "cxl_decoder_switch" the address is bounded by the
of the decoder's cxl_port, and dynamically updates based on the decode range of the cxl_port ancestor of the decoder's cxl_port,
active memory regions in that address space. and dynamically updates based on the active memory regions in
that address space.
What: /sys/bus/cxl/devices/decoderX.Y/locked What: /sys/bus/cxl/devices/decoderX.Y/locked
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
CXL HDM decoders have the capability to lock the configuration (RO) CXL HDM decoders have the capability to lock the
until the next device reset. For decoders of devtype configuration until the next device reset. For decoders of
"cxl_decoder_root" there is no standard facility to unlock them. devtype "cxl_decoder_root" there is no standard facility to
For decoders of devtype "cxl_decoder_switch" a secondary bus unlock them. For decoders of devtype "cxl_decoder_switch" a
reset, of the PCIe bridge that provides the bus for this secondary bus reset, of the PCIe bridge that provides the bus
decoders uport, unlocks / resets the decoder. for this decoders uport, unlocks / resets the decoder.
What: /sys/bus/cxl/devices/decoderX.Y/target_list What: /sys/bus/cxl/devices/decoderX.Y/target_list
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
Display a comma separated list of the current decoder target (RO) Display a comma separated list of the current decoder
configuration. The list is ordered by the current configured target configuration. The list is ordered by the current
interleave order of the decoder's dport instances. Each entry in configured interleave order of the decoder's dport instances.
the list is a dport id. Each entry in the list is a dport id.
What: /sys/bus/cxl/devices/decoderX.Y/cap_{pmem,ram,type2,type3} What: /sys/bus/cxl/devices/decoderX.Y/cap_{pmem,ram,type2,type3}
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
When a CXL decoder is of devtype "cxl_decoder_root", it (RO) When a CXL decoder is of devtype "cxl_decoder_root", it
represents a fixed memory window identified by platform represents a fixed memory window identified by platform
firmware. A fixed window may only support a subset of memory firmware. A fixed window may only support a subset of memory
types. The 'cap_*' attributes indicate whether persistent types. The 'cap_*' attributes indicate whether persistent
memory, volatile memory, accelerator memory, and / or expander memory, volatile memory, accelerator memory, and / or expander
memory may be mapped behind this decoder's memory window. memory may be mapped behind this decoder's memory window.
What: /sys/bus/cxl/devices/decoderX.Y/target_type What: /sys/bus/cxl/devices/decoderX.Y/target_type
Date: June, 2021 Date: June, 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: linux-cxl@vger.kernel.org Contact: linux-cxl@vger.kernel.org
Description: Description:
When a CXL decoder is of devtype "cxl_decoder_switch", it can (RO) When a CXL decoder is of devtype "cxl_decoder_switch", it
optionally decode either accelerator memory (type-2) or expander can optionally decode either accelerator memory (type-2) or
memory (type-3). The 'target_type' attribute indicates the expander memory (type-3). The 'target_type' attribute indicates
current setting which may dynamically change based on what the current setting which may dynamically change based on what
memory regions are activated in this decode hierarchy. memory regions are activated in this decode hierarchy.
What: /sys/bus/cxl/devices/endpointX/CDAT
Date: July, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RO) If this sysfs entry is not present no DOE mailbox was
found to support CDAT data. If it is present and the length of
the data is 0 reading the CDAT data failed. Otherwise the CDAT
data is reported.
What: /sys/bus/cxl/devices/decoderX.Y/mode
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) When a CXL decoder is of devtype "cxl_decoder_endpoint" it
translates from a host physical address range, to a device local
address range. Device-local address ranges are further split
into a 'ram' (volatile memory) range and 'pmem' (persistent
memory) range. The 'mode' attribute emits one of 'ram', 'pmem',
'mixed', or 'none'. The 'mixed' indication is for error cases
when a decoder straddles the volatile/persistent partition
boundary, and 'none' indicates the decoder is not actively
decoding, or no DPA allocation policy has been set.
'mode' can be written, when the decoder is in the 'disabled'
state, with either 'ram' or 'pmem' to set the boundaries for the
next allocation.
What: /sys/bus/cxl/devices/decoderX.Y/dpa_resource
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RO) When a CXL decoder is of devtype "cxl_decoder_endpoint",
and its 'dpa_size' attribute is non-zero, this attribute
indicates the device physical address (DPA) base address of the
allocation.
What: /sys/bus/cxl/devices/decoderX.Y/dpa_size
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) When a CXL decoder is of devtype "cxl_decoder_endpoint" it
translates from a host physical address range, to a device local
address range. The range, base address plus length in bytes, of
DPA allocated to this decoder is conveyed in these 2 attributes.
Allocations can be mutated as long as the decoder is in the
disabled state. A write to 'dpa_size' releases the previous DPA
allocation and then attempts to allocate from the free capacity
in the device partition referred to by 'decoderX.Y/mode'.
Allocate and free requests can only be performed on the highest
instance number disabled decoder with non-zero size. I.e.
allocations are enforced to occur in increasing 'decoderX.Y/id'
order and frees are enforced to occur in decreasing
'decoderX.Y/id' order.
What: /sys/bus/cxl/devices/decoderX.Y/interleave_ways
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RO) The number of targets across which this decoder's host
physical address (HPA) memory range is interleaved. The device
maps every Nth block of HPA (of size ==
'interleave_granularity') to consecutive DPA addresses. The
decoder's position in the interleave is determined by the
device's (endpoint or switch) switch ancestry. For root
decoders their interleave is specified by platform firmware and
they only specify a downstream target order for host bridges.
What: /sys/bus/cxl/devices/decoderX.Y/interleave_granularity
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RO) The number of consecutive bytes of host physical address
space this decoder claims at address N before the decode rotates
to the next target in the interleave at address N +
interleave_granularity (assuming N is aligned to
interleave_granularity).
What: /sys/bus/cxl/devices/decoderX.Y/create_pmem_region
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Write a string in the form 'regionZ' to start the process
of defining a new persistent memory region (interleave-set)
within the decode range bounded by root decoder 'decoderX.Y'.
The value written must match the current value returned from
reading this attribute. An atomic compare exchange operation is
done on write to assign the requested id to a region and
allocate the region-id for the next creation attempt. EBUSY is
returned if the region name written does not match the current
cached value.
What: /sys/bus/cxl/devices/decoderX.Y/delete_region
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(WO) Write a string in the form 'regionZ' to delete that region,
provided it is currently idle / not bound to a driver.
What: /sys/bus/cxl/devices/regionZ/uuid
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Write a unique identifier for the region. This field must
be set for persistent regions and it must not conflict with the
UUID of another region.
What: /sys/bus/cxl/devices/regionZ/interleave_granularity
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Set the number of consecutive bytes each device in the
interleave set will claim. The possible interleave granularity
values are determined by the CXL spec and the participating
devices.
What: /sys/bus/cxl/devices/regionZ/interleave_ways
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Configures the number of devices participating in the
region is set by writing this value. Each device will provide
1/interleave_ways of storage for the region.
What: /sys/bus/cxl/devices/regionZ/size
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) System physical address space to be consumed by the region.
When written trigger the driver to allocate space out of the
parent root decoder's address space. When read the size of the
address space is reported and should match the span of the
region's resource attribute. Size shall be set after the
interleave configuration parameters. Once set it cannot be
changed, only freed by writing 0. The kernel makes no guarantees
that data is maintained over an address space freeing event, and
there is no guarantee that a free followed by an allocate
results in the same address being allocated.
What: /sys/bus/cxl/devices/regionZ/resource
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RO) A region is a contiguous partition of a CXL root decoder
address space. Region capacity is allocated by writing to the
size attribute, the resulting physical address space determined
by the driver is reflected here. It is therefore not useful to
read this before writing a value to the size attribute.
What: /sys/bus/cxl/devices/regionZ/target[0..N]
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Write an endpoint decoder object name to 'targetX' where X
is the intended position of the endpoint device in the region
interleave and N is the 'interleave_ways' setting for the
region. ENXIO is returned if the write results in an impossible
to map decode scenario, like the endpoint is unreachable at that
position relative to the root decoder interleave. EBUSY is
returned if the position in the region is already occupied, or
if the region is not in a state to accept interleave
configuration changes. EINVAL is returned if the object name is
not an endpoint decoder. Once all positions have been
successfully written a final validation for decode conflicts is
performed before activating the region.
What: /sys/bus/cxl/devices/regionZ/commit
Date: May, 2022
KernelVersion: v5.20
Contact: linux-cxl@vger.kernel.org
Description:
(RW) Write a boolean 'true' string value to this attribute to
trigger the region to transition from the software programmed
state to the actively decoding in hardware state. The commit
operation in addition to validating that the region is in proper
configured state, validates that the decoders are being
committed in spec mandated order (last committed decoder id +
1), and checks that the hardware accepts the commit request.
Reading this value indicates whether the region is committed or
not.

View File

@ -79,6 +79,11 @@ Description:
* "accel-base" * "accel-base"
* "accel-display" * "accel-display"
For devices where an accelerometer is housed in the swivel camera subassembly
(for AR application), the following standardized label is used:
* "accel-camera"
What: /sys/bus/iio/devices/iio:deviceX/current_timestamp_clock What: /sys/bus/iio/devices/iio:deviceX/current_timestamp_clock
KernelVersion: 4.5 KernelVersion: 4.5
Contact: linux-iio@vger.kernel.org Contact: linux-iio@vger.kernel.org
@ -102,6 +107,9 @@ Description:
relevant directories. If it affects all of the above relevant directories. If it affects all of the above
then it is to be found in the base device directory. then it is to be found in the base device directory.
The stm32-timer-trigger has the additional characteristic that
a sampling_frequency of 0 is defined to stop sampling.
What: /sys/bus/iio/devices/iio:deviceX/sampling_frequency_available What: /sys/bus/iio/devices/iio:deviceX/sampling_frequency_available
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_sampling_frequency_available What: /sys/bus/iio/devices/iio:deviceX/in_intensity_sampling_frequency_available
What: /sys/bus/iio/devices/iio:deviceX/in_proximity_sampling_frequency_available What: /sys/bus/iio/devices/iio:deviceX/in_proximity_sampling_frequency_available

View File

@ -5,6 +5,7 @@ Contact: Gwendal Grignou <gwendal@chromium.org>
Description: Description:
SX9324 has 3 inputs, CS0, CS1 and CS2. Hardware layout SX9324 has 3 inputs, CS0, CS1 and CS2. Hardware layout
defines if the input is defines if the input is
+ not connected (HZ), + not connected (HZ),
+ grounded (GD), + grounded (GD),
+ connected to an antenna where it can act as a base + connected to an antenna where it can act as a base

View File

@ -90,14 +90,6 @@ Description:
Reading returns the current master modes. Reading returns the current master modes.
Writing set the master mode Writing set the master mode
What: /sys/bus/iio/devices/triggerX/sampling_frequency
KernelVersion: 4.11
Contact: benjamin.gaignard@st.com
Description:
Reading returns the current sampling frequency.
Writing an value different of 0 set and start sampling.
Writing 0 stop sampling.
What: /sys/bus/iio/devices/iio:deviceX/in_count0_preset What: /sys/bus/iio/devices/iio:deviceX/in_count0_preset
KernelVersion: 4.12 KernelVersion: 4.12
Contact: benjamin.gaignard@st.com Contact: benjamin.gaignard@st.com

View File

@ -1,4 +1,4 @@
What: /sys/bus/iio/devices/iio:deviceX/conversion_mode What: /sys/bus/iio/devices/iio:deviceX/in_conversion_mode
KernelVersion: 4.2 KernelVersion: 4.2
Contact: linux-iio@vger.kernel.org Contact: linux-iio@vger.kernel.org
Description: Description:

View File

@ -293,6 +293,16 @@ Contact: thunderbolt-software@lists.01.org
Description: This contains XDomain service specific settings as Description: This contains XDomain service specific settings as
bitmask. Format: %x bitmask. Format: %x
What: /sys/bus/thunderbolt/devices/usb4_portX/connector
Date: April 2022
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
Symlink to the USB Type-C connector. This link is only
created when USB Type-C Connector Class is enabled,
and only if the system firmware is capable of
describing the connection between a port and its
connector.
What: /sys/bus/thunderbolt/devices/usb4_portX/link What: /sys/bus/thunderbolt/devices/usb4_portX/link
Date: Sep 2021 Date: Sep 2021
KernelVersion: v5.14 KernelVersion: v5.14

View File

@ -253,6 +253,17 @@ Description:
only if the system firmware is capable of describing the only if the system firmware is capable of describing the
connection between a port and its connector. connection between a port and its connector.
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/disable
Date: June 2022
Contact: Michael Grzeschik <m.grzeschik@pengutronix.de>
Description:
This file controls the state of a USB port, including
Vbus power output (but only on hubs that support
power switching -- most hubs don't support it). If
a port is disabled, the port is unusable: Devices
attached to the port will not be detected, initialized,
or enumerated.
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
Date: May 2013 Date: May 2013
Contact: Mathias Nyman <mathias.nyman@linux.intel.com> Contact: Mathias Nyman <mathias.nyman@linux.intel.com>

View File

@ -103,8 +103,8 @@ What: /sys/class/cxl/<afu>/api_version_compatible
Date: September 2014 Date: September 2014
Contact: linuxppc-dev@lists.ozlabs.org Contact: linuxppc-dev@lists.ozlabs.org
Description: read only Description: read only
Decimal value of the the lowest version of the userspace API Decimal value of the lowest version of the userspace API
this this kernel supports. this kernel supports.
Users: https://github.com/ibm-capi/libcxl Users: https://github.com/ibm-capi/libcxl

View File

@ -938,3 +938,12 @@ Description:
- 1: enable - 1: enable
RW RW
What: /sys/class/hwmon/hwmonX/device/pec
Description:
PEC support on I2C devices
- 0, off, n: disable
- 1, on, y: enable
RW

View File

@ -81,7 +81,7 @@ Description:
What: /sys/class/pwm/pwmchip<N>/pwmX/capture What: /sys/class/pwm/pwmchip<N>/pwmX/capture
Date: June 2016 Date: June 2016
KernelVersion: 4.8 KernelVersion: 4.8
Contact: Lee Jones <lee.jones@linaro.org> Contact: Lee Jones <lee@kernel.org>
Description: Description:
Capture information about a PWM signal. The output format is a Capture information about a PWM signal. The output format is a
pair unsigned integers (period and duty cycle), separated by a pair unsigned integers (period and duty cycle), separated by a

View File

@ -370,3 +370,84 @@ Description:
'unknown' means software cannot determine the state, or 'unknown' means software cannot determine the state, or
the reported state is invalid. the reported state is invalid.
What: /sys/class/regulator/.../under_voltage
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
under_voltage. This indicates if the device reports an
under-voltage fault (1) or not (0).
What: /sys/class/regulator/.../over_current
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
over_current. This indicates if the device reports an
over-current fault (1) or not (0).
What: /sys/class/regulator/.../regulation_out
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
regulation_out. This indicates if the device reports an
out-of-regulation fault (1) or not (0).
What: /sys/class/regulator/.../fail
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
fail. This indicates if the device reports an output failure
(1) or not (0).
What: /sys/class/regulator/.../over_temp
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
over_temp. This indicates if the device reports an
over-temperature fault (1) or not (0).
What: /sys/class/regulator/.../under_voltage_warn
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
under_voltage_warn. This indicates if the device reports an
under-voltage warning (1) or not (0).
What: /sys/class/regulator/.../over_current_warn
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
over_current_warn. This indicates if the device reports an
over-current warning (1) or not (0).
What: /sys/class/regulator/.../over_voltage_warn
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
over_voltage_warn. This indicates if the device reports an
over-voltage warning (1) or not (0).
What: /sys/class/regulator/.../over_temp_warn
Date: April 2022
KernelVersion: 5.18
Contact: Zev Weiss <zev@bewilderbeest.net>
Description:
Some regulator directories will contain a field called
over_temp_warn. This indicates if the device reports an
over-temperature warning (1) or not (0).

View File

@ -78,7 +78,7 @@ What: /sys/class/rtrs-client/<session-name>/paths/<src@dst>/hca_name
Date: Feb 2020 Date: Feb 2020
KernelVersion: 5.7 KernelVersion: 5.7
Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com> Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com>
Description: RO, Contains the the name of HCA the connection established on. Description: RO, Contains the name of HCA the connection established on.
What: /sys/class/rtrs-client/<session-name>/paths/<src@dst>/hca_port What: /sys/class/rtrs-client/<session-name>/paths/<src@dst>/hca_port
Date: Feb 2020 Date: Feb 2020

View File

@ -24,7 +24,7 @@ What: /sys/class/rtrs-server/<session-name>/paths/<src@dst>/hca_name
Date: Feb 2020 Date: Feb 2020
KernelVersion: 5.7 KernelVersion: 5.7
Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com> Contact: Jack Wang <jinpu.wang@cloud.ionos.com> Danil Kipnis <danil.kipnis@cloud.ionos.com>
Description: RO, Contains the the name of HCA the connection established on. Description: RO, Contains the name of HCA the connection established on.
What: /sys/class/rtrs-server/<session-name>/paths/<src@dst>/hca_port What: /sys/class/rtrs-server/<session-name>/paths/<src@dst>/hca_port
Date: Feb 2020 Date: Feb 2020

View File

@ -141,6 +141,14 @@ Description:
- "reverse": CC2 orientation - "reverse": CC2 orientation
- "unknown": Orientation cannot be determined. - "unknown": Orientation cannot be determined.
What: /sys/class/typec/<port>/select_usb_power_delivery
Date: May 2022
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
Lists the USB Power Delivery Capabilities that the port can
advertise to the partner. The currently used capabilities are in
brackets. Selection happens by writing to the file.
USB Type-C partner devices (eg. /sys/class/typec/port0-partner/) USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
What: /sys/class/typec/<port>-partner/accessory_mode What: /sys/class/typec/<port>-partner/accessory_mode

View File

@ -74,7 +74,7 @@ Description:
Reads also cause the AC alarm timer status to be reset. Reads also cause the AC alarm timer status to be reset.
Another way to reset the the status of the AC alarm timer is to Another way to reset the status of the AC alarm timer is to
write (the number) 0 to this file. write (the number) 0 to this file.
If the status return value indicates that the timer has expired, If the status return value indicates that the timer has expired,

View File

@ -46,33 +46,69 @@ Description:
that is supported by the hardware. The possible values that is supported by the hardware. The possible values
are "MAPv4" or "MAPv5". are "MAPv4" or "MAPv5".
What: .../XXXXXXX.ipa/endpoint_id/
Date: July 2022
KernelVersion: v5.19
Contact: Alex Elder <elder@kernel.org>
Description:
The .../XXXXXXX.ipa/endpoint_id/ directory contains
attributes that define IDs associated with IPA
endpoints. The "rx" or "tx" in an endpoint name is
from the perspective of the AP. An endpoint ID is a
small unsigned integer.
What: .../XXXXXXX.ipa/endpoint_id/modem_rx
Date: July 2022
KernelVersion: v5.19
Contact: Alex Elder <elder@kernel.org>
Description:
The .../XXXXXXX.ipa/endpoint_id/modem_rx file contains
the ID of the AP endpoint on which packets originating
from the embedded modem are received.
What: .../XXXXXXX.ipa/endpoint_id/modem_tx
Date: July 2022
KernelVersion: v5.19
Contact: Alex Elder <elder@kernel.org>
Description:
The .../XXXXXXX.ipa/endpoint_id/modem_tx file contains
the ID of the AP endpoint on which packets destined
for the embedded modem are sent.
What: .../XXXXXXX.ipa/endpoint_id/monitor_rx
Date: July 2022
KernelVersion: v5.19
Contact: Alex Elder <elder@kernel.org>
Description:
The .../XXXXXXX.ipa/endpoint_id/monitor_rx file contains
the ID of the AP endpoint on which IPA "monitor" data is
received. The monitor endpoint supplies replicas of
packets that enter the IPA hardware for processing.
Each replicated packet is preceded by a fixed-size "ODL"
header (see .../XXXXXXX.ipa/feature/monitor, above).
Large packets are truncated, to reduce the bandwidth
required to provide the monitor function.
What: .../XXXXXXX.ipa/modem/ What: .../XXXXXXX.ipa/modem/
Date: June 2021 Date: June 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: Alex Elder <elder@kernel.org> Contact: Alex Elder <elder@kernel.org>
Description: Description:
The .../XXXXXXX.ipa/modem/ directory contains a set of The .../XXXXXXX.ipa/modem/ directory contains attributes
attributes describing properties of the modem execution describing properties of the modem embedded in the SoC.
environment reachable by the IPA hardware.
What: .../XXXXXXX.ipa/modem/rx_endpoint_id What: .../XXXXXXX.ipa/modem/rx_endpoint_id
Date: June 2021 Date: June 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: Alex Elder <elder@kernel.org> Contact: Alex Elder <elder@kernel.org>
Description: Description:
The .../XXXXXXX.ipa/feature/rx_endpoint_id file contains The .../XXXXXXX.ipa/modem/rx_endpoint_id file duplicates
the AP endpoint ID that receives packets originating from the value found in .../XXXXXXX.ipa/endpoint_id/modem_rx.
the modem execution environment. The "rx" is from the
perspective of the AP; this endpoint is considered an "IPA
producer". An endpoint ID is a small unsigned integer.
What: .../XXXXXXX.ipa/modem/tx_endpoint_id What: .../XXXXXXX.ipa/modem/tx_endpoint_id
Date: June 2021 Date: June 2021
KernelVersion: v5.14 KernelVersion: v5.14
Contact: Alex Elder <elder@kernel.org> Contact: Alex Elder <elder@kernel.org>
Description: Description:
The .../XXXXXXX.ipa/feature/tx_endpoint_id file contains The .../XXXXXXX.ipa/modem/tx_endpoint_id file duplicates
the AP endpoint ID used to transmit packets destined for the value found in .../XXXXXXX.ipa/endpoint_id/modem_tx.
the modem execution environment. The "tx" is from the
perspective of the AP; this endpoint is considered an "IPA
consumer". An endpoint ID is a small unsigned integer.

View File

@ -303,5 +303,5 @@ Date: Apr 2010
Contact: Dominik Brodowski <linux@dominikbrodowski.net> Contact: Dominik Brodowski <linux@dominikbrodowski.net>
Description: Description:
Reports the runtime PM children usage count of a device, or Reports the runtime PM children usage count of a device, or
0 if the the children will be ignored. 0 if the children will be ignored.

View File

@ -1,6 +1,6 @@
What: /sys/devices/socX What: /sys/devices/socX
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
The /sys/devices/ directory contains a sub-directory for each The /sys/devices/ directory contains a sub-directory for each
System-on-Chip (SoC) device on a running platform. Information System-on-Chip (SoC) device on a running platform. Information
@ -14,14 +14,14 @@ Description:
What: /sys/devices/socX/machine What: /sys/devices/socX/machine
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
Read-only attribute common to all SoCs. Contains the SoC machine Read-only attribute common to all SoCs. Contains the SoC machine
name (e.g. Ux500). name (e.g. Ux500).
What: /sys/devices/socX/family What: /sys/devices/socX/family
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
Read-only attribute common to all SoCs. Contains SoC family name Read-only attribute common to all SoCs. Contains SoC family name
(e.g. DB8500). (e.g. DB8500).
@ -59,7 +59,7 @@ Description:
What: /sys/devices/socX/soc_id What: /sys/devices/socX/soc_id
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
Read-only attribute supported by most SoCs. In the case of Read-only attribute supported by most SoCs. In the case of
ST-Ericsson's chips this contains the SoC serial number. ST-Ericsson's chips this contains the SoC serial number.
@ -72,21 +72,21 @@ Description:
What: /sys/devices/socX/revision What: /sys/devices/socX/revision
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
Read-only attribute supported by most SoCs. Contains the SoC's Read-only attribute supported by most SoCs. Contains the SoC's
manufacturing revision number. manufacturing revision number.
What: /sys/devices/socX/process What: /sys/devices/socX/process
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
Read-only attribute supported ST-Ericsson's silicon. Contains the Read-only attribute supported ST-Ericsson's silicon. Contains the
the process by which the silicon chip was manufactured. the process by which the silicon chip was manufactured.
What: /sys/bus/soc What: /sys/bus/soc
Date: January 2012 Date: January 2012
contact: Lee Jones <lee.jones@linaro.org> contact: Lee Jones <lee@kernel.org>
Description: Description:
The /sys/bus/soc/ directory contains the usual sub-folders The /sys/bus/soc/ directory contains the usual sub-folders
expected under most buses. /sys/bus/soc/devices is of particular expected under most buses. /sys/bus/soc/devices is of particular

View File

@ -67,8 +67,7 @@ Description: Discover NUMA node a CPU belongs to
/sys/devices/system/cpu/cpu42/node2 -> ../../node/node2 /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2
What: /sys/devices/system/cpu/cpuX/topology/core_id What: /sys/devices/system/cpu/cpuX/topology/core_siblings
/sys/devices/system/cpu/cpuX/topology/core_siblings
/sys/devices/system/cpu/cpuX/topology/core_siblings_list /sys/devices/system/cpu/cpuX/topology/core_siblings_list
/sys/devices/system/cpu/cpuX/topology/physical_package_id /sys/devices/system/cpu/cpuX/topology/physical_package_id
/sys/devices/system/cpu/cpuX/topology/thread_siblings /sys/devices/system/cpu/cpuX/topology/thread_siblings
@ -84,10 +83,6 @@ Description: CPU topology files that describe a logical CPU's relationship
Briefly, the files above are: Briefly, the files above are:
core_id: the CPU core ID of cpuX. Typically it is the
hardware platform's identifier (rather than the kernel's).
The actual value is architecture and platform dependent.
core_siblings: internal kernel map of cpuX's hardware threads core_siblings: internal kernel map of cpuX's hardware threads
within the same physical_package_id. within the same physical_package_id.
@ -493,12 +488,13 @@ What: /sys/devices/system/cpu/cpuX/regs/
/sys/devices/system/cpu/cpuX/regs/identification/ /sys/devices/system/cpu/cpuX/regs/identification/
/sys/devices/system/cpu/cpuX/regs/identification/midr_el1 /sys/devices/system/cpu/cpuX/regs/identification/midr_el1
/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1 /sys/devices/system/cpu/cpuX/regs/identification/revidr_el1
/sys/devices/system/cpu/cpuX/regs/identification/smidr_el1
Date: June 2016 Date: June 2016
Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org> Contact: Linux ARM Kernel Mailing list <linux-arm-kernel@lists.infradead.org>
Description: AArch64 CPU registers Description: AArch64 CPU registers
'identification' directory exposes the CPU ID registers for 'identification' directory exposes the CPU ID registers for
identifying model and revision of the CPU. identifying model and revision of the CPU and SMCU.
What: /sys/devices/system/cpu/aarch32_el0 What: /sys/devices/system/cpu/aarch32_el0
Date: May 2021 Date: May 2021
@ -526,6 +522,8 @@ What: /sys/devices/system/cpu/vulnerabilities
/sys/devices/system/cpu/vulnerabilities/srbds /sys/devices/system/cpu/vulnerabilities/srbds
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
/sys/devices/system/cpu/vulnerabilities/itlb_multihit /sys/devices/system/cpu/vulnerabilities/itlb_multihit
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
/sys/devices/system/cpu/vulnerabilities/retbleed
Date: January 2018 Date: January 2018
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description: Information about CPU vulnerabilities Description: Information about CPU vulnerabilities

View File

@ -26,6 +26,6 @@ Description: Read/write the current state of DDR Backup Mode, which controls
DDR Backup Mode must be explicitly enabled by the user, DDR Backup Mode must be explicitly enabled by the user,
to invoke step 1. to invoke step 1.
See also Documentation/devicetree/bindings/mfd/bd9571mwv.txt. See also Documentation/devicetree/bindings/mfd/rohm,bd9571mwv.yaml.
Users: User space applications for embedded boards equipped with a Users: User space applications for embedded boards equipped with a
BD9571MWV PMIC. BD9571MWV PMIC.

View File

@ -1518,7 +1518,7 @@ Description: This entry shows the number of reads that cannot be changed to
The file is read only. The file is read only.
What: /sys/class/scsi_device/*/device/hpb_stats/rb_noti_cnt What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_noti_cnt
Date: June 2021 Date: June 2021
Contact: Daejun Park <daejun7.park@samsung.com> Contact: Daejun Park <daejun7.park@samsung.com>
Description: This entry shows the number of response UPIUs that has Description: This entry shows the number of response UPIUs that has
@ -1526,19 +1526,23 @@ Description: This entry shows the number of response UPIUs that has
The file is read only. The file is read only.
What: /sys/class/scsi_device/*/device/hpb_stats/rb_active_cnt What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_active_cnt
Date: June 2021 Date: June 2021
Contact: Daejun Park <daejun7.park@samsung.com> Contact: Daejun Park <daejun7.park@samsung.com>
Description: This entry shows the number of active sub-regions recommended by Description: For the HPB device control mode, this entry shows the number of
response UPIUs. active sub-regions recommended by response UPIUs. For the HPB host control
mode, this entry shows the number of active sub-regions recommended by the
HPB host control mode heuristic algorithm.
The file is read only. The file is read only.
What: /sys/class/scsi_device/*/device/hpb_stats/rb_inactive_cnt What: /sys/class/scsi_device/*/device/hpb_stats/rcmd_inactive_cnt
Date: June 2021 Date: June 2021
Contact: Daejun Park <daejun7.park@samsung.com> Contact: Daejun Park <daejun7.park@samsung.com>
Description: This entry shows the number of inactive regions recommended by Description: For the HPB device control mode, this entry shows the number of
response UPIUs. inactive regions recommended by response UPIUs. For the HPB host control
mode, this entry shows the number of inactive regions recommended by the
HPB host control mode heuristic algorithm.
The file is read only. The file is read only.

View File

@ -29,7 +29,7 @@ Description:
What: /sys/module/xen_blkback/parameters/buffer_squeeze_duration_ms What: /sys/module/xen_blkback/parameters/buffer_squeeze_duration_ms
Date: December 2019 Date: December 2019
KernelVersion: 5.6 KernelVersion: 5.6
Contact: SeongJae Park <sj@kernel.org> Contact: Maximilian Heyne <mheyne@amazon.de>
Description: Description:
When memory pressure is reported to blkback this option When memory pressure is reported to blkback this option
controls the duration in milliseconds that blkback will not controls the duration in milliseconds that blkback will not
@ -39,8 +39,8 @@ Description:
What: /sys/module/xen_blkback/parameters/feature_persistent What: /sys/module/xen_blkback/parameters/feature_persistent
Date: September 2020 Date: September 2020
KernelVersion: 5.10 KernelVersion: 5.10
Contact: SeongJae Park <sj@kernel.org> Contact: Maximilian Heyne <mheyne@amazon.de>
Description: Description:
Whether to enable the persistent grants feature or not. Note Whether to enable the persistent grants feature or not. Note
that this option only takes effect on newly created backends. that this option only takes effect on newly connected backends.
The default is Y (enable). The default is Y (enable).

View File

@ -12,8 +12,8 @@ Description:
What: /sys/module/xen_blkfront/parameters/feature_persistent What: /sys/module/xen_blkfront/parameters/feature_persistent
Date: September 2020 Date: September 2020
KernelVersion: 5.10 KernelVersion: 5.10
Contact: SeongJae Park <sj@kernel.org> Contact: Maximilian Heyne <mheyne@amazon.de>
Description: Description:
Whether to enable the persistent grants feature or not. Note Whether to enable the persistent grants feature or not. Note
that this option only takes effect on newly created frontends. that this option only takes effect on newly connected frontends.
The default is Y (enable). The default is Y (enable).

View File

@ -12,8 +12,9 @@ Description:
configuration data to the guest userspace. configuration data to the guest userspace.
The authoritative guest-side hardware interface documentation The authoritative guest-side hardware interface documentation
to the fw_cfg device can be found in "docs/specs/fw_cfg.txt" to the fw_cfg device can be found in "docs/specs/fw_cfg.rst"
in the QEMU source tree. in the QEMU source tree, or online at:
https://qemu-project.gitlab.io/qemu/specs/fw_cfg.html
**SysFS fw_cfg Interface** **SysFS fw_cfg Interface**

View File

@ -580,3 +580,33 @@ Date: January 2022
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
Description: Controls max # of node block writes to be used for roll forward Description: Controls max # of node block writes to be used for roll forward
recovery. This can limit the roll forward recovery time. recovery. This can limit the roll forward recovery time.
What: /sys/fs/f2fs/<disk>/unusable_blocks_per_sec
Date: June 2022
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
Description: Shows the number of unusable blocks in a section which was defined by
the zone capacity reported by underlying zoned device.
What: /sys/fs/f2fs/<disk>/current_atomic_write
Date: July 2022
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: Show the total current atomic write block count, which is not committed yet.
This is a read-only entry.
What: /sys/fs/f2fs/<disk>/peak_atomic_write
Date: July 2022
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: Show the peak value of total current atomic write block count after boot.
If you write "0" here, you can initialize to "0".
What: /sys/fs/f2fs/<disk>/committed_atomic_block
Date: July 2022
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: Show the accumulated total committed atomic write block count after boot.
If you write "0" here, you can initialize to "0".
What: /sys/fs/f2fs/<disk>/revoked_atomic_block
Date: July 2022
Contact: "Daeho Jeong" <daehojeong@google.com>
Description: Show the accumulated total revoked atomic write block count after boot.
If you write "0" here, you can initialize to "0".

View File

@ -23,9 +23,10 @@ Date: Mar 2022
Contact: SeongJae Park <sj@kernel.org> Contact: SeongJae Park <sj@kernel.org>
Description: Writing 'on' or 'off' to this file makes the kdamond starts or Description: Writing 'on' or 'off' to this file makes the kdamond starts or
stops, respectively. Reading the file returns the keywords stops, respectively. Reading the file returns the keywords
based on the current status. Writing 'update_schemes_stats' to based on the current status. Writing 'commit' to this file
the file updates contents of schemes stats files of the makes the kdamond reads the user inputs in the sysfs files
kdamond. except 'state' again. Writing 'update_schemes_stats' to the
file updates contents of schemes stats files of the kdamond.
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/pid What: /sys/kernel/mm/damon/admin/kdamonds/<K>/pid
Date: Mar 2022 Date: Mar 2022
@ -40,14 +41,24 @@ Description: Writing a number 'N' to this file creates the number of
directories for controlling each DAMON context named '0' to directories for controlling each DAMON context named '0' to
'N-1' under the contexts/ directory. 'N-1' under the contexts/ directory.
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/avail_operations
Date: Apr 2022
Contact: SeongJae Park <sj@kernel.org>
Description: Reading this file returns the available monitoring operations
sets on the currently running kernel.
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/operations What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/operations
Date: Mar 2022 Date: Mar 2022
Contact: SeongJae Park <sj@kernel.org> Contact: SeongJae Park <sj@kernel.org>
Description: Writing a keyword for a monitoring operations set ('vaddr' for Description: Writing a keyword for a monitoring operations set ('vaddr' for
virtual address spaces monitoring, and 'paddr' for the physical virtual address spaces monitoring, 'fvaddr' for fixed virtual
address space monitoring) to this file makes the context to use address ranges monitoring, and 'paddr' for the physical address
the operations set. Reading the file returns the keyword for space monitoring) to this file makes the context to use the
the operations set the context is set to use. operations set. Reading the file returns the keyword for the
operations set the context is set to use.
Note that only the operations sets that listed in
'avail_operations' file are valid inputs.
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/sample_us What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/sample_us
Date: Mar 2022 Date: Mar 2022

View File

@ -41,7 +41,7 @@ Description: Kernel Samepage Merging daemon sysfs interface
sleep_millisecs: how many milliseconds ksm should sleep between sleep_millisecs: how many milliseconds ksm should sleep between
scans. scans.
See Documentation/vm/ksm.rst for more information. See Documentation/mm/ksm.rst for more information.
What: /sys/kernel/mm/ksm/merge_across_nodes What: /sys/kernel/mm/ksm/merge_across_nodes
Date: January 2013 Date: January 2013

View File

@ -37,7 +37,7 @@ Description:
The alloc_calls file is read-only and lists the kernel code The alloc_calls file is read-only and lists the kernel code
locations from which allocations for this cache were performed. locations from which allocations for this cache were performed.
The alloc_calls file only contains information if debugging is The alloc_calls file only contains information if debugging is
enabled for that cache (see Documentation/vm/slub.rst). enabled for that cache (see Documentation/mm/slub.rst).
What: /sys/kernel/slab/<cache>/alloc_fastpath What: /sys/kernel/slab/<cache>/alloc_fastpath
Date: February 2008 Date: February 2008
@ -219,7 +219,7 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
Description: Description:
The free_calls file is read-only and lists the locations of The free_calls file is read-only and lists the locations of
object frees if slab debugging is enabled (see object frees if slab debugging is enabled (see
Documentation/vm/slub.rst). Documentation/mm/slub.rst).
What: /sys/kernel/slab/<cache>/free_fastpath What: /sys/kernel/slab/<cache>/free_fastpath
Date: February 2008 Date: February 2008

View File

@ -1,502 +0,0 @@
.. _changes:
Minimal requirements to compile the Kernel
++++++++++++++++++++++++++++++++++++++++++
Intro
=====
This document is designed to provide a list of the minimum levels of
software necessary to run the 4.x kernels.
This document is originally based on my "Changes" file for 2.0.x kernels
and therefore owes credit to the same people as that file (Jared Mauch,
Axel Boldt, Alessandro Sigala, and countless other users all over the
'net).
Current Minimal Requirements
****************************
Upgrade to at **least** these software revisions before thinking you've
encountered a bug! If you're unsure what version you're currently
running, the suggested command should tell you.
Again, keep in mind that this list assumes you are already functionally
running a Linux kernel. Also, not all tools are necessary on all
systems; obviously, if you don't have any PC Card hardware, for example,
you probably needn't concern yourself with pcmciautils.
====================== =============== ========================================
Program Minimal version Command to check the version
====================== =============== ========================================
GNU C 5.1 gcc --version
Clang/LLVM (optional) 11.0.0 clang --version
GNU make 3.81 make --version
binutils 2.23 ld -v
flex 2.5.35 flex --version
bison 2.0 bison --version
pahole 1.16 pahole --version
util-linux 2.10o fdformat --version
kmod 13 depmod -V
e2fsprogs 1.41.4 e2fsck -V
jfsutils 1.1.3 fsck.jfs -V
reiserfsprogs 3.6.3 reiserfsck -V
xfsprogs 2.6.0 xfs_db -V
squashfs-tools 4.0 mksquashfs -version
btrfs-progs 0.18 btrfsck
pcmciautils 004 pccardctl -V
quota-tools 3.09 quota -V
PPP 2.4.0 pppd --version
nfs-utils 1.0.5 showmount --version
procps 3.2.0 ps --version
udev 081 udevd --version
grub 0.93 grub --version || grub-install --version
mcelog 0.6 mcelog --version
iptables 1.4.2 iptables -V
openssl & libcrypto 1.0.0 openssl version
bc 1.06.95 bc --version
Sphinx\ [#f1]_ 1.7 sphinx-build --version
====================== =============== ========================================
.. [#f1] Sphinx is needed only to build the Kernel documentation
Kernel compilation
******************
GCC
---
The gcc version requirements may vary depending on the type of CPU in your
computer.
Clang/LLVM (optional)
---------------------
The latest formal release of clang and LLVM utils (according to
`releases.llvm.org <https://releases.llvm.org>`_) are supported for building
kernels. Older releases aren't guaranteed to work, and we may drop workarounds
from the kernel that were used to support older versions. Please see additional
docs on :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
Make
----
You will need GNU make 3.81 or later to build the kernel.
Binutils
--------
Binutils 2.23 or newer is needed to build the kernel.
pkg-config
----------
The build system, as of 4.18, requires pkg-config to check for installed
kconfig tools and to determine flags settings for use in
'make {g,x}config'. Previously pkg-config was being used but not
verified or documented.
Flex
----
Since Linux 4.16, the build system generates lexical analyzers
during build. This requires flex 2.5.35 or later.
Bison
-----
Since Linux 4.16, the build system generates parsers
during build. This requires bison 2.0 or later.
pahole:
-------
Since Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system
generates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel
modules as well. This requires pahole v1.16 or later.
It is found in the 'dwarves' or 'pahole' distro packages or from
https://fedorapeople.org/~acme/dwarves/.
Perl
----
You will need perl 5 and the following modules: ``Getopt::Long``,
``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
BC
--
You will need bc to build kernels 3.10 and higher
OpenSSL
-------
Module signing and external certificate handling use the OpenSSL program and
crypto library to do key creation and signature generation.
You will need openssl to build kernels 3.7 and higher if module signing is
enabled. You will also need openssl development packages to build kernels 4.3
and higher.
System utilities
****************
Architectural changes
---------------------
DevFS has been obsoleted in favour of udev
(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
32-bit UID support is now in place. Have fun!
Linux documentation for functions is transitioning to inline
documentation via specially-formatted comments near their
definitions in the source. These comments can be combined with ReST
files the Documentation/ directory to make enriched documentation, which can
then be converted to PostScript, HTML, LaTex, ePUB and PDF files.
In order to convert from ReST format to a format of your choice, you'll need
Sphinx.
Util-linux
----------
New versions of util-linux provide ``fdisk`` support for larger disks,
support new options to mount, recognize more supported partition
types, have a fdformat which works with 2.4 kernels, and similar goodies.
You'll probably want to upgrade.
Ksymoops
--------
If the unthinkable happens and your kernel oopses, you may need the
ksymoops tool to decode it, but in most cases you don't.
It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
that it produces readable dumps that can be used as-is (this also
produces better output than ksymoops). If for some reason your kernel
is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
reproduce the Oops with that option, then you can still decode that Oops
with ksymoops.
Mkinitrd
--------
These changes to the ``/lib/modules`` file tree layout also require that
mkinitrd be upgraded.
E2fsprogs
---------
The latest version of ``e2fsprogs`` fixes several bugs in fsck and
debugfs. Obviously, it's a good idea to upgrade.
JFSutils
--------
The ``jfsutils`` package contains the utilities for the file system.
The following utilities are available:
- ``fsck.jfs`` - initiate replay of the transaction log, and check
and repair a JFS formatted partition.
- ``mkfs.jfs`` - create a JFS formatted partition.
- other file system utilities are also available in this package.
Reiserfsprogs
-------------
The reiserfsprogs package should be used for reiserfs-3.6.x
(Linux kernels 2.4.x). It is a combined package and contains working
versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
``reiserfsck``. These utils work on both i386 and alpha platforms.
Xfsprogs
--------
The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
``xfs_repair`` utilities, among others, for the XFS filesystem. It is
architecture independent and any version from 2.0.0 onward should
work correctly with this version of the XFS kernel code (2.6.0 or
later is recommended, due to some significant improvements).
PCMCIAutils
-----------
PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
PCMCIA sockets at system startup and loads the appropriate modules
for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
subsystem is used.
Quota-tools
-----------
Support for 32 bit uid's and gid's is required if you want to use
the newer version 2 quota format. Quota-tools version 3.07 and
newer has this support. Use the recommended version or newer
from the table above.
Intel IA32 microcode
--------------------
A driver has been added to allow updating of Intel IA32 microcode,
accessible as a normal (misc) character device. If you are not using
udev you may need to::
mkdir /dev/cpu
mknod /dev/cpu/microcode c 10 184
chmod 0644 /dev/cpu/microcode
as root before you can use this. You'll probably also want to
get the user-space microcode_ctl utility to use with this.
udev
----
``udev`` is a userspace application for populating ``/dev`` dynamically with
only entries for devices actually present. ``udev`` replaces the basic
functionality of devfs, while allowing persistent device naming for
devices.
FUSE
----
Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
options ``direct_io`` and ``kernel_cache`` won't work.
Networking
**********
General changes
---------------
If you have advanced network configuration needs, you should probably
consider using the network tools from ip-route2.
Packet Filter / NAT
-------------------
The packet filtering and NAT code uses the same tools like the previous 2.4.x
kernel series (iptables). It still includes backwards-compatibility modules
for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
PPP
---
The PPP driver has been restructured to support multilink and to
enable it to operate over diverse media layers. If you use PPP,
upgrade pppd to at least 2.4.0.
If you are not using udev, you must have the device file /dev/ppp
which can be made by::
mknod /dev/ppp c 108 0
as root.
NFS-utils
---------
In ancient (2.4 and earlier) kernels, the nfs server needed to know
about any client that expected to be able to access files via NFS. This
information would be given to the kernel by ``mountd`` when the client
mounted the filesystem, or by ``exportfs`` at system startup. exportfs
would take information about active clients from ``/var/lib/nfs/rmtab``.
This approach is quite fragile as it depends on rmtab being correct
which is not always easy, particularly when trying to implement
fail-over. Even when the system is working well, ``rmtab`` suffers from
getting lots of old entries that never get removed.
With modern kernels we have the option of having the kernel tell mountd
when it gets a request from an unknown host, and mountd can give
appropriate export information to the kernel. This removes the
dependency on ``rmtab`` and means that the kernel only needs to know about
currently active clients.
To enable this new functionality, you need to::
mount -t nfsd nfsd /proc/fs/nfsd
before running exportfs or mountd. It is recommended that all NFS
services be protected from the internet-at-large by a firewall where
that is possible.
mcelog
------
On x86 kernels the mcelog utility is needed to process and log machine check
events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
reported by the CPU. Processing them is strongly encouraged.
Kernel documentation
********************
Sphinx
------
Please see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst <sphinxdoc>`
for details about Sphinx requirements.
Getting updated software
========================
Kernel compilation
******************
gcc
---
- <ftp://ftp.gnu.org/gnu/gcc/>
Clang/LLVM
----------
- :ref:`Getting LLVM <getting_llvm>`.
Make
----
- <ftp://ftp.gnu.org/gnu/make/>
Binutils
--------
- <https://www.kernel.org/pub/linux/devel/binutils/>
Flex
----
- <https://github.com/westes/flex/releases>
Bison
-----
- <ftp://ftp.gnu.org/gnu/bison/>
OpenSSL
-------
- <https://www.openssl.org/>
System utilities
****************
Util-linux
----------
- <https://www.kernel.org/pub/linux/utils/util-linux/>
Kmod
----
- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
Ksymoops
--------
- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
Mkinitrd
--------
- <https://code.launchpad.net/initrd-tools/main>
E2fsprogs
---------
- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
JFSutils
--------
- <http://jfs.sourceforge.net/>
Reiserfsprogs
-------------
- <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>
Xfsprogs
--------
- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
Pcmciautils
-----------
- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
Quota-tools
-----------
- <http://sourceforge.net/projects/linuxquota/>
Intel P6 microcode
------------------
- <https://downloadcenter.intel.com/>
udev
----
- <https://www.freedesktop.org/software/systemd/man/udev.html>
FUSE
----
- <https://github.com/libfuse/libfuse/releases>
mcelog
------
- <http://www.mcelog.org/>
Networking
**********
PPP
---
- <https://download.samba.org/pub/ppp/>
- <https://git.ozlabs.org/?p=ppp.git>
- <https://github.com/paulusmack/ppp/>
NFS-utils
---------
- <http://sourceforge.net/project/showfiles.php?group_id=14>
Iptables
--------
- <https://netfilter.org/projects/iptables/index.html>
Ip-route2
---------
- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
OProfile
--------
- <http://oprofile.sf.net/download/>
NFS-Utils
---------
- <http://nfs.sourceforge.net/>
Kernel documentation
********************
Sphinx
------
- <https://www.sphinx-doc.org/>

View File

@ -1,23 +1,22 @@
config WARN_MISSING_DOCUMENTS config WARN_MISSING_DOCUMENTS
bool "Warn if there's a missing documentation file" bool "Warn if there's a missing documentation file"
depends on COMPILE_TEST depends on COMPILE_TEST
help help
It is not uncommon that a document gets renamed. It is not uncommon that a document gets renamed.
This option makes the Kernel to check for missing dependencies, This option makes the Kernel to check for missing dependencies,
warning when something is missing. Works only if the Kernel warning when something is missing. Works only if the Kernel
is built from a git tree. is built from a git tree.
If unsure, select 'N'. If unsure, select 'N'.
config WARN_ABI_ERRORS config WARN_ABI_ERRORS
bool "Warn if there are errors at ABI files" bool "Warn if there are errors at ABI files"
depends on COMPILE_TEST depends on COMPILE_TEST
help help
The files under Documentation/ABI should follow what's The files under Documentation/ABI should follow what's
described at Documentation/ABI/README. Yet, as they're manually described at Documentation/ABI/README. Yet, as they're manually
written, it would be possible that some of those files would written, it would be possible that some of those files would
have errors that would break them for being parsed by have errors that would break them for being parsed by
scripts/get_abi.pl. Add a check to verify them. scripts/get_abi.pl. Add a check to verify them.
If unsure, select 'N'. If unsure, select 'N'.

View File

@ -13,6 +13,8 @@ PCI Endpoint Framework
pci-test-howto pci-test-howto
pci-ntb-function pci-ntb-function
pci-ntb-howto pci-ntb-howto
pci-vntb-function
pci-vntb-howto
function/binding/pci-test function/binding/pci-test
function/binding/pci-ntb function/binding/pci-ntb

View File

@ -125,14 +125,14 @@ Following piece of code illustrates the usage of the SR-IOV API.
... ...
} }
static int dev_suspend(struct pci_dev *dev, pm_message_t state) static int dev_suspend(struct device *dev)
{ {
... ...
return 0; return 0;
} }
static int dev_resume(struct pci_dev *dev) static int dev_resume(struct device *dev)
{ {
... ...
@ -165,8 +165,7 @@ Following piece of code illustrates the usage of the SR-IOV API.
.id_table = dev_id_table, .id_table = dev_id_table,
.probe = dev_probe, .probe = dev_probe,
.remove = dev_remove, .remove = dev_remove,
.suspend = dev_suspend, .driver.pm = &dev_pm_ops,
.resume = dev_resume,
.shutdown = dev_shutdown, .shutdown = dev_shutdown,
.sriov_configure = dev_sriov_configure, .sriov_configure = dev_sriov_configure,
}; };

View File

@ -273,12 +273,12 @@ Set the DMA mask size
While all drivers should explicitly indicate the DMA capability While all drivers should explicitly indicate the DMA capability
(e.g. 32 or 64 bit) of the PCI bus master, devices with more than (e.g. 32 or 64 bit) of the PCI bus master, devices with more than
32-bit bus master capability for streaming data need the driver 32-bit bus master capability for streaming data need the driver
to "register" this capability by calling pci_set_dma_mask() with to "register" this capability by calling dma_set_mask() with
appropriate parameters. In general this allows more efficient DMA appropriate parameters. In general this allows more efficient DMA
on systems where System RAM exists above 4G _physical_ address. on systems where System RAM exists above 4G _physical_ address.
Drivers for all PCI-X and PCIe compliant devices must call Drivers for all PCI-X and PCIe compliant devices must call
set_dma_mask() as they are 64-bit DMA devices. dma_set_mask() as they are 64-bit DMA devices.
Similarly, drivers must also "register" this capability if the device Similarly, drivers must also "register" this capability if the device
can directly address "coherent memory" in System RAM above 4G physical can directly address "coherent memory" in System RAM above 4G physical

View File

@ -125,7 +125,7 @@ implementation of that functionality. To support the historical interface of
mmap() through files in /proc/bus/pci, platforms may also set HAVE_PCI_MMAP. mmap() through files in /proc/bus/pci, platforms may also set HAVE_PCI_MMAP.
Alternatively, platforms which set HAVE_PCI_MMAP may provide their own Alternatively, platforms which set HAVE_PCI_MMAP may provide their own
implementation of pci_mmap_page_range() instead of defining implementation of pci_mmap_resource_range() instead of defining
ARCH_GENERIC_PCI_MMAP_RESOURCE. ARCH_GENERIC_PCI_MMAP_RESOURCE.
Platforms which support write-combining maps of PCI resources must define Platforms which support write-combining maps of PCI resources must define

View File

@ -973,7 +973,7 @@ The ``->dynticks`` field counts the corresponding CPU's transitions to
and from either dyntick-idle or user mode, so that this counter has an and from either dyntick-idle or user mode, so that this counter has an
even value when the CPU is in dyntick-idle mode or user mode and an odd even value when the CPU is in dyntick-idle mode or user mode and an odd
value otherwise. The transitions to/from user mode need to be counted value otherwise. The transitions to/from user mode need to be counted
for user mode adaptive-ticks support (see timers/NO_HZ.txt). for user mode adaptive-ticks support (see Documentation/timers/no_hz.rst).
The ``->rcu_need_heavy_qs`` field is used to record the fact that the The ``->rcu_need_heavy_qs`` field is used to record the fact that the
RCU core code would really like to see a quiescent state from the RCU core code would really like to see a quiescent state from the

View File

@ -406,7 +406,7 @@ In earlier implementations, the task requesting the expedited grace
period also drove it to completion. This straightforward approach had period also drove it to completion. This straightforward approach had
the disadvantage of needing to account for POSIX signals sent to user the disadvantage of needing to account for POSIX signals sent to user
tasks, so more recent implemementations use the Linux kernel's tasks, so more recent implemementations use the Linux kernel's
`workqueues <https://www.kernel.org/doc/Documentation/core-api/workqueue.rst>`__. workqueues (see Documentation/core-api/workqueue.rst).
The requesting task still does counter snapshotting and funnel-lock The requesting task still does counter snapshotting and funnel-lock
processing, but the task reaching the top of the funnel lock does a processing, but the task reaching the top of the funnel lock does a

View File

@ -370,8 +370,8 @@ pointer fetched by rcu_dereference() may not be used outside of the
outermost RCU read-side critical section containing that outermost RCU read-side critical section containing that
rcu_dereference(), unless protection of the corresponding data rcu_dereference(), unless protection of the corresponding data
element has been passed from RCU to some other synchronization element has been passed from RCU to some other synchronization
mechanism, most commonly locking or `reference mechanism, most commonly locking or reference counting
counting <https://www.kernel.org/doc/Documentation/RCU/rcuref.txt>`__. (see ../../rcuref.rst).
.. |high-quality implementation of C11 memory_order_consume [PDF]| replace:: high-quality implementation of C11 ``memory_order_consume`` [PDF] .. |high-quality implementation of C11 memory_order_consume [PDF]| replace:: high-quality implementation of C11 ``memory_order_consume`` [PDF]
.. _high-quality implementation of C11 memory_order_consume [PDF]: http://www.rdrop.com/users/paulmck/RCU/consume.2015.07.13a.pdf .. _high-quality implementation of C11 memory_order_consume [PDF]: http://www.rdrop.com/users/paulmck/RCU/consume.2015.07.13a.pdf
@ -1844,10 +1844,10 @@ that meets this requirement.
Furthermore, NMI handlers can be interrupted by what appear to RCU to be Furthermore, NMI handlers can be interrupted by what appear to RCU to be
normal interrupts. One way that this can happen is for code that normal interrupts. One way that this can happen is for code that
directly invokes rcu_irq_enter() and rcu_irq_exit() to be called directly invokes ct_irq_enter() and ct_irq_exit() to be called
from an NMI handler. This astonishing fact of life prompted the current from an NMI handler. This astonishing fact of life prompted the current
code structure, which has rcu_irq_enter() invoking code structure, which has ct_irq_enter() invoking
rcu_nmi_enter() and rcu_irq_exit() invoking rcu_nmi_exit(). ct_nmi_enter() and ct_irq_exit() invoking ct_nmi_exit().
And yes, I also learned of this requirement the hard way. And yes, I also learned of this requirement the hard way.
Loadable Modules Loadable Modules
@ -2195,7 +2195,7 @@ scheduling-clock interrupt be enabled when RCU needs it to be:
sections, and RCU believes this CPU to be idle, no problem. This sections, and RCU believes this CPU to be idle, no problem. This
sort of thing is used by some architectures for light-weight sort of thing is used by some architectures for light-weight
exception handlers, which can then avoid the overhead of exception handlers, which can then avoid the overhead of
rcu_irq_enter() and rcu_irq_exit() at exception entry and ct_irq_enter() and ct_irq_exit() at exception entry and
exit, respectively. Some go further and avoid the entireties of exit, respectively. Some go further and avoid the entireties of
irq_enter() and irq_exit(). irq_enter() and irq_exit().
Just make very sure you are running some of your tests with Just make very sure you are running some of your tests with
@ -2226,7 +2226,7 @@ scheduling-clock interrupt be enabled when RCU needs it to be:
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| **Answer**: | | **Answer**: |
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| One approach is to do ``rcu_irq_exit();rcu_irq_enter();`` every so | | One approach is to do ``ct_irq_exit();ct_irq_enter();`` every so |
| often. But given that long-running interrupt handlers can cause other | | often. But given that long-running interrupt handlers can cause other |
| problems, not least for response time, shouldn't you work to keep | | problems, not least for response time, shouldn't you work to keep |
| your interrupt handler's runtime within reasonable bounds? | | your interrupt handler's runtime within reasonable bounds? |
@ -2654,6 +2654,38 @@ synchronize_rcu(), and rcu_barrier(), respectively. In
three APIs are therefore implemented by separate functions that check three APIs are therefore implemented by separate functions that check
for voluntary context switches. for voluntary context switches.
Tasks Rude RCU
~~~~~~~~~~~~~~
Some forms of tracing need to wait for all preemption-disabled regions
of code running on any online CPU, including those executed when RCU is
not watching. This means that synchronize_rcu() is insufficient, and
Tasks Rude RCU must be used instead. This flavor of RCU does its work by
forcing a workqueue to be scheduled on each online CPU, hence the "Rude"
moniker. And this operation is considered to be quite rude by real-time
workloads that don't want their ``nohz_full`` CPUs receiving IPIs and
by battery-powered systems that don't want their idle CPUs to be awakened.
The tasks-rude-RCU API is also reader-marking-free and thus quite compact,
consisting of call_rcu_tasks_rude(), synchronize_rcu_tasks_rude(),
and rcu_barrier_tasks_rude().
Tasks Trace RCU
~~~~~~~~~~~~~~~
Some forms of tracing need to sleep in readers, but cannot tolerate
SRCU's read-side overhead, which includes a full memory barrier in both
srcu_read_lock() and srcu_read_unlock(). This need is handled by a
Tasks Trace RCU that uses scheduler locking and IPIs to synchronize with
readers. Real-time systems that cannot tolerate IPIs may build their
kernels with ``CONFIG_TASKS_TRACE_RCU_READ_MB=y``, which avoids the IPIs at
the expense of adding full memory barriers to the read-side primitives.
The tasks-trace-RCU API is also reasonably compact,
consisting of rcu_read_lock_trace(), rcu_read_unlock_trace(),
rcu_read_lock_trace_held(), call_rcu_tasks_trace(),
synchronize_rcu_tasks_trace(), and rcu_barrier_tasks_trace().
Possible Future Changes Possible Future Changes
----------------------- -----------------------

View File

@ -33,8 +33,8 @@ Situation 1: Hash Tables
Hash tables are often implemented as an array, where each array entry Hash tables are often implemented as an array, where each array entry
has a linked-list hash chain. Each hash chain can be protected by RCU has a linked-list hash chain. Each hash chain can be protected by RCU
as described in the listRCU.txt document. This approach also applies as described in listRCU.rst. This approach also applies to other
to other array-of-list situations, such as radix trees. array-of-list situations, such as radix trees.
.. _static_arrays: .. _static_arrays:

View File

@ -140,8 +140,7 @@ over a rather long period of time, but improvements are always welcome!
prevents destructive compiler optimizations. However, prevents destructive compiler optimizations. However,
with a bit of devious creativity, it is possible to with a bit of devious creativity, it is possible to
mishandle the return value from rcu_dereference(). mishandle the return value from rcu_dereference().
Please see rcu_dereference.txt in this directory for Please see rcu_dereference.rst for more information.
more information.
The rcu_dereference() primitive is used by the The rcu_dereference() primitive is used by the
various "_rcu()" list-traversal primitives, such various "_rcu()" list-traversal primitives, such
@ -151,7 +150,7 @@ over a rather long period of time, but improvements are always welcome!
primitives. This is particularly useful in code that primitives. This is particularly useful in code that
is common to readers and updaters. However, lockdep is common to readers and updaters. However, lockdep
will complain if you access rcu_dereference() outside will complain if you access rcu_dereference() outside
of an RCU read-side critical section. See lockdep.txt of an RCU read-side critical section. See lockdep.rst
to learn what to do about this. to learn what to do about this.
Of course, neither rcu_dereference() nor the "_rcu()" Of course, neither rcu_dereference() nor the "_rcu()"
@ -323,7 +322,7 @@ over a rather long period of time, but improvements are always welcome!
primitives when the update-side lock is held is that doing so primitives when the update-side lock is held is that doing so
can be quite helpful in reducing code bloat when common code is can be quite helpful in reducing code bloat when common code is
shared between readers and updaters. Additional primitives shared between readers and updaters. Additional primitives
are provided for this case, as discussed in lockdep.txt. are provided for this case, as discussed in lockdep.rst.
One exception to this rule is when data is only ever added to One exception to this rule is when data is only ever added to
the linked data structure, and is never removed during any the linked data structure, and is never removed during any
@ -480,4 +479,4 @@ over a rather long period of time, but improvements are always welcome!
both rcu_barrier() and synchronize_rcu(), if necessary, using both rcu_barrier() and synchronize_rcu(), if necessary, using
something like workqueues to to execute them concurrently. something like workqueues to to execute them concurrently.
See rcubarrier.txt for more information. See rcubarrier.rst for more information.

View File

@ -10,9 +10,8 @@ A "grace period" must elapse between the two parts, and this grace period
must be long enough that any readers accessing the item being deleted have must be long enough that any readers accessing the item being deleted have
since dropped their references. For example, an RCU-protected deletion since dropped their references. For example, an RCU-protected deletion
from a linked list would first remove the item from the list, wait for from a linked list would first remove the item from the list, wait for
a grace period to elapse, then free the element. See the a grace period to elapse, then free the element. See listRCU.rst for more
:ref:`Documentation/RCU/listRCU.rst <list_rcu_doc>` for more information on information on using RCU with linked lists.
using RCU with linked lists.
Frequently Asked Questions Frequently Asked Questions
-------------------------- --------------------------
@ -50,7 +49,7 @@ Frequently Asked Questions
- If I am running on a uniprocessor kernel, which can only do one - If I am running on a uniprocessor kernel, which can only do one
thing at a time, why should I wait for a grace period? thing at a time, why should I wait for a grace period?
See :ref:`Documentation/RCU/UP.rst <up_doc>` for more information. See UP.rst for more information.
- How can I see where RCU is currently used in the Linux kernel? - How can I see where RCU is currently used in the Linux kernel?
@ -64,13 +63,13 @@ Frequently Asked Questions
- What guidelines should I follow when writing code that uses RCU? - What guidelines should I follow when writing code that uses RCU?
See the checklist.txt file in this directory. See checklist.rst.
- Why the name "RCU"? - Why the name "RCU"?
"RCU" stands for "read-copy update". "RCU" stands for "read-copy update".
:ref:`Documentation/RCU/listRCU.rst <list_rcu_doc>` has more information on where listRCU.rst has more information on where this name came from, search
this name came from, search for "read-copy update" to find it. for "read-copy update" to find it.
- I hear that RCU is patented? What is with that? - I hear that RCU is patented? What is with that?

View File

@ -8,7 +8,7 @@ This section describes how to use hlist_nulls to
protect read-mostly linked lists and protect read-mostly linked lists and
objects using SLAB_TYPESAFE_BY_RCU allocations. objects using SLAB_TYPESAFE_BY_RCU allocations.
Please read the basics in Documentation/RCU/listRCU.rst Please read the basics in listRCU.rst.
Using 'nulls' Using 'nulls'
============= =============

View File

@ -97,12 +97,12 @@ warnings:
which will include additional debugging information. which will include additional debugging information.
- A low-level kernel issue that either fails to invoke one of the - A low-level kernel issue that either fails to invoke one of the
variants of rcu_user_enter(), rcu_user_exit(), rcu_idle_enter(), variants of rcu_eqs_enter(true), rcu_eqs_exit(true), ct_idle_enter(),
rcu_idle_exit(), rcu_irq_enter(), or rcu_irq_exit() on the one ct_idle_exit(), ct_irq_enter(), or ct_irq_exit() on the one
hand, or that invokes one of them too many times on the other. hand, or that invokes one of them too many times on the other.
Historically, the most frequent issue has been an omission Historically, the most frequent issue has been an omission
of either irq_enter() or irq_exit(), which in turn invoke of either irq_enter() or irq_exit(), which in turn invoke
rcu_irq_enter() or rcu_irq_exit(), respectively. Building your ct_irq_enter() or ct_irq_exit(), respectively. Building your
kernel with CONFIG_RCU_EQS_DEBUG=y can help track down these types kernel with CONFIG_RCU_EQS_DEBUG=y can help track down these types
of issues, which sometimes arise in architecture-specific code. of issues, which sometimes arise in architecture-specific code.
@ -162,6 +162,26 @@ CONFIG_RCU_CPU_STALL_TIMEOUT
Stall-warning messages may be enabled and disabled completely via Stall-warning messages may be enabled and disabled completely via
/sys/module/rcupdate/parameters/rcu_cpu_stall_suppress. /sys/module/rcupdate/parameters/rcu_cpu_stall_suppress.
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT
--------------------------------
Same as the CONFIG_RCU_CPU_STALL_TIMEOUT parameter but only for
the expedited grace period. This parameter defines the period
of time that RCU will wait from the beginning of an expedited
grace period until it issues an RCU CPU stall warning. This time
period is normally 20 milliseconds on Android devices. A zero
value causes the CONFIG_RCU_CPU_STALL_TIMEOUT value to be used,
after conversion to milliseconds.
This configuration parameter may be changed at runtime via the
/sys/module/rcupdate/parameters/rcu_exp_cpu_stall_timeout, however
this parameter is checked only at the beginning of a cycle. If you
are in a current stall cycle, setting it to a new value will change
the timeout for the -next- stall.
Stall-warning messages may be enabled and disabled completely via
/sys/module/rcupdate/parameters/rcu_cpu_stall_suppress.
RCU_STALL_DELAY_DELTA RCU_STALL_DELAY_DELTA
--------------------- ---------------------

View File

@ -224,7 +224,7 @@ synchronize_rcu()
be delayed. This property results in system resilience in face be delayed. This property results in system resilience in face
of denial-of-service attacks. Code using call_rcu() should limit of denial-of-service attacks. Code using call_rcu() should limit
update rate in order to gain this same sort of resilience. See update rate in order to gain this same sort of resilience. See
checklist.txt for some approaches to limiting the update rate. checklist.rst for some approaches to limiting the update rate.
rcu_assign_pointer() rcu_assign_pointer()
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
@ -318,7 +318,7 @@ rcu_dereference()
must prohibit. The rcu_dereference_protected() variant takes must prohibit. The rcu_dereference_protected() variant takes
a lockdep expression to indicate which locks must be acquired a lockdep expression to indicate which locks must be acquired
by the caller. If the indicated protection is not provided, by the caller. If the indicated protection is not provided,
a lockdep splat is emitted. See Documentation/RCU/Design/Requirements/Requirements.rst a lockdep splat is emitted. See Design/Requirements/Requirements.rst
and the API's code comments for more details and example usage. and the API's code comments for more details and example usage.
.. [2] If the list_for_each_entry_rcu() instance might be used by .. [2] If the list_for_each_entry_rcu() instance might be used by
@ -399,8 +399,7 @@ for specialized uses, but are relatively uncommon.
This section shows a simple use of the core RCU API to protect a This section shows a simple use of the core RCU API to protect a
global pointer to a dynamically allocated structure. More-typical global pointer to a dynamically allocated structure. More-typical
uses of RCU may be found in :ref:`listRCU.rst <list_rcu_doc>`, uses of RCU may be found in listRCU.rst, arrayRCU.rst, and NMI-RCU.rst.
:ref:`arrayRCU.rst <array_rcu_doc>`, and :ref:`NMI-RCU.rst <NMI_rcu_doc>`.
:: ::
struct foo { struct foo {
@ -482,10 +481,9 @@ So, to sum up:
RCU read-side critical sections that might be referencing that RCU read-side critical sections that might be referencing that
data item. data item.
See checklist.txt for additional rules to follow when using RCU. See checklist.rst for additional rules to follow when using RCU.
And again, more-typical uses of RCU may be found in :ref:`listRCU.rst And again, more-typical uses of RCU may be found in listRCU.rst,
<list_rcu_doc>`, :ref:`arrayRCU.rst <array_rcu_doc>`, and :ref:`NMI-RCU.rst arrayRCU.rst, and NMI-RCU.rst.
<NMI_rcu_doc>`.
.. _4_whatisRCU: .. _4_whatisRCU:
@ -579,7 +577,7 @@ to avoid having to write your own callback::
kfree_rcu(old_fp, rcu); kfree_rcu(old_fp, rcu);
Again, see checklist.txt for additional rules governing the use of RCU. Again, see checklist.rst for additional rules governing the use of RCU.
.. _5_whatisRCU: .. _5_whatisRCU:
@ -663,7 +661,7 @@ been able to write-acquire the lock otherwise. The smp_mb__after_spinlock()
promotes synchronize_rcu() to a full memory barrier in compliance with promotes synchronize_rcu() to a full memory barrier in compliance with
the "Memory-Barrier Guarantees" listed in: the "Memory-Barrier Guarantees" listed in:
Documentation/RCU/Design/Requirements/Requirements.rst Design/Requirements/Requirements.rst
It is possible to nest rcu_read_lock(), since reader-writer locks may It is possible to nest rcu_read_lock(), since reader-writer locks may
be recursively acquired. Note also that rcu_read_lock() is immune be recursively acquired. Note also that rcu_read_lock() is immune

View File

@ -15,6 +15,7 @@ c) swapping in pages
d) memory reclaim d) memory reclaim
e) thrashing page cache e) thrashing page cache
f) direct compact f) direct compact
g) write-protect copy
and makes these statistics available to userspace through and makes these statistics available to userspace through
the taskstats interface. the taskstats interface.
@ -48,7 +49,7 @@ this structure. See
for a description of the fields pertaining to delay accounting. for a description of the fields pertaining to delay accounting.
It will generally be in the form of counters returning the cumulative It will generally be in the form of counters returning the cumulative
delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page
cache, direct compact etc. cache, direct compact, write-protect copy etc.
Taking the difference of two successive readings of a given Taking the difference of two successive readings of a given
counter (say cpu_delay_total) for a task will give the delay counter (say cpu_delay_total) for a task will give the delay
@ -117,6 +118,8 @@ Get sum of delays, since system boot, for all pids with tgid 5::
0 0 0ms 0 0 0ms
COMPACT count delay total delay average COMPACT count delay total delay average
0 0 0ms 0 0 0ms
WPCOPY count delay total delay average
0 0 0ms
Get IO accounting for pid 1, it works only with -p:: Get IO accounting for pid 1, it works only with -p::

View File

@ -37,11 +37,7 @@ Pressure interface
Pressure information for each resource is exported through the Pressure information for each resource is exported through the
respective file in /proc/pressure/ -- cpu, memory, and io. respective file in /proc/pressure/ -- cpu, memory, and io.
The format for CPU is as such:: The format is as such::
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
and for memory and IO::
some avg10=0.00 avg60=0.00 avg300=0.00 total=0 some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0 full avg10=0.00 avg60=0.00 avg300=0.00 total=0
@ -58,6 +54,9 @@ situation from a state where some tasks are stalled but the CPU is
still doing productive work. As such, time spent in this subset of the still doing productive work. As such, time spent in this subset of the
stall state is tracked separately and exported in the "full" averages. stall state is tracked separately and exported in the "full" averages.
CPU full is undefined at the system level, but has been reported
since 5.13, so it is set to zero for backward compatibility.
The ratios (in %) are tracked as recent trends over ten, sixty, and The ratios (in %) are tracked as recent trends over ten, sixty, and
three hundred second windows, which gives insight into short term events three hundred second windows, which gives insight into short term events
as well as medium and long term trends. The total absolute stall time as well as medium and long term trends. The total absolute stall time

View File

@ -1,9 +1,9 @@
.. _readme: .. _readme:
Linux kernel release 5.x <http://kernel.org/> Linux kernel release 6.x <http://kernel.org/>
============================================= =============================================
These are the release notes for Linux version 5. Read them carefully, These are the release notes for Linux version 6. Read them carefully,
as they tell you what this is all about, explain how to install the as they tell you what this is all about, explain how to install the
kernel, and what to do if something goes wrong. kernel, and what to do if something goes wrong.
@ -63,7 +63,7 @@ Installing the kernel source
directory where you have permissions (e.g. your home directory) and directory where you have permissions (e.g. your home directory) and
unpack it:: unpack it::
xz -cd linux-5.x.tar.xz | tar xvf - xz -cd linux-6.x.tar.xz | tar xvf -
Replace "X" with the version number of the latest kernel. Replace "X" with the version number of the latest kernel.
@ -72,12 +72,12 @@ Installing the kernel source
files. They should match the library, and not get messed up by files. They should match the library, and not get messed up by
whatever the kernel-du-jour happens to be. whatever the kernel-du-jour happens to be.
- You can also upgrade between 5.x releases by patching. Patches are - You can also upgrade between 6.x releases by patching. Patches are
distributed in the xz format. To install by patching, get all the distributed in the xz format. To install by patching, get all the
newer patch files, enter the top level directory of the kernel source newer patch files, enter the top level directory of the kernel source
(linux-5.x) and execute:: (linux-6.x) and execute::
xz -cd ../patch-5.x.xz | patch -p1 xz -cd ../patch-6.x.xz | patch -p1
Replace "x" for all versions bigger than the version "x" of your current Replace "x" for all versions bigger than the version "x" of your current
source tree, **in_order**, and you should be ok. You may want to remove source tree, **in_order**, and you should be ok. You may want to remove
@ -85,13 +85,13 @@ Installing the kernel source
that there are no failed patches (some-file-name# or some-file-name.rej). that there are no failed patches (some-file-name# or some-file-name.rej).
If there are, either you or I have made a mistake. If there are, either you or I have made a mistake.
Unlike patches for the 5.x kernels, patches for the 5.x.y kernels Unlike patches for the 6.x kernels, patches for the 6.x.y kernels
(also known as the -stable kernels) are not incremental but instead apply (also known as the -stable kernels) are not incremental but instead apply
directly to the base 5.x kernel. For example, if your base kernel is 5.0 directly to the base 6.x kernel. For example, if your base kernel is 6.0
and you want to apply the 5.0.3 patch, you must not first apply the 5.0.1 and you want to apply the 6.0.3 patch, you must not first apply the 6.0.1
and 5.0.2 patches. Similarly, if you are running kernel version 5.0.2 and and 6.0.2 patches. Similarly, if you are running kernel version 6.0.2 and
want to jump to 5.0.3, you must first reverse the 5.0.2 patch (that is, want to jump to 6.0.3, you must first reverse the 6.0.2 patch (that is,
patch -R) **before** applying the 5.0.3 patch. You can read more on this in patch -R) **before** applying the 6.0.3 patch. You can read more on this in
:ref:`Documentation/process/applying-patches.rst <applying_patches>`. :ref:`Documentation/process/applying-patches.rst <applying_patches>`.
Alternatively, the script patch-kernel can be used to automate this Alternatively, the script patch-kernel can be used to automate this
@ -114,7 +114,7 @@ Installing the kernel source
Software requirements Software requirements
--------------------- ---------------------
Compiling and running the 5.x kernels requires up-to-date Compiling and running the 6.x kernels requires up-to-date
versions of various software packages. Consult versions of various software packages. Consult
:ref:`Documentation/process/changes.rst <changes>` for the minimum version numbers :ref:`Documentation/process/changes.rst <changes>` for the minimum version numbers
required and how to get updates for these packages. Beware that using required and how to get updates for these packages. Beware that using
@ -132,12 +132,12 @@ Build directory for the kernel
place for the output files (including .config). place for the output files (including .config).
Example:: Example::
kernel source code: /usr/src/linux-5.x kernel source code: /usr/src/linux-6.x
build directory: /home/name/build/kernel build directory: /home/name/build/kernel
To configure and build the kernel, use:: To configure and build the kernel, use::
cd /usr/src/linux-5.x cd /usr/src/linux-6.x
make O=/home/name/build/kernel menuconfig make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install sudo make O=/home/name/build/kernel modules_install install

View File

@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0
=========================== =============
The Linux RapidIO Subsystem Block Devices
=========================== =============
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View File

@ -343,6 +343,11 @@ Admin can request writeback of those idle pages at right timing via::
With the command, zram will writeback idle pages from memory to the storage. With the command, zram will writeback idle pages from memory to the storage.
Additionally, if a user choose to writeback only huge and idle pages
this can be accomplished with::
echo huge_idle > /sys/block/zramX/writeback
If an admin wants to write a specific page in zram device to the backing device, If an admin wants to write a specific page in zram device to the backing device,
they could write a page index into the interface. they could write a page index into the interface.

View File

@ -158,9 +158,15 @@ Each key-value pair is shown in each line with following style::
Boot Kernel With a Boot Config Boot Kernel With a Boot Config
============================== ==============================
Since the boot configuration file is loaded with initrd, it will be added There are two options to boot the kernel with bootconfig: attaching the
to the end of the initrd (initramfs) image file with padding, size, bootconfig to the initrd image or embedding it in the kernel itself.
checksum and 12-byte magic word as below.
Attaching a Boot Config to Initrd
---------------------------------
Since the boot configuration file is loaded with initrd by default,
it will be added to the end of the initrd (initramfs) image file with
padding, size, checksum and 12-byte magic word as below.
[initrd][bootconfig][padding][size(le32)][checksum(le32)][#BOOTCONFIG\n] [initrd][bootconfig][padding][size(le32)][checksum(le32)][#BOOTCONFIG\n]
@ -196,6 +202,25 @@ To remove the config from the image, you can use -d option as below::
Then add "bootconfig" on the normal kernel command line to tell the Then add "bootconfig" on the normal kernel command line to tell the
kernel to look for the bootconfig at the end of the initrd file. kernel to look for the bootconfig at the end of the initrd file.
Embedding a Boot Config into Kernel
-----------------------------------
If you can not use initrd, you can also embed the bootconfig file in the
kernel by Kconfig options. In this case, you need to recompile the kernel
with the following configs::
CONFIG_BOOT_CONFIG_EMBED=y
CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"
``CONFIG_BOOT_CONFIG_EMBED_FILE`` requires an absolute path or a relative
path to the bootconfig file from source tree or object tree.
The kernel will embed it as the default bootconfig.
Just as when attaching the bootconfig to the initrd, you need ``bootconfig``
option on the kernel command line to enable the embedded bootconfig.
Note that even if you set this option, you can override the embedded
bootconfig by another bootconfig which attached to the initrd.
Kernel parameters via Boot Config Kernel parameters via Boot Config
================================= =================================

View File

@ -97,7 +97,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
============= =============
Page Cache is charged at Page Cache is charged at
- add_to_page_cache_locked(). - filemap_add_folio().
The logic is very clear. (About migration, see below) The logic is very clear. (About migration, see below)

View File

@ -184,6 +184,14 @@ cgroup v2 currently supports the following mount options.
ignored on non-init namespace mounts. Please refer to the ignored on non-init namespace mounts. Please refer to the
Delegation section for details. Delegation section for details.
favordynmods
Reduce the latencies of dynamic cgroup modifications such as
task migrations and controller on/offs at the cost of making
hot path operations such as forks and exits more expensive.
The static usage pattern of creating a cgroup, enabling
controllers, and then seeding it with CLONE_INTO_CGROUP is
not affected by this option.
memory_localevents memory_localevents
Only populate memory.events with data for the current cgroup, Only populate memory.events with data for the current cgroup,
and not any subtrees. This is legacy behaviour, the default and not any subtrees. This is legacy behaviour, the default
@ -1208,6 +1216,41 @@ PAGE_SIZE multiple when read back.
high limit is used and monitored properly, this limit's high limit is used and monitored properly, this limit's
utility is limited to providing the final safety net. utility is limited to providing the final safety net.
memory.reclaim
A write-only nested-keyed file which exists for all cgroups.
This is a simple interface to trigger memory reclaim in the
target cgroup.
This file accepts a single key, the number of bytes to reclaim.
No nested keys are currently supported.
Example::
echo "1G" > memory.reclaim
The interface can be later extended with nested keys to
configure the reclaim behavior. For example, specify the
type of memory to reclaim from (anon, file, ..).
Please note that the kernel can over or under reclaim from
the target cgroup. If less bytes are reclaimed than the
specified amount, -EAGAIN is returned.
Please note that the proactive reclaim (triggered by this
interface) is not meant to indicate memory pressure on the
memory cgroup. Therefore socket memory balancing triggered by
the memory reclaim normally is not exercised in this case.
This means that the networking layer will not adapt based on
reclaim induced by memory.reclaim.
memory.peak
A read-only single value file which exists on non-root
cgroups.
The max memory usage recorded for the cgroup and its
descendants since the creation of the cgroup.
memory.oom.group memory.oom.group
A read-write single value file which exists on non-root A read-write single value file which exists on non-root
cgroups. The default value is "0". cgroups. The default value is "0".
@ -1326,6 +1369,12 @@ PAGE_SIZE multiple when read back.
Amount of cached filesystem data that is swap-backed, Amount of cached filesystem data that is swap-backed,
such as tmpfs, shm segments, shared anonymous mmap()s such as tmpfs, shm segments, shared anonymous mmap()s
zswap
Amount of memory consumed by the zswap compression backend.
zswapped
Amount of application memory swapped out to zswap.
file_mapped file_mapped
Amount of cached filesystem data mapped with mmap() Amount of cached filesystem data mapped with mmap()
@ -1399,6 +1448,24 @@ PAGE_SIZE multiple when read back.
workingset_nodereclaim workingset_nodereclaim
Number of times a shadow node has been reclaimed Number of times a shadow node has been reclaimed
pgscan (npn)
Amount of scanned pages (in an inactive LRU list)
pgsteal (npn)
Amount of reclaimed pages
pgscan_kswapd (npn)
Amount of scanned pages by kswapd (in an inactive LRU list)
pgscan_direct (npn)
Amount of scanned pages directly (in an inactive LRU list)
pgsteal_kswapd (npn)
Amount of reclaimed pages by kswapd
pgsteal_direct (npn)
Amount of reclaimed pages directly
pgfault (npn) pgfault (npn)
Total number of page faults incurred Total number of page faults incurred
@ -1408,12 +1475,6 @@ PAGE_SIZE multiple when read back.
pgrefill (npn) pgrefill (npn)
Amount of scanned pages (in an active LRU list) Amount of scanned pages (in an active LRU list)
pgscan (npn)
Amount of scanned pages (in an inactive LRU list)
pgsteal (npn)
Amount of reclaimed pages
pgactivate (npn) pgactivate (npn)
Amount of pages moved to the active LRU list Amount of pages moved to the active LRU list
@ -1516,6 +1577,21 @@ PAGE_SIZE multiple when read back.
higher than the limit for an extended period of time. This higher than the limit for an extended period of time. This
reduces the impact on the workload and memory management. reduces the impact on the workload and memory management.
memory.zswap.current
A read-only single value file which exists on non-root
cgroups.
The total amount of memory consumed by the zswap compression
backend.
memory.zswap.max
A read-write single value file which exists on non-root
cgroups. The default is "max".
Zswap usage hard limit. If a cgroup's zswap pool reaches this
limit, it will refuse to take any more stores before existing
entries fault back in or are written out to disk.
memory.pressure memory.pressure
A read-only nested-keyed file. A read-only nested-keyed file.
@ -1881,7 +1957,7 @@ IO Latency Interface Files
io.latency io.latency
This takes a similar format as the other controllers. This takes a similar format as the other controllers.
"MAJOR:MINOR target=<target time in microseconds" "MAJOR:MINOR target=<target time in microseconds>"
io.stat io.stat
If the controller is enabled you will see extra stats in io.stat in If the controller is enabled you will see extra stats in io.stat in

View File

@ -20,6 +20,7 @@ Constructor parameters:
size) size)
5. the number of optional parameters (the parameters with an argument 5. the number of optional parameters (the parameters with an argument
count as two) count as two)
start_sector n (default: 0) start_sector n (default: 0)
offset from the start of cache device in 512-byte sectors offset from the start of cache device in 512-byte sectors
high_watermark n (default: 50) high_watermark n (default: 50)
@ -74,20 +75,21 @@ Constructor parameters:
the origin volume in the last n milliseconds the origin volume in the last n milliseconds
Status: Status:
1. error indicator - 0 if there was no error, otherwise error number 1. error indicator - 0 if there was no error, otherwise error number
2. the number of blocks 2. the number of blocks
3. the number of free blocks 3. the number of free blocks
4. the number of blocks under writeback 4. the number of blocks under writeback
5. the number of read requests 5. the number of read blocks
6. the number of read requests that hit the cache 6. the number of read blocks that hit the cache
7. the number of write requests 7. the number of write blocks
8. the number of write requests that hit uncommitted block 8. the number of write blocks that hit uncommitted block
9. the number of write requests that hit committed block 9. the number of write blocks that hit committed block
10. the number of write requests that bypass the cache 10. the number of write blocks that bypass the cache
11. the number of write requests that are allocated in the cache 11. the number of write blocks that are allocated in the cache
12. the number of write requests that are blocked on the freelist 12. the number of write requests that are blocked on the freelist
13. the number of flush requests 13. the number of flush requests
14. the number of discard requests 14. the number of discarded blocks
Messages: Messages:
flush flush

View File

@ -7,10 +7,9 @@ This list is the Linux Device List, the official registry of allocated
device numbers and ``/dev`` directory nodes for the Linux operating device numbers and ``/dev`` directory nodes for the Linux operating
system. system.
The LaTeX version of this document is no longer maintained, nor is The version of this document at lanana.org is no longer maintained. This
the document that used to reside at lanana.org. This version in the version in the mainline Linux kernel is the master document. Updates
mainline Linux kernel is the master document. Updates shall be sent shall be sent as patches to the kernel maintainers (see the
as patches to the kernel maintainers (see the
:ref:`Documentation/process/submitting-patches.rst <submittingpatches>` document). :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` document).
Specifically explore the sections titled "CHAR and MISC DRIVERS", and Specifically explore the sections titled "CHAR and MISC DRIVERS", and
"BLOCK LAYER" in the MAINTAINERS file to find the right maintainers "BLOCK LAYER" in the MAINTAINERS file to find the right maintainers

View File

@ -1933,7 +1933,7 @@
... ...
255= /dev/umem/d15p15 15th partition of 16th board. 255= /dev/umem/d15p15 15th partition of 16th board.
117 char COSA/SRP synchronous serial card 117 char [REMOVED] COSA/SRP synchronous serial card
0 = /dev/cosa0c0 1st board, 1st channel 0 = /dev/cosa0c0 1st board, 1st channel
1 = /dev/cosa0c1 1st board, 2nd channel 1 = /dev/cosa0c1 1st board, 2nd channel
... ...

View File

@ -7,10 +7,10 @@ as a PE/COFF image, thereby convincing EFI firmware loaders to load
it as an EFI executable. The code that modifies the bzImage header, it as an EFI executable. The code that modifies the bzImage header,
along with the EFI-specific entry point that the firmware loader along with the EFI-specific entry point that the firmware loader
jumps to are collectively known as the "EFI boot stub", and live in jumps to are collectively known as the "EFI boot stub", and live in
arch/x86/boot/header.S and arch/x86/boot/compressed/eboot.c, arch/x86/boot/header.S and drivers/firmware/efi/libstub/x86-stub.c,
respectively. For ARM the EFI stub is implemented in respectively. For ARM the EFI stub is implemented in
arch/arm/boot/compressed/efi-header.S and arch/arm/boot/compressed/efi-header.S and
arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared drivers/firmware/efi/libstub/arm32-stub.c. EFI stub code that is shared
between architectures is in drivers/firmware/efi/libstub. between architectures is in drivers/firmware/efi/libstub.
For arm64, there is no compressed kernel support, so the Image itself For arm64, there is no compressed kernel support, so the Image itself

View File

@ -17,3 +17,4 @@ are configurable at compile, boot or run time.
special-register-buffer-data-sampling.rst special-register-buffer-data-sampling.rst
core-scheduling.rst core-scheduling.rst
l1d_flush.rst l1d_flush.rst
processor_mmio_stale_data.rst

View File

@ -422,6 +422,14 @@ The possible values in this file are:
'RSB filling' Protection of RSB on context switch enabled 'RSB filling' Protection of RSB on context switch enabled
============= =========================================== ============= ===========================================
- EIBRS Post-barrier Return Stack Buffer (PBRSB) protection status:
=========================== =======================================================
'PBRSB-eIBRS: SW sequence' CPU is affected and protection of RSB on VMEXIT enabled
'PBRSB-eIBRS: Vulnerable' CPU is vulnerable
'PBRSB-eIBRS: Not affected' CPU is not affected by PBRSB
=========================== =======================================================
Full mitigation might require a microcode update from the CPU Full mitigation might require a microcode update from the CPU
vendor. When the necessary microcode is not available, the kernel will vendor. When the necessary microcode is not available, the kernel will
report vulnerability. report vulnerability.

View File

@ -99,6 +99,7 @@ parameter is applicable::
ALSA ALSA sound support is enabled. ALSA ALSA sound support is enabled.
APIC APIC support is enabled. APIC APIC support is enabled.
APM Advanced Power Management support is enabled. APM Advanced Power Management support is enabled.
APPARMOR AppArmor support is enabled.
ARM ARM architecture is enabled. ARM ARM architecture is enabled.
ARM64 ARM64 architecture is enabled. ARM64 ARM64 architecture is enabled.
AX25 Appropriate AX.25 support is enabled. AX25 Appropriate AX.25 support is enabled.
@ -108,15 +109,15 @@ parameter is applicable::
DYNAMIC_DEBUG Build in debug messages and enable them at runtime DYNAMIC_DEBUG Build in debug messages and enable them at runtime
EDD BIOS Enhanced Disk Drive Services (EDD) is enabled EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
EFI EFI Partitioning (GPT) is enabled EFI EFI Partitioning (GPT) is enabled
EIDE EIDE/ATAPI support is enabled.
EVM Extended Verification Module EVM Extended Verification Module
FB The frame buffer device is enabled. FB The frame buffer device is enabled.
FTRACE Function tracing enabled. FTRACE Function tracing enabled.
GCOV GCOV profiling is enabled. GCOV GCOV profiling is enabled.
HIBERNATION HIBERNATION is enabled.
HW Appropriate hardware is enabled. HW Appropriate hardware is enabled.
HYPER_V HYPERV support is enabled.
IA-64 IA-64 architecture is enabled. IA-64 IA-64 architecture is enabled.
IMA Integrity measurement architecture is enabled. IMA Integrity measurement architecture is enabled.
IOSCHED More than one I/O scheduler is enabled.
IP_PNP IP DHCP, BOOTP, or RARP is enabled. IP_PNP IP DHCP, BOOTP, or RARP is enabled.
IPV6 IPv6 support is enabled. IPV6 IPv6 support is enabled.
ISAPNP ISA PnP code is enabled. ISAPNP ISA PnP code is enabled.
@ -140,7 +141,6 @@ parameter is applicable::
NUMA NUMA support is enabled. NUMA NUMA support is enabled.
NFS Appropriate NFS support is enabled. NFS Appropriate NFS support is enabled.
OF Devicetree is enabled. OF Devicetree is enabled.
OSS OSS sound support is enabled.
PV_OPS A paravirtualized kernel is enabled. PV_OPS A paravirtualized kernel is enabled.
PARIDE The ParIDE (parallel port IDE) subsystem is enabled. PARIDE The ParIDE (parallel port IDE) subsystem is enabled.
PARISC The PA-RISC architecture is enabled. PARISC The PA-RISC architecture is enabled.
@ -160,7 +160,6 @@ parameter is applicable::
the Documentation/scsi/ sub-directory. the Documentation/scsi/ sub-directory.
SECURITY Different security models are enabled. SECURITY Different security models are enabled.
SELINUX SELinux support is enabled. SELINUX SELinux support is enabled.
APPARMOR AppArmor support is enabled.
SERIAL Serial support is enabled. SERIAL Serial support is enabled.
SH SuperH architecture is enabled. SH SuperH architecture is enabled.
SMP The kernel is an SMP kernel. SMP The kernel is an SMP kernel.
@ -168,7 +167,6 @@ parameter is applicable::
SWSUSP Software suspend (hibernation) is enabled. SWSUSP Software suspend (hibernation) is enabled.
SUSPEND System suspend states are enabled. SUSPEND System suspend states are enabled.
TPM TPM drivers are enabled. TPM TPM drivers are enabled.
TS Appropriate touchscreen support is enabled.
UMS USB Mass Storage support is enabled. UMS USB Mass Storage support is enabled.
USB USB support is enabled. USB USB support is enabled.
USBHID USB Human Interface Device support is enabled. USBHID USB Human Interface Device support is enabled.
@ -177,7 +175,6 @@ parameter is applicable::
VGA The VGA console has been enabled. VGA The VGA console has been enabled.
VT Virtual terminal support is enabled. VT Virtual terminal support is enabled.
WDT Watchdog support is enabled. WDT Watchdog support is enabled.
XT IBM PC/XT MFM hard disk support is enabled.
X86-32 X86-32, aka i386 architecture is enabled. X86-32 X86-32, aka i386 architecture is enabled.
X86-64 X86-64 architecture is enabled. X86-64 X86-64 architecture is enabled.
More X86-64 boot options can be found in More X86-64 boot options can be found in
@ -211,7 +208,7 @@ The number of kernel parameters is not limited, but the length of the
complete command line (parameters including spaces etc.) is limited to complete command line (parameters including spaces etc.) is limited to
a fixed number of characters. This limit depends on the architecture a fixed number of characters. This limit depends on the architecture
and is between 256 and 4096 characters. It is defined in the file and is between 256 and 4096 characters. It is defined in the file
./include/asm/setup.h as COMMAND_LINE_SIZE. ./include/uapi/asm-generic/setup.h as COMMAND_LINE_SIZE.
Finally, the [KMG] suffix is commonly described after a number of kernel Finally, the [KMG] suffix is commonly described after a number of kernel
parameter values. These 'K', 'M', and 'G' letters represent the _binary_ parameter values. These 'K', 'M', and 'G' letters represent the _binary_

File diff suppressed because it is too large Load Diff

View File

@ -5,18 +5,22 @@ digraph board {
n00000001 [label="{{} | Sensor A\n/dev/v4l-subdev0 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] n00000001 [label="{{} | Sensor A\n/dev/v4l-subdev0 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000001:port0 -> n00000005:port0 [style=bold] n00000001:port0 -> n00000005:port0 [style=bold]
n00000001:port0 -> n0000000b [style=bold] n00000001:port0 -> n0000000b [style=bold]
n00000001 -> n00000002
n00000002 [label="{{} | Lens A\n/dev/v4l-subdev5 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
n00000003 [label="{{} | Sensor B\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] n00000003 [label="{{} | Sensor B\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000003:port0 -> n00000008:port0 [style=bold] n00000003:port0 -> n00000008:port0 [style=bold]
n00000003:port0 -> n0000000f [style=bold] n00000003:port0 -> n0000000f [style=bold]
n00000003 -> n00000004
n00000004 [label="{{} | Lens B\n/dev/v4l-subdev6 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
n00000005 [label="{{<port0> 0} | Debayer A\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] n00000005 [label="{{<port0> 0} | Debayer A\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000005:port1 -> n00000017:port0 n00000005:port1 -> n00000015:port0
n00000008 [label="{{<port0> 0} | Debayer B\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] n00000008 [label="{{<port0> 0} | Debayer B\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000008:port1 -> n00000017:port0 [style=dashed] n00000008:port1 -> n00000015:port0 [style=dashed]
n0000000b [label="Raw Capture 0\n/dev/video0", shape=box, style=filled, fillcolor=yellow] n0000000b [label="Raw Capture 0\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
n0000000f [label="Raw Capture 1\n/dev/video1", shape=box, style=filled, fillcolor=yellow] n0000000f [label="Raw Capture 1\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
n00000013 [label="RGB/YUV Input\n/dev/video2", shape=box, style=filled, fillcolor=yellow] n00000013 [label="{{} | RGB/YUV Input\n/dev/v4l-subdev4 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000013 -> n00000017:port0 [style=dashed] n00000013:port0 -> n00000015:port0 [style=dashed]
n00000017 [label="{{<port0> 0} | Scaler\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] n00000015 [label="{{<port0> 0} | Scaler\n/dev/v4l-subdev5 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000017:port1 -> n0000001a [style=bold] n00000015:port1 -> n00000018 [style=bold]
n0000001a [label="RGB/YUV Capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow] n00000018 [label="RGB/YUV Capture\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
} }

View File

@ -53,6 +53,25 @@ vimc-sensor:
* 1 Pad source * 1 Pad source
vimc-lens:
Ancillary lens for a sensor. Supports auto focus control. Linked to
a vimc-sensor using an ancillary link. The lens supports FOCUS_ABSOLUTE
control.
.. code-block:: bash
media-ctl -p
...
- entity 28: Lens A (0 pad, 0 link)
type V4L2 subdev subtype Lens flags 0
device node name /dev/v4l-subdev6
- entity 29: Lens B (0 pad, 0 link)
type V4L2 subdev subtype Lens flags 0
device node name /dev/v4l-subdev7
v4l2-ctl -d /dev/v4l-subdev7 -C focus_absolute
focus_absolute: 0
vimc-debayer: vimc-debayer:
Transforms images in bayer format into a non-bayer format. Transforms images in bayer format into a non-bayer format.
Exposes: Exposes:

View File

@ -714,6 +714,20 @@ The Test Pattern Controls are all specific to video capture.
does the same for the EAV (End of Active Video) code. does the same for the EAV (End of Active Video) code.
- Insert Video Guard Band
adds 4 columns of pixels with the HDMI Video Guard Band code at the
left hand side of the image. This only works with 3 or 4 byte RGB pixel
formats. The RGB pixel value 0xab/0x55/0xab turns out to be equivalent
to the HDMI Video Guard Band code that precedes each active video line
(see section 5.2.2.1 in the HDMI 1.3 Specification). To test if a video
receiver has correct HDMI Video Guard Band processing, enable this
control and then move the image to the left hand side of the screen.
That will result in video lines that start with multiple pixels that
have the same value as the Video Guard Band that precedes them.
Receivers that will just keep skipping Video Guard Band values will
now fail and either loose sync or these video lines will shift.
Capture Feature Selection Controls Capture Feature Selection Controls
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -125,7 +125,7 @@ processor. Each bank is referred to as a `node` and for each node Linux
constructs an independent memory management subsystem. A node has its constructs an independent memory management subsystem. A node has its
own set of zones, lists of free and used pages and various statistics own set of zones, lists of free and used pages and various statistics
counters. You can find more details about NUMA in counters. You can find more details about NUMA in
:ref:`Documentation/vm/numa.rst <numa>` and in :ref:`Documentation/mm/numa.rst <numa>` and in
:ref:`Documentation/admin-guide/mm/numa_memory_policy.rst <numa_memory_policy>`. :ref:`Documentation/admin-guide/mm/numa_memory_policy.rst <numa_memory_policy>`.
Page cache Page cache

View File

@ -4,7 +4,7 @@
Monitoring Data Accesses Monitoring Data Accesses
======================== ========================
:doc:`DAMON </vm/damon/index>` allows light-weight data access monitoring. :doc:`DAMON </mm/damon/index>` allows light-weight data access monitoring.
Using DAMON, users can analyze the memory access patterns of their systems and Using DAMON, users can analyze the memory access patterns of their systems and
optimize those. optimize those.
@ -14,3 +14,4 @@ optimize those.
start start
usage usage
reclaim reclaim
lru_sort

View File

@ -48,12 +48,6 @@ DAMON_RECLAIM utilizes module parameters. That is, you can put
``damon_reclaim.<parameter>=<value>`` on the kernel boot command line or write ``damon_reclaim.<parameter>=<value>`` on the kernel boot command line or write
proper values to ``/sys/modules/damon_reclaim/parameters/<parameter>`` files. proper values to ``/sys/modules/damon_reclaim/parameters/<parameter>`` files.
Note that the parameter values except ``enabled`` are applied only when
DAMON_RECLAIM starts. Therefore, if you want to apply new parameter values in
runtime and DAMON_RECLAIM is already enabled, you should disable and re-enable
it via ``enabled`` parameter file. Writing of the new values to proper
parameter values should be done before the re-enablement.
Below are the description of each parameter. Below are the description of each parameter.
enabled enabled
@ -66,6 +60,17 @@ Setting it as ``N`` disables DAMON_RECLAIM. Note that DAMON_RECLAIM could do
no real monitoring and reclamation due to the watermarks-based activation no real monitoring and reclamation due to the watermarks-based activation
condition. Refer to below descriptions for the watermarks parameter for this. condition. Refer to below descriptions for the watermarks parameter for this.
commit_inputs
-------------
Make DAMON_RECLAIM reads the input parameters again, except ``enabled``.
Input parameters that updated while DAMON_RECLAIM is running are not applied
by default. Once this parameter is set as ``Y``, DAMON_RECLAIM reads values
of parametrs except ``enabled`` again. Once the re-reading is done, this
parameter is set as ``N``. If invalid parameters are found while the
re-reading, DAMON_RECLAIM will be disabled.
min_age min_age
------- -------
@ -257,4 +262,4 @@ granularity reclamation. ::
.. [1] https://research.google/pubs/pub48551/ .. [1] https://research.google/pubs/pub48551/
.. [2] https://lwn.net/Articles/787611/ .. [2] https://lwn.net/Articles/787611/
.. [3] https://www.kernel.org/doc/html/latest/vm/free_page_reporting.html .. [3] https://www.kernel.org/doc/html/latest/mm/free_page_reporting.html

View File

@ -30,11 +30,11 @@ DAMON provides below interfaces for different users.
<sysfs_interface>`. This will be removed after next LTS kernel is released, <sysfs_interface>`. This will be removed after next LTS kernel is released,
so users should move to the :ref:`sysfs interface <sysfs_interface>`. so users should move to the :ref:`sysfs interface <sysfs_interface>`.
- *Kernel Space Programming Interface.* - *Kernel Space Programming Interface.*
:doc:`This </vm/damon/api>` is for kernel space programmers. Using this, :doc:`This </mm/damon/api>` is for kernel space programmers. Using this,
users can utilize every feature of DAMON most flexibly and efficiently by users can utilize every feature of DAMON most flexibly and efficiently by
writing kernel space DAMON application programs for you. You can even extend writing kernel space DAMON application programs for you. You can even extend
DAMON for various address spaces. For detail, please refer to the interface DAMON for various address spaces. For detail, please refer to the interface
:doc:`document </vm/damon/api>`. :doc:`document </mm/damon/api>`.
.. _sysfs_interface: .. _sysfs_interface:
@ -50,10 +50,10 @@ For a short example, users can monitor the virtual address space of a given
workload as below. :: workload as below. ::
# cd /sys/kernel/mm/damon/admin/ # cd /sys/kernel/mm/damon/admin/
# echo 1 > kdamonds/nr && echo 1 > kdamonds/0/contexts/nr # echo 1 > kdamonds/nr_kdamonds && echo 1 > kdamonds/0/contexts/nr_contexts
# echo vaddr > kdamonds/0/contexts/0/operations # echo vaddr > kdamonds/0/contexts/0/operations
# echo 1 > kdamonds/0/contexts/0/targets/nr # echo 1 > kdamonds/0/contexts/0/targets/nr_targets
# echo $(pidof <workload>) > kdamonds/0/contexts/0/targets/0/pid # echo $(pidof <workload>) > kdamonds/0/contexts/0/targets/0/pid_target
# echo on > kdamonds/0/state # echo on > kdamonds/0/state
Files Hierarchy Files Hierarchy
@ -68,7 +68,7 @@ comma (","). ::
│ kdamonds/nr_kdamonds │ kdamonds/nr_kdamonds
│ │ 0/state,pid │ │ 0/state,pid
│ │ │ contexts/nr_contexts │ │ │ contexts/nr_contexts
│ │ │ │ 0/operations │ │ │ │ 0/avail_operations,operations
│ │ │ │ │ monitoring_attrs/ │ │ │ │ │ monitoring_attrs/
│ │ │ │ │ │ intervals/sample_us,aggr_us,update_us │ │ │ │ │ │ intervals/sample_us,aggr_us,update_us
│ │ │ │ │ │ nr_regions/min,max │ │ │ │ │ │ nr_regions/min,max
@ -121,10 +121,11 @@ In each kdamond directory, two files (``state`` and ``pid``) and one directory
Reading ``state`` returns ``on`` if the kdamond is currently running, or Reading ``state`` returns ``on`` if the kdamond is currently running, or
``off`` if it is not running. Writing ``on`` or ``off`` makes the kdamond be ``off`` if it is not running. Writing ``on`` or ``off`` makes the kdamond be
in the state. Writing ``update_schemes_stats`` to ``state`` file updates the in the state. Writing ``commit`` to the ``state`` file makes kdamond reads the
contents of stats files for each DAMON-based operation scheme of the kdamond. user inputs in the sysfs files except ``state`` file again. Writing
For details of the stats, please refer to :ref:`stats section ``update_schemes_stats`` to ``state`` file updates the contents of stats files
<sysfs_schemes_stats>`. for each DAMON-based operation scheme of the kdamond. For details of the
stats, please refer to :ref:`stats section <sysfs_schemes_stats>`.
If the state is ``on``, reading ``pid`` shows the pid of the kdamond thread. If the state is ``on``, reading ``pid`` shows the pid of the kdamond thread.
@ -143,17 +144,28 @@ be written to the file.
contexts/<N>/ contexts/<N>/
------------- -------------
In each context directory, one file (``operations``) and three directories In each context directory, two files (``avail_operations`` and ``operations``)
(``monitoring_attrs``, ``targets``, and ``schemes``) exist. and three directories (``monitoring_attrs``, ``targets``, and ``schemes``)
exist.
DAMON supports multiple types of monitoring operations, including those for DAMON supports multiple types of monitoring operations, including those for
virtual address space and the physical address space. You can set and get what virtual address space and the physical address space. You can get the list of
type of monitoring operations DAMON will use for the context by writing one of available monitoring operations set on the currently running kernel by reading
below keywords to, and reading from the file. ``avail_operations`` file. Based on the kernel configuration, the file will
list some or all of below keywords.
- vaddr: Monitor virtual address spaces of specific processes - vaddr: Monitor virtual address spaces of specific processes
- fvaddr: Monitor fixed virtual address ranges
- paddr: Monitor the physical address space of the system - paddr: Monitor the physical address space of the system
Please refer to :ref:`regions sysfs directory <sysfs_regions>` for detailed
differences between the operations sets in terms of the monitoring target
regions.
You can set and get what type of monitoring operations DAMON will use for the
context by writing one of the keywords listed in ``avail_operations`` file and
reading from the ``operations`` file.
contexts/<N>/monitoring_attrs/ contexts/<N>/monitoring_attrs/
------------------------------ ------------------------------
@ -173,7 +185,7 @@ controls the monitoring overhead, exist. You can set and get the values by
writing to and rading from the files. writing to and rading from the files.
For more details about the intervals and monitoring regions range, please refer For more details about the intervals and monitoring regions range, please refer
to the Design document (:doc:`/vm/damon/design`). to the Design document (:doc:`/mm/damon/design`).
contexts/<N>/targets/ contexts/<N>/targets/
--------------------- ---------------------
@ -192,6 +204,8 @@ If you wrote ``vaddr`` to the ``contexts/<N>/operations``, each target should
be a process. You can specify the process to DAMON by writing the pid of the be a process. You can specify the process to DAMON by writing the pid of the
process to the ``pid_target`` file. process to the ``pid_target`` file.
.. _sysfs_regions:
targets/<N>/regions targets/<N>/regions
------------------- -------------------
@ -202,9 +216,10 @@ can be covered. However, users could want to set the initial monitoring region
to specific address ranges. to specific address ranges.
In contrast, DAMON do not automatically sets and updates the monitoring target In contrast, DAMON do not automatically sets and updates the monitoring target
regions when ``paddr`` monitoring operations set is being used (``paddr`` is regions when ``fvaddr`` or ``paddr`` monitoring operations sets are being used
written to the ``contexts/<N>/operations``). Therefore, users should set the (``fvaddr`` or ``paddr`` have written to the ``contexts/<N>/operations``).
monitoring target regions by themselves in the case. Therefore, users should set the monitoring target regions by themselves in the
cases.
For such cases, users can explicitly set the initial monitoring target regions For such cases, users can explicitly set the initial monitoring target regions
as they want, by writing proper values to the files under this directory. as they want, by writing proper values to the files under this directory.
@ -249,6 +264,8 @@ that can be written to and read from the file and their meaning are as below.
- ``pageout``: Call ``madvise()`` for the region with ``MADV_PAGEOUT`` - ``pageout``: Call ``madvise()`` for the region with ``MADV_PAGEOUT``
- ``hugepage``: Call ``madvise()`` for the region with ``MADV_HUGEPAGE`` - ``hugepage``: Call ``madvise()`` for the region with ``MADV_HUGEPAGE``
- ``nohugepage``: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE`` - ``nohugepage``: Call ``madvise()`` for the region with ``MADV_NOHUGEPAGE``
- ``lru_prio``: Prioritize the region on its LRU lists.
- ``lru_deprio``: Deprioritize the region on its LRU lists.
- ``stat``: Do nothing but count the statistics - ``stat``: Do nothing but count the statistics
schemes/<N>/access_pattern/ schemes/<N>/access_pattern/
@ -349,12 +366,12 @@ memory rate becomes larger than 60%, or lower than 30%". ::
# echo 1 > kdamonds/0/contexts/0/schemes/nr_schemes # echo 1 > kdamonds/0/contexts/0/schemes/nr_schemes
# cd kdamonds/0/contexts/0/schemes/0 # cd kdamonds/0/contexts/0/schemes/0
# # set the basic access pattern and the action # # set the basic access pattern and the action
# echo 4096 > access_patterns/sz/min # echo 4096 > access_pattern/sz/min
# echo 8192 > access_patterns/sz/max # echo 8192 > access_pattern/sz/max
# echo 0 > access_patterns/nr_accesses/min # echo 0 > access_pattern/nr_accesses/min
# echo 5 > access_patterns/nr_accesses/max # echo 5 > access_pattern/nr_accesses/max
# echo 10 > access_patterns/age/min # echo 10 > access_pattern/age/min
# echo 20 > access_patterns/age/max # echo 20 > access_pattern/age/max
# echo pageout > action # echo pageout > action
# # set quotas # # set quotas
# echo 10 > quotas/ms # echo 10 > quotas/ms
@ -387,7 +404,7 @@ Attributes
Users can get and set the ``sampling interval``, ``aggregation interval``, Users can get and set the ``sampling interval``, ``aggregation interval``,
``update interval``, and min/max number of monitoring target regions by ``update interval``, and min/max number of monitoring target regions by
reading from and writing to the ``attrs`` file. To know about the monitoring reading from and writing to the ``attrs`` file. To know about the monitoring
attributes in detail, please refer to the :doc:`/vm/damon/design`. For attributes in detail, please refer to the :doc:`/mm/damon/design`. For
example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and
1000, and then check it again:: 1000, and then check it again::

View File

@ -164,8 +164,8 @@ default_hugepagesz
will all result in 256 2M huge pages being allocated. Valid default will all result in 256 2M huge pages being allocated. Valid default
huge page size is architecture dependent. huge page size is architecture dependent.
hugetlb_free_vmemmap hugetlb_free_vmemmap
When CONFIG_HUGETLB_PAGE_FREE_VMEMMAP is set, this enables freeing When CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP is set, this enables HugeTLB
unused vmemmap pages associated with each HugeTLB page. Vmemmap Optimization (HVO).
When multiple huge page sizes are supported, ``/proc/sys/vm/nr_hugepages`` When multiple huge page sizes are supported, ``/proc/sys/vm/nr_hugepages``
indicates the current number of pre-allocated huge pages of the default size. indicates the current number of pre-allocated huge pages of the default size.

View File

@ -36,6 +36,7 @@ the Linux memory management.
numa_memory_policy numa_memory_policy
numaperf numaperf
pagemap pagemap
shrinker_debugfs
soft-dirty soft-dirty
swap_numa swap_numa
transhuge transhuge

View File

@ -184,6 +184,24 @@ The maximum possible ``pages_sharing/pages_shared`` ratio is limited by the
``max_page_sharing`` tunable. To increase the ratio ``max_page_sharing`` must ``max_page_sharing`` tunable. To increase the ratio ``max_page_sharing`` must
be increased accordingly. be increased accordingly.
Monitoring KSM events
=====================
There are some counters in /proc/vmstat that may be used to monitor KSM events.
KSM might help save memory, it's a tradeoff by may suffering delay on KSM COW
or on swapping in copy. Those events could help users evaluate whether or how
to use KSM. For example, if cow_ksm increases too fast, user may decrease the
range of madvise(, , MADV_MERGEABLE).
cow_ksm
is incremented every time a KSM page triggers copy on write (COW)
when users try to write to a KSM page, we have to make a copy.
ksm_swpin_copy
is incremented every time a KSM page is copied when swapping in
note that KSM page might be copied when swapping in because do_swap_page()
cannot do all the locking needed to reconstitute a cross-anon_vma KSM page.
-- --
Izik Eidus, Izik Eidus,
Hugh Dickins, 17 Nov 2009 Hugh Dickins, 17 Nov 2009

View File

@ -653,8 +653,8 @@ block might fail:
- Concurrent activity that operates on the same physical memory area, such as - Concurrent activity that operates on the same physical memory area, such as
allocating gigantic pages, can result in temporary offlining failures. allocating gigantic pages, can result in temporary offlining failures.
- Out of memory when dissolving huge pages, especially when freeing unused - Out of memory when dissolving huge pages, especially when HugeTLB Vmemmap
vmemmap pages associated with each hugetlb page is enabled. Optimization (HVO) is enabled.
Offlining code may be able to migrate huge page contents, but may not be able Offlining code may be able to migrate huge page contents, but may not be able
to dissolve the source huge page because it fails allocating (unmovable) pages to dissolve the source huge page because it fails allocating (unmovable) pages

View File

@ -36,10 +36,9 @@ administrative requirements that require particular behavior that does not
work well as part of an nfs_client_id4 string. work well as part of an nfs_client_id4 string.
The nfs.nfs4_unique_id boot parameter specifies a unique string that can be The nfs.nfs4_unique_id boot parameter specifies a unique string that can be
used instead of a system's node name when an NFS client identifies itself to used together with a system's node name when an NFS client identifies itself to
a server. Thus, if the system's node name is not unique, or it changes, its a server. Thus, if the system's node name is not unique, its
nfs.nfs4_unique_id stays the same, preventing collision with other clients nfs.nfs4_unique_id can help prevent collisions with other clients.
or loss of state during NFS reboot recovery or transparent state migration.
The nfs.nfs4_unique_id string is typically a UUID, though it can contain The nfs.nfs4_unique_id string is typically a UUID, though it can contain
anything that is believed to be unique across all NFS clients. An anything that is believed to be unique across all NFS clients. An
@ -53,8 +52,12 @@ outstanding NFSv4 state has expired, to prevent loss of NFSv4 state.
This string can be stored in an NFS client's grub.conf, or it can be provided This string can be stored in an NFS client's grub.conf, or it can be provided
via a net boot facility such as PXE. It may also be specified as an nfs.ko via a net boot facility such as PXE. It may also be specified as an nfs.ko
module parameter. Specifying a uniquifier string is not support for NFS module parameter.
clients running in containers.
This uniquifier string will be the same for all NFS clients running in
containers unless it is overridden by a value written to
/sys/fs/nfs/net/nfs_client/identifier which will be local to the network
namespace of the process which writes.
The DNS resolver The DNS resolver

View File

@ -9,6 +9,7 @@ Performance monitor support
hisi-pmu hisi-pmu
hisi-pcie-pmu hisi-pcie-pmu
hns3-pmu
imx-ddr imx-ddr
qcom_l2_pmu qcom_l2_pmu
qcom_l3_pmu qcom_l3_pmu

View File

@ -612,8 +612,8 @@ the ``menu`` governor to be used on the systems that use the ``ladder`` governor
by default this way, for example. by default this way, for example.
The other kernel command line parameters controlling CPU idle time management The other kernel command line parameters controlling CPU idle time management
described below are only relevant for the *x86* architecture and some of described below are only relevant for the *x86* architecture and references
them affect Intel processors only. to ``intel_idle`` affect Intel processors only.
The *x86* architecture support code recognizes three kernel command line The *x86* architecture support code recognizes three kernel command line
options related to CPU idle time management: ``idle=poll``, ``idle=halt``, options related to CPU idle time management: ``idle=poll``, ``idle=halt``,
@ -635,10 +635,13 @@ idle, so it very well may hurt single-thread computations performance as well as
energy-efficiency. Thus using it for performance reasons may not be a good idea energy-efficiency. Thus using it for performance reasons may not be a good idea
at all.] at all.]
The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of
``acpi_idle`` to be used (as long as all of the information needed by it is the CPU to enter idle states. When this option is used, the ``acpi_idle``
there in the system's ACPI tables), but it is not allowed to use the driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems
``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states. running Intel processors, this option disables the ``intel_idle`` driver
and forces the use of the ``acpi_idle`` driver instead. Note that in either
case, ``acpi_idle`` driver will function only if all the information needed
by it is in the system's ACPI tables.
In addition to the architecture-level kernel command line options affecting CPU In addition to the architecture-level kernel command line options affecting CPU
idle time management, there are parameters affecting individual ``CPUIdle`` idle time management, there are parameters affecting individual ``CPUIdle``

View File

@ -262,6 +262,28 @@ Which shows that the base frequency now increased from 2600 MHz at performance
level 0 to 2800 MHz at performance level 4. As a result, any workload, which can level 0 to 2800 MHz at performance level 4. As a result, any workload, which can
use fewer CPUs, can see a boost of 200 MHz compared to performance level 0. use fewer CPUs, can see a boost of 200 MHz compared to performance level 0.
Changing performance level via BMC Interface
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is possible to change SST-PP level using out of band (OOB) agent (Via some
remote management console, through BMC "Baseboard Management Controller"
interface). This mode is supported from the Sapphire Rapids processor
generation. The kernel and tool change to support this mode is added to Linux
kernel version 5.18. To enable this feature, kernel config
"CONFIG_INTEL_HFI_THERMAL" is required. The minimum version of the tool
is "v1.12" to support this feature, which is part of Linux kernel version 5.18.
To support such configuration, this tool can be used as a daemon. Add
a command line option --oob::
# intel-speed-select --oob
Intel(R) Speed Select Technology
Executing on CPU model:143[0x8f]
OOB mode is enabled and will run as daemon
In this mode the tool will online/offline CPUs based on the new performance
level.
Check presence of other Intel(R) SST features Check presence of other Intel(R) SST features
--------------------------------------------- ---------------------------------------------

View File

@ -38,8 +38,8 @@ acct
If BSD-style process accounting is enabled these values control If BSD-style process accounting is enabled these values control
its behaviour. If free space on filesystem where the log lives its behaviour. If free space on filesystem where the log lives
goes below ``lowwater``% accounting suspends. If free space gets goes below ``lowwater``\ % accounting suspends. If free space gets
above ``highwater``% accounting resumes. ``frequency`` determines above ``highwater``\ % accounting resumes. ``frequency`` determines
how often do we check the amount of free space (value is in how often do we check the amount of free space (value is in
seconds). Default: seconds). Default:
@ -592,6 +592,18 @@ to the guest kernel command line (see
Documentation/admin-guide/kernel-parameters.rst). Documentation/admin-guide/kernel-parameters.rst).
nmi_wd_lpm_factor (PPC only)
============================
Factor to apply to the NMI watchdog timeout (only when ``nmi_watchdog`` is
set to 1). This factor represents the percentage added to
``watchdog_thresh`` when calculating the NMI watchdog timeout during an
LPM. The soft lockup timeout is not impacted.
A value of 0 means no change. The default value is 200 meaning the NMI
watchdog is set to 30s (based on ``watchdog_thresh`` equal to 10).
numa_balancing numa_balancing
============== ==============
@ -783,6 +795,13 @@ is useful to define the root cause of RCU stalls using a vmcore.
1 panic() after printing RCU stall messages. 1 panic() after printing RCU stall messages.
= ============================================================ = ============================================================
max_rcu_stall_to_panic
======================
When ``panic_on_rcu_stall`` is set to 1, this value determines the
number of times that RCU can stall before panic() is called.
When ``panic_on_rcu_stall`` is set to 0, this value is has no effect.
perf_cpu_time_max_percent perf_cpu_time_max_percent
========================= =========================
@ -994,6 +1013,9 @@ This is a directory, with the following entries:
* ``boot_id``: a UUID generated the first time this is retrieved, and * ``boot_id``: a UUID generated the first time this is retrieved, and
unvarying after that; unvarying after that;
* ``uuid``: a UUID generated every time this is retrieved (this can
thus be used to generate UUIDs at will);
* ``entropy_avail``: the pool's entropy count, in bits; * ``entropy_avail``: the pool's entropy count, in bits;
* ``poolsize``: the entropy pool size, in bits; * ``poolsize``: the entropy pool size, in bits;
@ -1001,10 +1023,7 @@ This is a directory, with the following entries:
* ``urandom_min_reseed_secs``: obsolete (used to determine the minimum * ``urandom_min_reseed_secs``: obsolete (used to determine the minimum
number of seconds between urandom pool reseeding). This file is number of seconds between urandom pool reseeding). This file is
writable for compatibility purposes, but writing to it has no effect writable for compatibility purposes, but writing to it has no effect
on any RNG behavior. on any RNG behavior;
* ``uuid``: a UUID generated every time this is retrieved (this can
thus be used to generate UUIDs at will);
* ``write_wakeup_threshold``: when the entropy count drops below this * ``write_wakeup_threshold``: when the entropy count drops below this
(as a number of bits), processes waiting to write to ``/dev/random`` (as a number of bits), processes waiting to write to ``/dev/random``

View File

@ -271,7 +271,7 @@ poll cycle or the number of packets processed reaches netdev_budget.
netdev_max_backlog netdev_max_backlog
------------------ ------------------
Maximum number of packets, queued on the INPUT side, when the interface Maximum number of packets, queued on the INPUT side, when the interface
receives packets faster than kernel can process them. receives packets faster than kernel can process them.
netdev_rss_key netdev_rss_key
@ -322,6 +322,14 @@ a leaked reference faster. A larger value may be useful to prevent false
warnings on slow/loaded systems. warnings on slow/loaded systems.
Default value is 10, minimum 1, maximum 3600. Default value is 10, minimum 1, maximum 3600.
skb_defer_max
-------------
Max size (in skbs) of the per-cpu list of skbs being freed
by the cpu which allocated them. Used by TCP stack so far.
Default: 64
optmem_max optmem_max
---------- ----------
@ -374,6 +382,27 @@ option is set to SOCK_TXREHASH_DEFAULT (i. e. not overridden by setsockopt).
If set to 1 (default), hash rethink is performed on listening socket. If set to 1 (default), hash rethink is performed on listening socket.
If set to 0, hash rethink is not performed. If set to 0, hash rethink is not performed.
gro_normal_batch
----------------
Maximum number of the segments to batch up on output of GRO. When a packet
exits GRO, either as a coalesced superframe or as an original packet which
GRO has decided not to coalesce, it is placed on a per-NAPI list. This
list is then passed to the stack when the number of segments reaches the
gro_normal_batch limit.
high_order_alloc_disable
------------------------
By default the allocator for page frags tries to use high order pages (order-3
on x86). While the default behavior gives good results in most cases, some users
might have hit a contention in page allocations/freeing. This was especially
true on older kernels (< 5.14) when high-order pages were not stored on per-cpu
lists. This allows to opt-in for order-0 allocation instead but is now mostly of
historical importance.
Default: 0
2. /proc/sys/net/unix - Parameters for Unix domain sockets 2. /proc/sys/net/unix - Parameters for Unix domain sockets
---------------------------------------------------------- ----------------------------------------------------------

View File

@ -62,6 +62,7 @@ Currently, these files are in /proc/sys/vm:
- overcommit_memory - overcommit_memory
- overcommit_ratio - overcommit_ratio
- page-cluster - page-cluster
- page_lock_unfairness
- panic_on_oom - panic_on_oom
- percpu_pagelist_high_fraction - percpu_pagelist_high_fraction
- stat_interval - stat_interval
@ -561,6 +562,43 @@ Change the minimum size of the hugepage pool.
See Documentation/admin-guide/mm/hugetlbpage.rst See Documentation/admin-guide/mm/hugetlbpage.rst
hugetlb_optimize_vmemmap
========================
This knob is not available when the size of 'struct page' (a structure defined
in include/linux/mm_types.h) is not power of two (an unusual system config could
result in this).
Enable (set to 1) or disable (set to 0) HugeTLB Vmemmap Optimization (HVO).
Once enabled, the vmemmap pages of subsequent allocation of HugeTLB pages from
buddy allocator will be optimized (7 pages per 2MB HugeTLB page and 4095 pages
per 1GB HugeTLB page), whereas already allocated HugeTLB pages will not be
optimized. When those optimized HugeTLB pages are freed from the HugeTLB pool
to the buddy allocator, the vmemmap pages representing that range needs to be
remapped again and the vmemmap pages discarded earlier need to be rellocated
again. If your use case is that HugeTLB pages are allocated 'on the fly' (e.g.
never explicitly allocating HugeTLB pages with 'nr_hugepages' but only set
'nr_overcommit_hugepages', those overcommitted HugeTLB pages are allocated 'on
the fly') instead of being pulled from the HugeTLB pool, you should weigh the
benefits of memory savings against the more overhead (~2x slower than before)
of allocation or freeing HugeTLB pages between the HugeTLB pool and the buddy
allocator. Another behavior to note is that if the system is under heavy memory
pressure, it could prevent the user from freeing HugeTLB pages from the HugeTLB
pool to the buddy allocator since the allocation of vmemmap pages could be
failed, you have to retry later if your system encounter this situation.
Once disabled, the vmemmap pages of subsequent allocation of HugeTLB pages from
buddy allocator will not be optimized meaning the extra overhead at allocation
time from buddy allocator disappears, whereas already optimized HugeTLB pages
will not be affected. If you want to make sure there are no optimized HugeTLB
pages, you can set "nr_hugepages" to 0 first and then disable this. Note that
writing 0 to nr_hugepages will make any "in use" HugeTLB pages become surplus
pages. So, those surplus pages are still optimized until they are no longer
in use. You would need to wait for those surplus pages to be released before
there are no optimized pages in the system.
nr_hugepages_mempolicy nr_hugepages_mempolicy
====================== ======================
@ -720,7 +758,7 @@ and don't use much of it.
The default value is 0. The default value is 0.
See Documentation/vm/overcommit-accounting.rst and See Documentation/mm/overcommit-accounting.rst and
mm/util.c::__vm_enough_memory() for more information. mm/util.c::__vm_enough_memory() for more information.
@ -754,6 +792,14 @@ extra faults and I/O delays for following faults if they would have been part of
that consecutive pages readahead would have brought in. that consecutive pages readahead would have brought in.
page_lock_unfairness
====================
This value determines the number of times that the page lock can be
stolen from under a waiter. After the lock is stolen the number of times
specified in this file (default is 5), the "fair lock handoff" semantics
will apply, and the waiter will only be awakened if the lock can be taken.
panic_on_oom panic_on_oom
============ ============

View File

@ -100,6 +100,7 @@ Bit Log Number Reason that got the kernel tainted
15 _/K 32768 kernel has been live patched 15 _/K 32768 kernel has been live patched
16 _/X 65536 auxiliary taint, defined for and used by distros 16 _/X 65536 auxiliary taint, defined for and used by distros
17 _/T 131072 kernel was built with the struct randomization plugin 17 _/T 131072 kernel was built with the struct randomization plugin
18 _/N 262144 an in-kernel test has been run
=== === ====== ======================================================== === === ====== ========================================================
Note: The character ``_`` is representing a blank in this table to make reading Note: The character ``_`` is representing a blank in this table to make reading

View File

@ -13,6 +13,7 @@ implementation.
arm/index arm/index
arm64/index arm64/index
ia64/index ia64/index
loongarch/index
m68k/index m68k/index
mips/index mips/index
nios2/index nios2/index

View File

@ -31,6 +31,8 @@ SoC-specific documents
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
google/chromebook-boot-flow
ixp4xx ixp4xx
marvell marvell

View File

@ -374,8 +374,6 @@ PXA 2xx/3xx/93x/95x family
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-pxa arch/arm/mach-pxa
Linux kernel plat directory:
arch/arm/plat-pxa
MMP/MMP2/MMP3 family (communication processor) MMP/MMP2/MMP3 family (communication processor)
---------------------------------------------- ----------------------------------------------
@ -429,8 +427,6 @@ MMP/MMP2/MMP3 family (communication processor)
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-mmp arch/arm/mach-mmp
Linux kernel plat directory:
arch/arm/plat-pxa
Berlin family (Multimedia Solutions) Berlin family (Multimedia Solutions)
------------------------------------- -------------------------------------
@ -518,9 +514,6 @@ Long-term plans
Business Unit) in a single mach-<foo> directory. The plat-orion/ Business Unit) in a single mach-<foo> directory. The plat-orion/
would therefore disappear. would therefore disappear.
* Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
directory. The plat-pxa/ would therefore disappear.
Credits Credits
------- -------

View File

@ -1,3 +1,5 @@
.. SPDX-License-Identifier: GPL-2.0-only
======================= =======================
S3C24XX CPUfreq support S3C24XX CPUfreq support
======================= =======================
@ -73,4 +75,3 @@ Document Author
--------------- ---------------
Ben Dooks, Copyright 2009 Simtec Electronics Ben Dooks, Copyright 2009 Simtec Electronics
Licensed under GPLv2

View File

@ -34,7 +34,7 @@ CPU so it is usually wise not to overlap any physical RAM with
the TCM. the TCM.
The TCM memory can then be remapped to another address again using The TCM memory can then be remapped to another address again using
the MMU, but notice that the TCM if often used in situations where the MMU, but notice that the TCM is often used in situations where
the MMU is turned off. To avoid confusion the current Linux the MMU is turned off. To avoid confusion the current Linux
implementation will map the TCM 1 to 1 from physical to virtual implementation will map the TCM 1 to 1 from physical to virtual
memory in the location specified by the kernel. Currently Linux memory in the location specified by the kernel. Currently Linux

View File

@ -350,6 +350,16 @@ Before jumping into the kernel, the following conditions must be met:
- SMCR_EL2.FA64 (bit 31) must be initialised to 0b1. - SMCR_EL2.FA64 (bit 31) must be initialised to 0b1.
For CPUs with the Memory Tagging Extension feature (FEAT_MTE2):
- If EL3 is present:
- SCR_EL3.ATA (bit 26) must be initialised to 0b1.
- If the kernel is entered at EL1 and EL2 is present:
- HCR_EL2.ATA (bit 56) must be initialised to 0b1.
The requirements described above for CPU mode, caches, MMUs, architected The requirements described above for CPU mode, caches, MMUs, architected
timers, coherency and system registers apply to all CPUs. All CPUs must timers, coherency and system registers apply to all CPUs. All CPUs must
enter the kernel in the same exception level. Where the values documented enter the kernel in the same exception level. Where the values documented

View File

@ -290,6 +290,8 @@ infrastructure:
+------------------------------+---------+---------+ +------------------------------+---------+---------+
| RPRES | [7-4] | y | | RPRES | [7-4] | y |
+------------------------------+---------+---------+ +------------------------------+---------+---------+
| WFXT | [3-0] | y |
+------------------------------+---------+---------+
Appendix I: Example Appendix I: Example

View File

@ -171,99 +171,107 @@ HWCAP_PACG
Documentation/arm64/pointer-authentication.rst. Documentation/arm64/pointer-authentication.rst.
HWCAP2_DCPODP HWCAP2_DCPODP
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0010. Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0010.
HWCAP2_SVE2 HWCAP2_SVE2
Functionality implied by ID_AA64ZFR0_EL1.SVEVer == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.SVEVer == 0b0001.
HWCAP2_SVEAES HWCAP2_SVEAES
Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0001.
HWCAP2_SVEPMULL HWCAP2_SVEPMULL
Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0010. Functionality implied by ID_AA64ZFR0_EL1.AES == 0b0010.
HWCAP2_SVEBITPERM HWCAP2_SVEBITPERM
Functionality implied by ID_AA64ZFR0_EL1.BitPerm == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.BitPerm == 0b0001.
HWCAP2_SVESHA3 HWCAP2_SVESHA3
Functionality implied by ID_AA64ZFR0_EL1.SHA3 == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.SHA3 == 0b0001.
HWCAP2_SVESM4 HWCAP2_SVESM4
Functionality implied by ID_AA64ZFR0_EL1.SM4 == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.SM4 == 0b0001.
HWCAP2_FLAGM2 HWCAP2_FLAGM2
Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0010. Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0010.
HWCAP2_FRINT HWCAP2_FRINT
Functionality implied by ID_AA64ISAR1_EL1.FRINTTS == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.FRINTTS == 0b0001.
HWCAP2_SVEI8MM HWCAP2_SVEI8MM
Functionality implied by ID_AA64ZFR0_EL1.I8MM == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.I8MM == 0b0001.
HWCAP2_SVEF32MM HWCAP2_SVEF32MM
Functionality implied by ID_AA64ZFR0_EL1.F32MM == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.F32MM == 0b0001.
HWCAP2_SVEF64MM HWCAP2_SVEF64MM
Functionality implied by ID_AA64ZFR0_EL1.F64MM == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.F64MM == 0b0001.
HWCAP2_SVEBF16 HWCAP2_SVEBF16
Functionality implied by ID_AA64ZFR0_EL1.BF16 == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.BF16 == 0b0001.
HWCAP2_I8MM HWCAP2_I8MM
Functionality implied by ID_AA64ISAR1_EL1.I8MM == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.I8MM == 0b0001.
HWCAP2_BF16 HWCAP2_BF16
Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0001.
HWCAP2_DGH HWCAP2_DGH
Functionality implied by ID_AA64ISAR1_EL1.DGH == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.DGH == 0b0001.
HWCAP2_RNG HWCAP2_RNG
Functionality implied by ID_AA64ISAR0_EL1.RNDR == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.RNDR == 0b0001.
HWCAP2_BTI HWCAP2_BTI
Functionality implied by ID_AA64PFR0_EL1.BT == 0b0001. Functionality implied by ID_AA64PFR0_EL1.BT == 0b0001.
HWCAP2_MTE HWCAP2_MTE
Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0010, as described Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0010, as described
by Documentation/arm64/memory-tagging-extension.rst. by Documentation/arm64/memory-tagging-extension.rst.
HWCAP2_ECV HWCAP2_ECV
Functionality implied by ID_AA64MMFR0_EL1.ECV == 0b0001. Functionality implied by ID_AA64MMFR0_EL1.ECV == 0b0001.
HWCAP2_AFP HWCAP2_AFP
Functionality implied by ID_AA64MFR1_EL1.AFP == 0b0001. Functionality implied by ID_AA64MFR1_EL1.AFP == 0b0001.
HWCAP2_RPRES HWCAP2_RPRES
Functionality implied by ID_AA64ISAR2_EL1.RPRES == 0b0001. Functionality implied by ID_AA64ISAR2_EL1.RPRES == 0b0001.
HWCAP2_MTE3 HWCAP2_MTE3
Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0011, as described Functionality implied by ID_AA64PFR1_EL1.MTE == 0b0011, as described
by Documentation/arm64/memory-tagging-extension.rst. by Documentation/arm64/memory-tagging-extension.rst.
HWCAP2_SME
Functionality implied by ID_AA64PFR1_EL1.SME == 0b0001, as described
by Documentation/arm64/sme.rst.
HWCAP2_SME_I16I64
Functionality implied by ID_AA64SMFR0_EL1.I16I64 == 0b1111.
HWCAP2_SME_F64F64
Functionality implied by ID_AA64SMFR0_EL1.F64F64 == 0b1.
HWCAP2_SME_I8I32
Functionality implied by ID_AA64SMFR0_EL1.I8I32 == 0b1111.
HWCAP2_SME_F16F32
Functionality implied by ID_AA64SMFR0_EL1.F16F32 == 0b1.
HWCAP2_SME_B16F32
Functionality implied by ID_AA64SMFR0_EL1.B16F32 == 0b1.
HWCAP2_SME_F32F32
Functionality implied by ID_AA64SMFR0_EL1.F32F32 == 0b1.
HWCAP2_SME_FA64
Functionality implied by ID_AA64SMFR0_EL1.FA64 == 0b1.
HWCAP2_WFXT
Functionality implied by ID_AA64ISAR2_EL1.WFXT == 0b0010.
HWCAP2_EBF16
Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0010.
4. Unused AT_HWCAP bits 4. Unused AT_HWCAP bits
----------------------- -----------------------

View File

@ -21,6 +21,7 @@ ARM64 Architecture
perf perf
pointer-authentication pointer-authentication
silicon-errata silicon-errata
sme
sve sve
tagged-address-abi tagged-address-abi
tagged-pointers tagged-pointers

Some files were not shown because too many files have changed in this diff Show More