mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-11 17:55:54 +00:00
mempow update
This commit is contained in:
parent
f23474ff82
commit
8b701010de
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
============ ==============================================
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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).
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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.
|
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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).
|
||||||
|
@ -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).
|
||||||
|
@ -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**
|
||||||
|
|
||||||
|
@ -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".
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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/>
|
|
@ -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'.
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
};
|
};
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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?
|
||||||
|
|
||||||
|
@ -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'
|
||||||
=============
|
=============
|
||||||
|
@ -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
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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::
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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
|
||||||
=================================
|
=================================
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
...
|
...
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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
@ -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]
|
||||||
}
|
}
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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::
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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``
|
||||||
|
@ -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
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
@ -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``
|
||||||
|
@ -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
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -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
|
||||||
============
|
============
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -31,6 +31,8 @@ SoC-specific documents
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
google/chromebook-boot-flow
|
||||||
|
|
||||||
ixp4xx
|
ixp4xx
|
||||||
|
|
||||||
marvell
|
marvell
|
||||||
|
@ -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
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -290,6 +290,8 @@ infrastructure:
|
|||||||
+------------------------------+---------+---------+
|
+------------------------------+---------+---------+
|
||||||
| RPRES | [7-4] | y |
|
| RPRES | [7-4] | y |
|
||||||
+------------------------------+---------+---------+
|
+------------------------------+---------+---------+
|
||||||
|
| WFXT | [3-0] | y |
|
||||||
|
+------------------------------+---------+---------+
|
||||||
|
|
||||||
|
|
||||||
Appendix I: Example
|
Appendix I: Example
|
||||||
|
@ -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
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user