mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:44:41 +01:00
Merge drm/drm-fixes into drm-misc-fixes
7.0-rc1 was just released, let's merge it to kick the new release cycle. Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
commit
c17ee635fd
17345 changed files with 652898 additions and 241032 deletions
|
|
@ -259,6 +259,7 @@ ForEachMacros:
|
|||
- 'for_each_collection'
|
||||
- 'for_each_comp_order'
|
||||
- 'for_each_compatible_node'
|
||||
- 'for_each_compatible_node_scoped'
|
||||
- 'for_each_component_dais'
|
||||
- 'for_each_component_dais_safe'
|
||||
- 'for_each_conduit'
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
root = true
|
||||
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,rst,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
|
|
|||
18
.mailmap
18
.mailmap
|
|
@ -12,6 +12,7 @@
|
|||
#
|
||||
Aaron Durbin <adurbin@google.com>
|
||||
Abel Vesa <abelvesa@kernel.org> <abel.vesa@nxp.com>
|
||||
Abel Vesa <abelvesa@kernel.org> <abel.vesa@linaro.org>
|
||||
Abel Vesa <abelvesa@kernel.org> <abelvesa@gmail.com>
|
||||
Abhijeet Dharmapurikar <quic_adharmap@quicinc.com> <adharmap@codeaurora.org>
|
||||
Abhinav Kumar <quic_abhinavk@quicinc.com> <abhinavk@codeaurora.org>
|
||||
|
|
@ -33,6 +34,7 @@ Alexander Lobakin <alobakin@pm.me> <alobakin@marvell.com>
|
|||
Alexander Lobakin <alobakin@pm.me> <bloodyreaper@yandex.ru>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <alexander.mikhalitsyn@virtuozzo.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@canonical.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@futurfusion.io>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin.ext@nsn.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@gmx.de>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@nokia.com>
|
||||
|
|
@ -150,6 +152,7 @@ Bjorn Andersson <andersson@kernel.org> <bjorn.andersson@sonymobile.com>
|
|||
Björn Steinbrink <B.Steinbrink@gmx.de>
|
||||
Björn Töpel <bjorn@kernel.org> <bjorn.topel@gmail.com>
|
||||
Björn Töpel <bjorn@kernel.org> <bjorn.topel@intel.com>
|
||||
Boqun Feng <boqun@kernel.org> <boqun.feng@gmail.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||
|
|
@ -207,6 +210,7 @@ Daniel Borkmann <daniel@iogearbox.net> <daniel.borkmann@tik.ee.ethz.ch>
|
|||
Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com>
|
||||
Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
|
||||
Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com>
|
||||
Daniel Thompson <danielt@kernel.org> <daniel.thompson@linaro.org>
|
||||
Danilo Krummrich <dakr@kernel.org> <dakr@redhat.com>
|
||||
David Brownell <david-b@pacbell.net>
|
||||
David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org>
|
||||
|
|
@ -374,7 +378,9 @@ Jesper Dangaard Brouer <hawk@kernel.org> <hawk@comx.dk>
|
|||
Jesper Dangaard Brouer <hawk@kernel.org> <jbrouer@redhat.com>
|
||||
Jesper Dangaard Brouer <hawk@kernel.org> <jdb@comx.dk>
|
||||
Jesper Dangaard Brouer <hawk@kernel.org> <netoptimizer@brouer.com>
|
||||
Jessica Zhang <quic_jesszhan@quicinc.com> <jesszhan@codeaurora.org>
|
||||
Jessica Zhang <jesszhan0024@gmail.com> <jesszhan@codeaurora.org>
|
||||
Jessica Zhang <jesszhan0024@gmail.com> <quic_jesszhan@quicinc.com>
|
||||
Jessica Zhang <jesszhan0024@gmail.com> <jessica.zhang@oss.qualcomm.com>
|
||||
Jilai Wang <quic_jilaiw@quicinc.com> <jilaiw@codeaurora.org>
|
||||
Jiri Kosina <jikos@kernel.org> <jikos@jikos.cz>
|
||||
Jiri Kosina <jikos@kernel.org> <jkosina@suse.cz>
|
||||
|
|
@ -487,6 +493,7 @@ Lorenzo Pieralisi <lpieralisi@kernel.org> <lorenzo.pieralisi@arm.com>
|
|||
Lorenzo Stoakes <lorenzo.stoakes@oracle.com> <lstoakes@gmail.com>
|
||||
Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net>
|
||||
Luca Weiss <luca@lucaweiss.eu> <luca@z3ntu.xyz>
|
||||
Lucas De Marchi <demarchi@kernel.org> <lucas.demarchi@intel.com>
|
||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||
Luo Jie <quic_luoj@quicinc.com> <luoj@codeaurora.org>
|
||||
Lance Yang <lance.yang@linux.dev> <ioworker0@gmail.com>
|
||||
|
|
@ -556,6 +563,7 @@ Michel Dänzer <michel@tungstengraphics.com>
|
|||
Michel Lespinasse <michel@lespinasse.org>
|
||||
Michel Lespinasse <michel@lespinasse.org> <walken@google.com>
|
||||
Michel Lespinasse <michel@lespinasse.org> <walken@zoy.org>
|
||||
Mickaël Salaün <mic@digikod.net> <mic@linux.microsoft.com>
|
||||
Miguel Ojeda <ojeda@kernel.org> <miguel.ojeda.sandonis@gmail.com>
|
||||
Mike Rapoport <rppt@kernel.org> <mike@compulab.co.il>
|
||||
Mike Rapoport <rppt@kernel.org> <mike.rapoport@gmail.com>
|
||||
|
|
@ -784,7 +792,8 @@ Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com> <subashab@codeaurora.
|
|||
Subbaraman Narayanamurthy <quic_subbaram@quicinc.com> <subbaram@codeaurora.org>
|
||||
Subhash Jadavani <subhashj@codeaurora.org>
|
||||
Sudarshan Rajagopalan <quic_sudaraja@quicinc.com> <sudaraja@codeaurora.org>
|
||||
Sudeep Holla <sudeep.holla@arm.com> Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
|
||||
Sudeep Holla <sudeep.holla@kernel.org> Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
|
||||
Sudeep Holla <sudeep.holla@kernel.org> <sudeep.holla@arm.com>
|
||||
Sumit Garg <sumit.garg@kernel.org> <sumit.garg@linaro.org>
|
||||
Sumit Semwal <sumit.semwal@ti.com>
|
||||
Surabhi Vishnoi <quic_svishnoi@quicinc.com> <svishnoi@codeaurora.org>
|
||||
|
|
@ -794,7 +803,9 @@ Sven Eckelmann <sven@narfation.org> <sven.eckelmann@open-mesh.com>
|
|||
Sven Eckelmann <sven@narfation.org> <sven.eckelmann@openmesh.com>
|
||||
Sven Eckelmann <sven@narfation.org> <sven@open-mesh.com>
|
||||
Sven Peter <sven@kernel.org> <sven@svenpeter.dev>
|
||||
Szymon Wilczek <swilczek.lx@gmail.com> <szymonwilczek@gmx.com>
|
||||
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
||||
Tamir Duberstein <tamird@kernel.org> <tamird@gmail.com>
|
||||
Tamizh Chelvam Raja <quic_tamizhr@quicinc.com> <tamizhr@codeaurora.org>
|
||||
Taniya Das <quic_tdas@quicinc.com> <tdas@codeaurora.org>
|
||||
Tanzir Hasan <tanzhasanwork@gmail.com> <tanzirh@google.com>
|
||||
|
|
@ -848,6 +859,7 @@ Valentin Schneider <vschneid@redhat.com> <valentin.schneider@arm.com>
|
|||
Veera Sundaram Sankaran <quic_veeras@quicinc.com> <veeras@codeaurora.org>
|
||||
Veerabhadrarao Badiganti <quic_vbadigan@quicinc.com> <vbadigan@codeaurora.org>
|
||||
Venkateswara Naralasetty <quic_vnaralas@quicinc.com> <vnaralas@codeaurora.org>
|
||||
Viacheslav Bocharov <v@baodeep.com> <adeep@lexina.in>
|
||||
Vikash Garodia <vikash.garodia@oss.qualcomm.com> <vgarodia@codeaurora.org>
|
||||
Vikash Garodia <vikash.garodia@oss.qualcomm.com> <quic_vgarodia@quicinc.com>
|
||||
Vincent Mailhol <mailhol@kernel.org> <mailhol.vincent@wanadoo.fr>
|
||||
|
|
@ -876,6 +888,8 @@ Wolfram Sang <wsa@kernel.org> <wsa@the-dreams.de>
|
|||
Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
|
||||
Yanteng Si <si.yanteng@linux.dev> <siyanteng@loongson.cn>
|
||||
Ying Huang <huang.ying.caritas@gmail.com> <ying.huang@intel.com>
|
||||
Yixun Lan <dlan@kernel.org> <dlan@gentoo.org>
|
||||
Yixun Lan <dlan@kernel.org> <yixun.lan@amlogic.com>
|
||||
Yosry Ahmed <yosry.ahmed@linux.dev> <yosryahmed@google.com>
|
||||
Yu-Chun Lin <eleanor.lin@realtek.com> <eleanor15x@gmail.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
|
|
|
|||
28
CREDITS
28
CREDITS
|
|
@ -695,7 +695,7 @@ S: USA
|
|||
N: Chih-Jen Chang
|
||||
E: chihjenc@scf.usc.edu
|
||||
E: chihjen@iis.sinica.edu.tw
|
||||
D: IGMP(Internet Group Management Protocol) version 2
|
||||
D: IGMP (Internet Group Management Protocol) version 2
|
||||
S: 3F, 65 Tajen street
|
||||
S: Tamsui town, Taipei county,
|
||||
S: Taiwan 251
|
||||
|
|
@ -1997,7 +1997,7 @@ E: bkaindl@netway.at
|
|||
E: edv@bartelt.via.at
|
||||
D: Author of a menu based configuration tool, kmenu, which
|
||||
D: is the predecessor of 'make menuconfig' and 'make xconfig'.
|
||||
D: digiboard driver update(modularisation work and 2.1.x upd)
|
||||
D: digiboard driver update (modularisation work and 2.1.x upd)
|
||||
S: Tallak 95
|
||||
S: 8103 Rein
|
||||
S: Austria
|
||||
|
|
@ -2231,6 +2231,10 @@ S: Markham, Ontario
|
|||
S: L3R 8B2
|
||||
S: Canada
|
||||
|
||||
N: Krzysztof Kozlowski
|
||||
E: krzk@kernel.org
|
||||
D: NFC network subsystem and drivers maintainer
|
||||
|
||||
N: Christian Krafft
|
||||
D: PowerPC Cell support
|
||||
|
||||
|
|
@ -2659,6 +2663,10 @@ S: 3404 E. Harmony Road
|
|||
S: Fort Collins, CO 80528
|
||||
S: USA
|
||||
|
||||
N: Jon Mason
|
||||
E: jdmason@kudzu.us
|
||||
D: Neterion 10GbE drivers (s2io/vxge)
|
||||
|
||||
N: Torben Mathiasen
|
||||
E: torben.mathiasen@compaq.com
|
||||
E: torben@kernel.dk
|
||||
|
|
@ -3484,7 +3492,8 @@ S: Brazil
|
|||
N: Stephen Rothwell
|
||||
E: sfr@canb.auug.org.au
|
||||
W: http://www.canb.auug.org.au/~sfr
|
||||
P: 1024/BD8C7805 CD A4 9D 01 10 6E 7E 3B 91 88 FA D9 C8 40 AA 02
|
||||
P: 4096R/5AD24211C060D1C8 D41C A3ED 5B30 275C F5A0 1B05 5AD2 4211 C060 D1C8
|
||||
D: Created linux-next and maintained it 2008-2026
|
||||
D: Boot/setup/build work for setup > 2K
|
||||
D: Author, APM driver
|
||||
D: Directory notification
|
||||
|
|
@ -3609,7 +3618,7 @@ S: Finland
|
|||
N: Deepak Saxena
|
||||
E: dsaxena@plexity.net
|
||||
D: I2O kernel layer (config, block, core, pci, net). I2O disk support for LILO
|
||||
D: XScale(IOP, IXP) porting and other random ARM bits
|
||||
D: XScale (IOP, IXP) porting and other random ARM bits
|
||||
S: Portland, OR
|
||||
|
||||
N: Eric Schenk
|
||||
|
|
@ -3767,6 +3776,11 @@ S: 10 Stockalls Place
|
|||
S: Minto, NSW, 2566
|
||||
S: Australia
|
||||
|
||||
N: Tim Small
|
||||
E: tim@buttersideup.com
|
||||
D: Intel 82443BX/GX (440BX/GX chipset) EDAC driver
|
||||
D: Radisys 82600 embedded chipset EDAC driver
|
||||
|
||||
N: Stephen Smalley
|
||||
E: sds@tycho.nsa.gov
|
||||
D: portions of the Linux Security Module (LSM) framework and security modules
|
||||
|
|
@ -3801,6 +3815,10 @@ S: Post Office Box 500
|
|||
S: Batavia, Illinois 60510
|
||||
S: USA
|
||||
|
||||
N: Jes Sorensen
|
||||
E: jes@trained-monkey.org
|
||||
D: HIPPI support and Essential RoadRunner driver
|
||||
|
||||
N: Leo Spiekman
|
||||
E: leo@netlabs.net
|
||||
W: http://www.netlabs.net/hp/leo/
|
||||
|
|
@ -3986,7 +4004,7 @@ S: D-50968 Köln
|
|||
|
||||
N: Tsu-Sheng Tsao
|
||||
E: tsusheng@scf.usc.edu
|
||||
D: IGMP(Internet Group Management Protocol) version 2
|
||||
D: IGMP (Internet Group Management Protocol) version 2
|
||||
S: 2F 14 ALY 31 LN 166 SEC 1 SHIH-PEI RD
|
||||
S: Taipei
|
||||
S: Taiwan 112
|
||||
|
|
|
|||
|
|
@ -819,7 +819,6 @@ networking/device_drivers/intel/ixgbe networking/device_drivers/ethernet/intel/i
|
|||
networking/device_drivers/intel/ixgbevf networking/device_drivers/ethernet/intel/ixgbevf
|
||||
networking/device_drivers/marvell/octeontx2 networking/device_drivers/ethernet/marvell/octeontx2
|
||||
networking/device_drivers/microsoft/netvsc networking/device_drivers/ethernet/microsoft/netvsc
|
||||
networking/device_drivers/neterion/s2io networking/device_drivers/ethernet/neterion/s2io
|
||||
networking/device_drivers/netronome/nfp networking/device_drivers/ethernet/netronome/nfp
|
||||
networking/device_drivers/pensando/ionic networking/device_drivers/ethernet/pensando/ionic
|
||||
networking/device_drivers/qualcomm/rmnet networking/device_drivers/cellular/qualcomm/rmnet
|
||||
|
|
|
|||
|
|
@ -609,6 +609,51 @@ Description:
|
|||
enabled, and whether tags are shared.
|
||||
|
||||
|
||||
What: /sys/block/<disk>/queue/async_depth
|
||||
Date: August 2025
|
||||
Contact: linux-block@vger.kernel.org
|
||||
Description:
|
||||
[RW] Controls how many asynchronous requests may be allocated
|
||||
in the block layer. The value is always capped at nr_requests.
|
||||
|
||||
When no elevator is active (none):
|
||||
|
||||
- async_depth is always equal to nr_requests.
|
||||
|
||||
For bfq scheduler:
|
||||
|
||||
- By default, async_depth is set to 75% of nr_requests.
|
||||
Internal limits are then derived from this value:
|
||||
|
||||
* Sync writes: limited to async_depth (≈75% of nr_requests).
|
||||
* Async I/O: limited to ~2/3 of async_depth (≈50% of
|
||||
nr_requests).
|
||||
|
||||
If a bfq_queue is weight-raised:
|
||||
|
||||
* Sync writes: limited to ~1/2 of async_depth (≈37% of
|
||||
nr_requests).
|
||||
* Async I/O: limited to ~1/4 of async_depth (≈18% of
|
||||
nr_requests).
|
||||
|
||||
- If the user writes a custom value to async_depth, BFQ will
|
||||
recompute these limits proportionally based on the new value.
|
||||
|
||||
For Kyber:
|
||||
|
||||
- By default async_depth is set to 75% of nr_requests.
|
||||
- If the user writes a custom value to async_depth, then it
|
||||
overrides the default and directly controls the limit for
|
||||
writes and async I/O.
|
||||
|
||||
For mq-deadline:
|
||||
|
||||
- By default async_depth is set to nr_requests.
|
||||
- If the user writes a custom value to async_depth, then it
|
||||
overrides the default and directly controls the limit for
|
||||
writes and async I/O.
|
||||
|
||||
|
||||
What: /sys/block/<disk>/queue/nr_zones
|
||||
Date: November 2018
|
||||
Contact: Damien Le Moal <damien.lemoal@wdc.com>
|
||||
|
|
|
|||
|
|
@ -136,6 +136,21 @@ Description: The last executed device administrative command's status/error.
|
|||
Also last configuration error overloaded.
|
||||
Writing to it will clear the status.
|
||||
|
||||
What: /sys/bus/dsa/devices/dsa<m>/dsacaps
|
||||
Date: April 5, 2026
|
||||
KernelVersion: 6.20.0
|
||||
Contact: dmaengine@vger.kernel.org
|
||||
Description: The DSA3 specification introduces three new capability
|
||||
registers: dsacap[0-2]. User components (e.g., configuration
|
||||
libraries and workload applications) require this information
|
||||
to properly utilize the DSA3 features.
|
||||
This includes SGL capability support, Enabling hardware-specific
|
||||
optimizations, Configuring memory, etc.
|
||||
The output format is '<dsacap2>,<dsacap1>,<dsacap0>' where each
|
||||
DSA cap value is a 64 bit hex value.
|
||||
This attribute should only be visible on DSA devices of version
|
||||
3 or later.
|
||||
|
||||
What: /sys/bus/dsa/devices/dsa<m>/iaa_cap
|
||||
Date: Sept 14, 2022
|
||||
KernelVersion: 6.0.0
|
||||
|
|
|
|||
|
|
@ -23,8 +23,7 @@ What: /sys/accessibility/speakup/bleep_time
|
|||
KernelVersion: 2.6
|
||||
Contact: speakup@linux-speakup.org
|
||||
Description: This controls the duration of the PC speaker beeps speakup
|
||||
produces.
|
||||
TODO: What are the units? Jiffies?
|
||||
produces, in milliseconds.
|
||||
|
||||
What: /sys/accessibility/speakup/cursor_time
|
||||
KernelVersion: 2.6
|
||||
|
|
|
|||
|
|
@ -17,6 +17,12 @@ Description:
|
|||
where the implementation is conveyed via the @provider
|
||||
attribute.
|
||||
|
||||
This interface fails reads and sets errno to EFBIG when the
|
||||
report generated by @provider exceeds the configfs-tsm-report
|
||||
internal maximums. Contact the platform provider for the
|
||||
compatible security module, driver, and attestation library
|
||||
combination.
|
||||
|
||||
What: /sys/kernel/config/tsm/report/$name/auxblob
|
||||
Date: October, 2023
|
||||
KernelVersion: v6.7
|
||||
|
|
@ -31,6 +37,9 @@ Description:
|
|||
Standardization v2.03 Section 4.1.8.1 MSG_REPORT_REQ.
|
||||
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56421.pdf
|
||||
|
||||
See "EFBIG" comment in the @outblob description for potential
|
||||
error conditions.
|
||||
|
||||
What: /sys/kernel/config/tsm/report/$name/manifestblob
|
||||
Date: January, 2024
|
||||
KernelVersion: v6.10
|
||||
|
|
@ -43,6 +52,9 @@ Description:
|
|||
See 'service_provider' for information on the format of the
|
||||
manifest blob.
|
||||
|
||||
See "EFBIG" comment in the @outblob description for potential
|
||||
error conditions.
|
||||
|
||||
What: /sys/kernel/config/tsm/report/$name/provider
|
||||
Date: September, 2023
|
||||
KernelVersion: v6.7
|
||||
|
|
@ -61,6 +73,10 @@ Description:
|
|||
Library Revision 0.8 Appendix 4,5
|
||||
https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_TDX_DCAP_Quoting_Library_API.pdf
|
||||
|
||||
Intel TDX platforms with DICE-based attestation use CBOR Web Token
|
||||
(CWT) format for the Quote payload. This is indicated by the Quote
|
||||
size exceeding 8KB.
|
||||
|
||||
What: /sys/kernel/config/tsm/report/$name/generation
|
||||
Date: September, 2023
|
||||
KernelVersion: v6.7
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@ KernelVersion: 3.19
|
|||
Description:
|
||||
The attributes:
|
||||
|
||||
========== ====================================
|
||||
index index value for the USB MIDI adapter
|
||||
id ID string for the USB MIDI adapter
|
||||
buflen MIDI buffer length
|
||||
qlen USB read request queue length
|
||||
in_ports number of MIDI input ports
|
||||
out_ports number of MIDI output ports
|
||||
========== ====================================
|
||||
================ ====================================
|
||||
index index value for the USB MIDI adapter
|
||||
id ID string for the USB MIDI adapter
|
||||
buflen MIDI buffer length
|
||||
qlen USB read request queue length
|
||||
in_ports number of MIDI input ports
|
||||
out_ports number of MIDI output ports
|
||||
interface_string USB AudioControl interface string
|
||||
================ ====================================
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ Description: Generic interface to platform dependent persistent storage.
|
|||
|
||||
Once the information in a file has been read, removing
|
||||
the file will signal to the underlying persistent storage
|
||||
device that it can reclaim the space for later re-use::
|
||||
device that it can reclaim the space for later reuse::
|
||||
|
||||
$ rm /sys/fs/pstore/dmesg-erst-1
|
||||
|
||||
|
|
|
|||
|
|
@ -150,3 +150,17 @@ Contact: Sergey Senozhatsky <senozhatsky@chromium.org>
|
|||
Description:
|
||||
The algorithm_params file is write-only and is used to setup
|
||||
compression algorithm parameters.
|
||||
|
||||
What: /sys/block/zram<id>/writeback_compressed
|
||||
Date: Decemeber 2025
|
||||
Contact: Richard Chang <richardycc@google.com>
|
||||
Description:
|
||||
The writeback_compressed device atrribute toggles compressed
|
||||
writeback feature.
|
||||
|
||||
What: /sys/block/zram<id>/writeback_batch_size
|
||||
Date: November 2025
|
||||
Contact: Sergey Senozhatsky <senozhatsky@chromium.org>
|
||||
Description:
|
||||
The writeback_batch_size device atrribute sets the maximum
|
||||
number of in-flight writeback operations.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
What: /sys/bus/coresight/devices/dummy_source<N>/enable_source
|
||||
Date: Dec 2024
|
||||
KernelVersion: 6.14
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Contact: Mao Jinlong <jinlong.mao@oss.qualcomm.com>
|
||||
Description: (RW) Enable/disable tracing of dummy source. A sink should be activated
|
||||
before enabling the source. The path of coresight components linking
|
||||
the source to the sink is configured and managed automatically by the
|
||||
|
|
@ -10,7 +10,7 @@ Description: (RW) Enable/disable tracing of dummy source. A sink should be activ
|
|||
What: /sys/bus/coresight/devices/dummy_source<N>/traceid
|
||||
Date: Dec 2024
|
||||
KernelVersion: 6.14
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Contact: Mao Jinlong <jinlong.mao@oss.qualcomm.com>
|
||||
Description: (R) Show the trace ID that will appear in the trace stream
|
||||
coming from this trace entity.
|
||||
|
||||
|
|
|
|||
69
Documentation/ABI/testing/sysfs-bus-coresight-devices-tpda
Normal file
69
Documentation/ABI/testing/sysfs-bus-coresight-devices-tpda
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
What: /sys/bus/coresight/devices/<tpda-name>/trig_async_enable
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Enable/disable cross trigger synchronization sequence interface.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/trig_flag_ts_enable
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Enable/disable cross trigger FLAG packet request interface.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/trig_freq_enable
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Enable/disable cross trigger FREQ packet request interface.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/freq_ts_enable
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Enable/disable the timestamp for all FREQ packets.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/cmbchan_mode
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Configure the CMB/MCMB channel mode for all enabled ports.
|
||||
Value 0 means raw channel mapping mode. Value 1 means channel pair marking mode.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/global_flush_req
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set global (all ports) flush request bit. The bit remains set until a
|
||||
global flush request sequence completes.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/syncr_mode
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set mode the of the syncr counter.
|
||||
mode 0 - COUNT[11:0] value represents the approximate number of bytes moved between two ASYNC packet requests
|
||||
mode 1 - the bits COUNT[11:7] are used as a power of 2. for example, we could insert an async packet every 8K
|
||||
data by writing a value 13 to the COUNT[11:7] field.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/syncr_count
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set value the of the syncr counter.
|
||||
Range: 0-4095
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpda-name>/port_flush_req
|
||||
Date: December 2025
|
||||
KernelVersion: 6.20
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>, Jie Gan <jie.gan@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Configure the bit i to requests a flush operation of port i on the TPDA.
|
||||
The requested bit(s) remain set until the flush request completes.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/integration_test
|
||||
Date: January 2023
|
||||
KernelVersion: 6.2
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(Write) Run integration test for tpdm. Integration test
|
||||
will generate test data for tpdm. It can help to make
|
||||
|
|
@ -15,7 +15,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/reset_dataset
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(Write) Reset the dataset of the tpdm.
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_trig_type
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the trigger type of the DSB for tpdm.
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_trig_ts
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the trigger timestamp of the DSB for tpdm.
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_mode
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the programming mode of the DSB for tpdm.
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_edge/ctrl_idx
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the index number of the edge detection for the DSB
|
||||
subunit TPDM. Since there are at most 256 edge detections, this
|
||||
|
|
@ -70,7 +70,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_edge/ctrl_val
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
Write a data to control the edge detection corresponding to
|
||||
the index number. Before writing data to this sysfs file,
|
||||
|
|
@ -86,7 +86,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_edge/ctrl_mask
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
Write a data to mask the edge detection corresponding to the index
|
||||
number. Before writing data to this sysfs file, "ctrl_idx" should
|
||||
|
|
@ -98,21 +98,21 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_edge/edcr[0:15]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
Read a set of the edge control value of the DSB in TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_edge/edcmr[0:7]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
Read a set of the edge control mask of the DSB in TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_trig_patt/xpr[0:7]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the value of the trigger pattern for the DSB
|
||||
subunit TPDM.
|
||||
|
|
@ -120,7 +120,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_trig_patt/xpmr[0:7]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the mask of the trigger pattern for the DSB
|
||||
subunit TPDM.
|
||||
|
|
@ -128,21 +128,21 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/tpr[0:7]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the value of the pattern for the DSB subunit TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/tpmr[0:7]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the mask of the pattern for the DSB subunit TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/enable_ts
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(Write) Set the pattern timestamp of DSB tpdm. Read
|
||||
the pattern timestamp of DSB tpdm.
|
||||
|
|
@ -154,7 +154,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/set_type
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(Write) Set the pattern type of DSB tpdm. Read
|
||||
the pattern type of DSB tpdm.
|
||||
|
|
@ -166,7 +166,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_msr/msr[0:31]
|
||||
Date: March 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the MSR(mux select register) for the DSB subunit
|
||||
TPDM.
|
||||
|
|
@ -174,7 +174,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_mode
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description: (Write) Set the data collection mode of CMB tpdm. Continuous
|
||||
change creates CMB data set elements on every CMBCLK edge.
|
||||
Trace-on-change creates CMB data set elements only when a new
|
||||
|
|
@ -188,7 +188,7 @@ Description: (Write) Set the data collection mode of CMB tpdm. Continuous
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_trig_patt/xpr[0:1]
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the value of the trigger pattern for the CMB
|
||||
subunit TPDM.
|
||||
|
|
@ -196,7 +196,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_trig_patt/xpmr[0:1]
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the mask of the trigger pattern for the CMB
|
||||
subunit TPDM.
|
||||
|
|
@ -204,21 +204,21 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/tpr[0:1]
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the value of the pattern for the CMB subunit TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/dsb_patt/tpmr[0:1]
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the mask of the pattern for the CMB subunit TPDM.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_patt/enable_ts
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(Write) Set the pattern timestamp of CMB tpdm. Read
|
||||
the pattern timestamp of CMB tpdm.
|
||||
|
|
@ -230,7 +230,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_trig_ts
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the trigger timestamp of the CMB for tpdm.
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_ts_all
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Read or write the status of timestamp upon all interface.
|
||||
Only value 0 and 1 can be written to this node. Set this node to 1 to request
|
||||
|
|
@ -253,7 +253,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/cmb_msr/msr[0:31]
|
||||
Date: January 2024
|
||||
KernelVersion: 6.9
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the MSR(mux select register) for the CMB subunit
|
||||
TPDM.
|
||||
|
|
@ -261,7 +261,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/mcmb_trig_lane
|
||||
Date: Feb 2025
|
||||
KernelVersion 6.15
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get which lane participates in the output pattern
|
||||
match cross trigger mechanism for the MCMB subunit TPDM.
|
||||
|
|
@ -269,7 +269,7 @@ Description:
|
|||
What: /sys/bus/coresight/devices/<tpdm-name>/mcmb_lanes_select
|
||||
Date: Feb 2025
|
||||
KernelVersion 6.15
|
||||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Contact: Jinlong Mao <jinlong.mao@oss.qualcomm.com>, Tao Zhang <tao.zhang@oss.qualcomm.com>
|
||||
Description:
|
||||
(RW) Set/Get the enablement of the individual lane.
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
What: /sys/bus/event_source/devices/cpu.../rdpmc
|
||||
Date: November 2011
|
||||
KernelVersion: 3.10
|
||||
Contact: Linux kernel mailing list linux-kernel@vger.kernel.org
|
||||
Description: The /sys/bus/event_source/devices/cpu.../rdpmc attribute
|
||||
is used to show/manage if rdpmc instruction can be
|
||||
executed in user space. This attribute supports 3 numbers.
|
||||
- rdpmc = 0
|
||||
user space rdpmc is globally disabled for all PMU
|
||||
counters.
|
||||
- rdpmc = 1
|
||||
user space rdpmc is globally enabled only in event mmap
|
||||
ioctl called time window. If the mmap region is unmapped,
|
||||
user space rdpmc is disabled again.
|
||||
- rdpmc = 2
|
||||
user space rdpmc is globally enabled for all PMU
|
||||
counters.
|
||||
|
||||
In the Intel platforms supporting counter level's user
|
||||
space rdpmc disable feature (CPUID.23H.EBX[2] = 1), the
|
||||
meaning of 3 numbers is extended to
|
||||
- rdpmc = 0
|
||||
global user space rdpmc and counter level's user space
|
||||
rdpmc of all counters are both disabled.
|
||||
- rdpmc = 1
|
||||
No changes on behavior of global user space rdpmc.
|
||||
counter level's rdpmc of system-wide events is disabled
|
||||
but counter level's rdpmc of non-system-wide events is
|
||||
enabled.
|
||||
- rdpmc = 2
|
||||
global user space rdpmc and counter level's user space
|
||||
rdpmc of all counters are both enabled unconditionally.
|
||||
|
||||
The default value of rdpmc is 1.
|
||||
|
||||
Please notice:
|
||||
- global user space rdpmc's behavior would change
|
||||
immediately along with the rdpmc value's change,
|
||||
but the behavior of counter level's user space rdpmc
|
||||
won't take effect immediately until the event is
|
||||
reactivated or recreated.
|
||||
- The rdpmc attribute is global, even for x86 hybrid
|
||||
platforms. For example, changing cpu_core/rdpmc will
|
||||
also change cpu_atom/rdpmc.
|
||||
|
|
@ -161,3 +161,14 @@ Contact: linux-i3c@vger.kernel.org
|
|||
Description:
|
||||
These directories are just symbolic links to
|
||||
/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>.
|
||||
|
||||
What: /sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/dev_nack_retry_count
|
||||
KernelVersion: 6.18
|
||||
Contact: linux-i3c@vger.kernel.org
|
||||
Description:
|
||||
Expose the dev_nak_retry_count which controls the number of
|
||||
automatic retries that will be performed by the controller when
|
||||
the target device returns a NACK response. A value of 0 disables
|
||||
the automatic retries. Exist only when I3C constroller supports
|
||||
this retry on nack feature.
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,12 @@ Date: July 2015
|
|||
KernelVersion: 4.7
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Writing '1' will perform a FOC (Fast Online Calibration). The
|
||||
corresponding calibration offsets can be read from `*_calibbias`
|
||||
entries.
|
||||
Writing '1' either perform a FOC (Fast Online Calibration) or
|
||||
enter calibration mode.
|
||||
Writing '0` exits calibration mode. It is a NOP for FOC enabled
|
||||
sensors.
|
||||
The corresponding calibration offsets can be read from `*_calibbias`
|
||||
entries.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/id
|
||||
Date: September 2017
|
||||
|
|
|
|||
|
|
@ -85,3 +85,45 @@ Description:
|
|||
up to 5000. The default value is 64 ms.
|
||||
This polling interval is used while DbC is enabled but has no
|
||||
active data transfers.
|
||||
|
||||
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_serial
|
||||
Date: January 2026
|
||||
Contact: Łukasz Bartosik <ukaszb@chromium.org>
|
||||
Description:
|
||||
The dbc_serial attribute allows to change the serial number
|
||||
string descriptor presented by the debug device when a host
|
||||
requests a string descriptor with iSerialNumber index.
|
||||
Index is found in the iSerialNumber field in the device
|
||||
descriptor.
|
||||
Value can only be changed while debug capability (DbC) is in
|
||||
disabled state to prevent USB device descriptor change while
|
||||
connected to a USB host.
|
||||
The default value is "0001".
|
||||
The field length can be from 1 to 126 characters.
|
||||
|
||||
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_product
|
||||
Date: January 2026
|
||||
Contact: Łukasz Bartosik <ukaszb@chromium.org>
|
||||
Description:
|
||||
The dbc_product attribute allows to change the product string
|
||||
descriptor presented by the debug device when a host requests
|
||||
a string descriptor with iProduct index.
|
||||
Index is found in the iProduct field in the device descriptor.
|
||||
Value can only be changed while debug capability (DbC) is in
|
||||
disabled state to prevent USB device descriptor change while
|
||||
connected to a USB host.
|
||||
The default value is "Linux USB Debug Target".
|
||||
The field length can be from 1 to 126 characters.
|
||||
|
||||
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_manufacturer
|
||||
Date: January 2026
|
||||
Contact: Łukasz Bartosik <ukaszb@chromium.org>
|
||||
Description:
|
||||
The dbc_manufacturer attribute allows to change the manufacturer
|
||||
string descriptor presented by the debug device when a host
|
||||
requests a string descriptor with iManufacturer index.
|
||||
Value can only be changed while debug capability (DbC) is in
|
||||
disabled state to prevent USB device descriptor change while
|
||||
connected to a USB host.
|
||||
The default value is "Linux Foundation".
|
||||
The field length can be from 1 to 126 characters.
|
||||
|
|
|
|||
|
|
@ -17,3 +17,14 @@ Description:
|
|||
from the device.
|
||||
|
||||
This is a read-only attribute.
|
||||
|
||||
What: /sys/class/spi_master/spi<bus>/spi<bus>.<dev>/jedec_id
|
||||
Date: January 2026
|
||||
KernelVersion: 6.19
|
||||
Contact: Patrick Wicki <patrick.wicki@siemens.com>
|
||||
Description:
|
||||
Contains the raw JEDEC ID bytes returned by the RDID (0x9f) command. The
|
||||
bytes are exposed as a hex string in big-endian order as read from the
|
||||
device.
|
||||
|
||||
This is a read-only attribute.
|
||||
|
|
|
|||
|
|
@ -13,3 +13,13 @@ Description:
|
|||
space if the variable is absent. The primary purpose
|
||||
of this variable is to let systemd know whether
|
||||
tee-supplicant is needed in the early boot with initramfs.
|
||||
|
||||
What: /sys/class/tee/tee{,priv}X/revision
|
||||
Date: Jan 2026
|
||||
KernelVersion: 6.19
|
||||
Contact: op-tee@lists.trustedfirmware.org
|
||||
Description:
|
||||
Read-only revision string reported by the TEE driver. This is
|
||||
for diagnostics only and must not be used to infer feature
|
||||
support. Use TEE_IOC_VERSION for capability and compatibility
|
||||
checks.
|
||||
|
|
|
|||
|
|
@ -7,13 +7,3 @@ Description:
|
|||
signals when the PCI layer is able to support establishment of
|
||||
link encryption and other device-security features coordinated
|
||||
through a platform tsm.
|
||||
|
||||
What: /sys/class/tsm/tsmN/streamH.R.E
|
||||
Contact: linux-pci@vger.kernel.org
|
||||
Description:
|
||||
(RO) When a host bridge has established a secure connection via
|
||||
the platform TSM, symlink appears. The primary function of this
|
||||
is have a system global review of TSM resource consumption
|
||||
across host bridges. The link points to the endpoint PCI device
|
||||
and matches the same link published by the host bridge. See
|
||||
Documentation/ABI/testing/sysfs-devices-pci-host-bridge.
|
||||
|
|
|
|||
|
|
@ -162,6 +162,17 @@ Description: Lists the supported USB Modes. The default USB mode that is used
|
|||
- usb3 (USB 3.2)
|
||||
- usb4 (USB4)
|
||||
|
||||
What: /sys/class/typec/<port>/<alt-mode>/priority
|
||||
Date: July 2025
|
||||
Contact: Andrei Kuchynski <akuchynski@chromium.org>
|
||||
Description:
|
||||
Displays and allows setting the priority for a specific alternate mode.
|
||||
The priority is an integer in the range 0-255. A lower numerical value
|
||||
indicates a higher priority (0 is the highest).
|
||||
If the new value is already in use by another mode, the priority of the
|
||||
conflicting mode and any subsequent modes will be incremented until they
|
||||
are all unique.
|
||||
|
||||
USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
|
||||
|
||||
What: /sys/class/typec/<port>-partner/accessory_mode
|
||||
|
|
|
|||
|
|
@ -8,6 +8,21 @@ Description:
|
|||
0: Not fused
|
||||
1: Fused
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/boot_integrity
|
||||
Date: April 2026
|
||||
KernelVersion: 6.20
|
||||
Contact: mario.limonciello@amd.com
|
||||
Description:
|
||||
The /sys/bus/pci/devices/<BDF>/boot_integrity reports
|
||||
whether the AMD CPU or APU is used for a hardware root of trust
|
||||
during the boot process.
|
||||
Possible values:
|
||||
0: Not hardware root of trust.
|
||||
1: Hardware root of trust
|
||||
|
||||
NOTE: Vendors may provide design specific alternative hardware
|
||||
root of trust implementations.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/debug_lock_on
|
||||
Date: June 2022
|
||||
KernelVersion: 5.19
|
||||
|
|
|
|||
|
|
@ -109,6 +109,22 @@ Description: RO. Package current voltage in millivolt.
|
|||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_crit
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Package critical temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_emergency
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Package shutdown temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_input
|
||||
Date: March 2025
|
||||
KernelVersion: 6.15
|
||||
|
|
@ -117,6 +133,30 @@ Description: RO. Package temperature in millidegree Celsius.
|
|||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp2_max
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Package maximum temperature limit in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_crit
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. VRAM critical temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_emergency
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. VRAM shutdown temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp3_input
|
||||
Date: March 2025
|
||||
KernelVersion: 6.15
|
||||
|
|
@ -125,6 +165,76 @@ Description: RO. VRAM temperature in millidegree Celsius.
|
|||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_crit
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Memory controller critical temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_emergency
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Memory controller shutdown temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp4_input
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. Memory controller average temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_crit
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. GPU PCIe critical temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_emergency
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. GPU PCIe shutdown temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp5_input
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. GPU PCIe temperature in millidegree Celsius.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_crit
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. VRAM channel critical temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_emergency
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. VRAM channel shutdown temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/temp[6-21]_input
|
||||
Date: January 2026
|
||||
KernelVersion: 7.0
|
||||
Contact: intel-xe@lists.freedesktop.org
|
||||
Description: RO. VRAM channel temperature in millidegree Celsius.
|
||||
|
||||
Only supported for particular Intel Xe graphics platforms.
|
||||
|
||||
What: /sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/fan1_input
|
||||
Date: March 2025
|
||||
KernelVersion: 6.16
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ Description:
|
|||
The GT preemption timeout (PT) in [us] to be applied to all functions.
|
||||
See sriov_admin/{pf,vf<N>}/profile/preempt_timeout_us for more details.
|
||||
|
||||
sched_priority: (RW/RO) string
|
||||
sched_priority: (WO) string
|
||||
The GT scheduling priority to be applied for all functions.
|
||||
See sriov_admin/{pf,vf<N>}/profile/sched_priority for more details.
|
||||
|
||||
|
|
|
|||
58
Documentation/ABI/testing/sysfs-firmware-plpks
Normal file
58
Documentation/ABI/testing/sysfs-firmware-plpks
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
What: /sys/firmware/plpks/config
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: This optional directory contains read-only config attributes as
|
||||
defined by the PLPKS implementation. All data is in ASCII
|
||||
format.
|
||||
|
||||
What: /sys/firmware/plpks/config/version
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Config version as reported by the hypervisor in ASCII decimal
|
||||
format.
|
||||
|
||||
What: /sys/firmware/plpks/config/max_object_size
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Maximum allowed size of objects in the keystore in bytes,
|
||||
represented in ASCII decimal format.
|
||||
|
||||
This is not necessarily the same as the max size that can be
|
||||
written to an update file as writes can contain more than
|
||||
object data, you should use the size of the update file for
|
||||
that purpose.
|
||||
|
||||
What: /sys/firmware/plpks/config/total_size
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Total size of the PLPKS in bytes, represented in ASCII decimal
|
||||
format.
|
||||
|
||||
What: /sys/firmware/plpks/config/used_space
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Current space consumed by the key store, in bytes, represented
|
||||
in ASCII decimal format.
|
||||
|
||||
What: /sys/firmware/plpks/config/supported_policies
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Bitmask of supported policy flags by the hypervisor, represented
|
||||
as an 8 byte hexadecimal ASCII string. Consult the hypervisor
|
||||
documentation for what these flags are.
|
||||
|
||||
What: /sys/firmware/plpks/config/signed_update_algorithms
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Bitmask of flags indicating which algorithms the hypervisor
|
||||
supports for signed update of objects, represented as a 16 byte
|
||||
hexadecimal ASCII string. Consult the hypervisor documentation
|
||||
for what these flags mean.
|
||||
|
||||
What: /sys/firmware/plpks/config/wrapping_features
|
||||
Date: November 2025
|
||||
Contact: Srish Srinivasan <ssrish@linux.ibm.com>
|
||||
Description: Bitmask of the wrapping features indicating the wrapping
|
||||
algorithms that are supported for the H_PKS_WRAP_OBJECT requests
|
||||
, represented as a 8 byte hexadecimal ASCII string. Consult the
|
||||
hypervisor documentation for what these flags mean.
|
||||
|
|
@ -3,19 +3,23 @@ Date: November 2021
|
|||
Contact: "Huang Jianan" <huangjianan@oppo.com>
|
||||
Description: Shows all enabled kernel features.
|
||||
Supported features:
|
||||
zero_padding, compr_cfgs, big_pcluster, chunked_file,
|
||||
device_table, compr_head2, sb_chksum, ztailpacking,
|
||||
dedupe, fragments, 48bit, metabox.
|
||||
compr_cfgs, big_pcluster, chunked_file, device_table,
|
||||
compr_head2, sb_chksum, ztailpacking, dedupe, fragments,
|
||||
48bit, metabox.
|
||||
|
||||
What: /sys/fs/erofs/<disk>/sync_decompress
|
||||
Date: November 2021
|
||||
Contact: "Huang Jianan" <huangjianan@oppo.com>
|
||||
Description: Control strategy of sync decompression:
|
||||
Description: Control strategy of synchronous decompression. Synchronous
|
||||
decompression tries to decompress in the reader thread for
|
||||
synchronous reads and small asynchronous reads (<= 12 KiB):
|
||||
|
||||
- 0 (default, auto): enable for readpage, and enable for
|
||||
readahead on atomic contexts only.
|
||||
- 1 (force on): enable for readpage and readahead.
|
||||
- 2 (force off): disable for all situations.
|
||||
- 0 (auto, default): apply to synchronous reads only, but will
|
||||
switch to 1 (force on) if any decompression
|
||||
request is detected in atomic contexts;
|
||||
- 1 (force on): apply to synchronous reads and small
|
||||
asynchronous reads;
|
||||
- 2 (force off): disable synchronous decompression completely.
|
||||
|
||||
What: /sys/fs/erofs/<disk>/drop_caches
|
||||
Date: November 2024
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
|
|||
Date: January 2021
|
||||
Contact: "Daeho Jeong" <daehojeong@google.com>
|
||||
Description: Give a way to change checkpoint merge daemon's io priority.
|
||||
Its default value is "be,3", which means "BE" I/O class and
|
||||
Its default value is "rt,3", which means "RT" I/O class and
|
||||
I/O priority "3". We can select the class between "rt" and "be",
|
||||
and set the I/O priority within valid range of it. "," delimiter
|
||||
is necessary in between I/O class and priority number.
|
||||
|
|
@ -732,7 +732,7 @@ Description: Support configuring fault injection type, should be
|
|||
FAULT_TRUNCATE 0x00000400
|
||||
FAULT_READ_IO 0x00000800
|
||||
FAULT_CHECKPOINT 0x00001000
|
||||
FAULT_DISCARD 0x00002000
|
||||
FAULT_DISCARD 0x00002000 (obsolete)
|
||||
FAULT_WRITE_IO 0x00004000
|
||||
FAULT_SLAB_ALLOC 0x00008000
|
||||
FAULT_DQUOT_INIT 0x00010000
|
||||
|
|
@ -741,8 +741,10 @@ Description: Support configuring fault injection type, should be
|
|||
FAULT_BLKADDR_CONSISTENCE 0x00080000
|
||||
FAULT_NO_SEGMENT 0x00100000
|
||||
FAULT_INCONSISTENT_FOOTER 0x00200000
|
||||
FAULT_TIMEOUT 0x00400000 (1000ms)
|
||||
FAULT_ATOMIC_TIMEOUT 0x00400000 (1000ms)
|
||||
FAULT_VMALLOC 0x00800000
|
||||
FAULT_LOCK_TIMEOUT 0x01000000 (1000ms)
|
||||
FAULT_SKIP_WRITE 0x02000000
|
||||
=========================== ==========
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/discard_io_aware_gran
|
||||
|
|
@ -939,3 +941,57 @@ Description: Controls write priority in multi-devices setups. A value of 0 means
|
|||
allocate_section_policy = 1 Prioritize writing to section before allocate_section_hint
|
||||
allocate_section_policy = 2 Prioritize writing to section after allocate_section_hint
|
||||
=========================== ==========================================================
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/max_lock_elapsed_time
|
||||
Date: December 2025
|
||||
Contact: "Chao Yu" <chao@kernel.org>
|
||||
Description: This is a threshold, once a thread enters critical region that lock covers, total
|
||||
elapsed time exceeds this threshold, f2fs will print tracepoint to dump information
|
||||
of related context. This sysfs entry can be used to control the value of threshold,
|
||||
by default, the value is 500 ms.
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/inject_timeout_type
|
||||
Date: December 2025
|
||||
Contact: "Chao Yu" <chao@kernel.org>
|
||||
Description: This sysfs entry can be used to change type of injected timeout:
|
||||
========== ===============================
|
||||
Flag_Value Flag_Description
|
||||
========== ===============================
|
||||
0x00000000 No timeout (default)
|
||||
0x00000001 Simulate running time
|
||||
0x00000002 Simulate IO type sleep time
|
||||
0x00000003 Simulate Non-IO type sleep time
|
||||
0x00000004 Simulate runnable time
|
||||
========== ===============================
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/adjust_lock_priority
|
||||
Date: January 2026
|
||||
Contact: "Chao Yu" <chao@kernel.org>
|
||||
Description: This sysfs entry can be used to enable/disable to adjust priority for task
|
||||
which is in critical region covered by lock.
|
||||
========== ==================
|
||||
Flag_Value Flag_Description
|
||||
========== ==================
|
||||
0x00000000 Disabled (default)
|
||||
0x00000001 cp_rwsem
|
||||
0x00000002 node_change
|
||||
0x00000004 node_write
|
||||
0x00000008 gc_lock
|
||||
0x00000010 cp_global
|
||||
0x00000020 io_rwsem
|
||||
========== ==================
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/lock_duration_priority
|
||||
Date: January 2026
|
||||
Contact: "Chao Yu" <chao@kernel.org>
|
||||
Description: f2fs can tune priority of thread which has entered into critical region covered by
|
||||
f2fs rwsemphore lock. This sysfs entry can be used to control priority value, the
|
||||
range is [100,139], by default the value is 120.
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/critical_task_priority
|
||||
Date: February 2026
|
||||
Contact: "Chao Yu" <chao@kernel.org>
|
||||
Description: It can be used to tune priority of f2fs critical task, e.g. f2fs_ckpt, f2fs_gc
|
||||
threads, limitation as below:
|
||||
- it requires user has CAP_SYS_NICE capability.
|
||||
- the range is [100, 139], by default the value is 100.
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
What: /sys/kernel/dmabuf/buffers
|
||||
Date: May 2021
|
||||
KernelVersion: v5.13
|
||||
Contact: Hridya Valsaraju <hridya@google.com>
|
||||
Description: The /sys/kernel/dmabuf/buffers directory contains a
|
||||
snapshot of the internal state of every DMA-BUF.
|
||||
/sys/kernel/dmabuf/buffers/<inode_number> will contain the
|
||||
statistics for the DMA-BUF with the unique inode number
|
||||
<inode_number>
|
||||
Users: kernel memory tuning/debugging tools
|
||||
|
||||
What: /sys/kernel/dmabuf/buffers/<inode_number>/exporter_name
|
||||
Date: May 2021
|
||||
KernelVersion: v5.13
|
||||
Contact: Hridya Valsaraju <hridya@google.com>
|
||||
Description: This file is read-only and contains the name of the exporter of
|
||||
the DMA-BUF.
|
||||
|
||||
What: /sys/kernel/dmabuf/buffers/<inode_number>/size
|
||||
Date: May 2021
|
||||
KernelVersion: v5.13
|
||||
Contact: Hridya Valsaraju <hridya@google.com>
|
||||
Description: This file is read-only and specifies the size of the DMA-BUF in
|
||||
bytes.
|
||||
|
|
@ -516,6 +516,19 @@ Contact: SeongJae Park <sj@kernel.org>
|
|||
Description: Reading this file returns the number of the exceed events of
|
||||
the scheme's quotas.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_snapshots
|
||||
Date: Dec 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Reading this file returns the total number of DAMON snapshots
|
||||
that the scheme has tried to be applied.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/max_nr_snapshots
|
||||
Date: Dec 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing a number to this file sets the upper limit of
|
||||
nr_snapshots that deactivates the scheme when the limit is
|
||||
reached or exceeded.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/total_bytes
|
||||
Date: Jul 2023
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
|
|
|
|||
|
|
@ -63,68 +63,3 @@ Contact: Nayna Jain <nayna@linux.ibm.com>
|
|||
Description: A write-only file that is used to submit the new value for the
|
||||
variable. The size of the file represents the maximum size of
|
||||
the variable data that can be written.
|
||||
|
||||
What: /sys/firmware/secvar/config
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: This optional directory contains read-only config attributes as
|
||||
defined by the secure variable implementation. All data is in
|
||||
ASCII format. The directory is only created if the backing
|
||||
implementation provides variables to populate it, which at
|
||||
present is only PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/version
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Config version as reported by the hypervisor in ASCII decimal
|
||||
format.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/max_object_size
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Maximum allowed size of objects in the keystore in bytes,
|
||||
represented in ASCII decimal format.
|
||||
|
||||
This is not necessarily the same as the max size that can be
|
||||
written to an update file as writes can contain more than
|
||||
object data, you should use the size of the update file for
|
||||
that purpose.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/total_size
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Total size of the PLPKS in bytes, represented in ASCII decimal
|
||||
format.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/used_space
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Current space consumed by the key store, in bytes, represented
|
||||
in ASCII decimal format.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/supported_policies
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Bitmask of supported policy flags by the hypervisor,
|
||||
represented as an 8 byte hexadecimal ASCII string. Consult the
|
||||
hypervisor documentation for what these flags are.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
||||
What: /sys/firmware/secvar/config/signed_update_algorithms
|
||||
Date: February 2023
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
Description: Bitmask of flags indicating which algorithms the hypervisor
|
||||
supports for signed update of objects, represented as a 16 byte
|
||||
hexadecimal ASCII string. Consult the hypervisor documentation
|
||||
for what these flags mean.
|
||||
|
||||
Currently only provided by PLPKS on the pseries platform.
|
||||
|
|
|
|||
|
|
@ -98,7 +98,8 @@ dochelp:
|
|||
@echo ' cleandocs - clean all generated files'
|
||||
@echo
|
||||
@echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
|
||||
@echo ' top level values for SPHINXDIRS are: $(_SPHINXDIRS)'
|
||||
@echo ' top level values for SPHINXDIRS are:'
|
||||
@echo '$(_SPHINXDIRS)' | fmt -s -w 75 -g 75 | sed 's/^/ /'
|
||||
@echo ' you may also use a subdirectory like SPHINXDIRS=userspace-api/media,'
|
||||
@echo ' provided that there is an index.rst file at the subdirectory.'
|
||||
@echo
|
||||
|
|
|
|||
|
|
@ -95,6 +95,30 @@ by the PCI endpoint function driver.
|
|||
Register space of the function driver is usually configured
|
||||
using this API.
|
||||
|
||||
Some endpoint controllers also support calling pci_epc_set_bar() again
|
||||
for the same BAR (without calling pci_epc_clear_bar()) to update inbound
|
||||
address translations after the host has programmed the BAR base address.
|
||||
Endpoint function drivers can check this capability via the
|
||||
dynamic_inbound_mapping EPC feature bit.
|
||||
|
||||
When pci_epf_bar.num_submap is non-zero, the endpoint function driver is
|
||||
requesting BAR subrange mapping using pci_epf_bar.submap. This requires
|
||||
the EPC to advertise support via the subrange_mapping EPC feature bit.
|
||||
|
||||
When an EPF driver wants to make use of the inbound subrange mapping
|
||||
feature, it requires that the BAR base address has been programmed by
|
||||
the host during enumeration. Thus, it needs to call pci_epc_set_bar()
|
||||
twice for the same BAR (requires dynamic_inbound_mapping): first with
|
||||
num_submap set to zero and configuring the BAR size, then after the PCIe
|
||||
link is up and the host enumerates the endpoint and programs the BAR
|
||||
base address, again with num_submap set to non-zero value.
|
||||
|
||||
Note that when making use of the inbound subrange mapping feature, the
|
||||
EPF driver must not call pci_epc_clear_bar() between the two
|
||||
pci_epc_set_bar() calls, because clearing the BAR can clear/disable the
|
||||
BAR register or BAR decode on the endpoint while the host still expects
|
||||
the assigned BAR address to remain valid.
|
||||
|
||||
* pci_epc_clear_bar()
|
||||
|
||||
The PCI endpoint function driver should use pci_epc_clear_bar() to reset
|
||||
|
|
|
|||
|
|
@ -84,6 +84,25 @@ device, the following commands can be used::
|
|||
# echo 32 > functions/pci_epf_test/func1/msi_interrupts
|
||||
# echo 2048 > functions/pci_epf_test/func1/msix_interrupts
|
||||
|
||||
By default, pci-epf-test uses the following BAR sizes::
|
||||
|
||||
# grep . functions/pci_epf_test/func1/pci_epf_test.0/bar?_size
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar0_size:131072
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar1_size:131072
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar2_size:131072
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar3_size:131072
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar4_size:131072
|
||||
functions/pci_epf_test/func1/pci_epf_test.0/bar5_size:1048576
|
||||
|
||||
The user can override a default value using e.g.::
|
||||
# echo 1048576 > functions/pci_epf_test/func1/pci_epf_test.0/bar1_size
|
||||
|
||||
Overriding the default BAR sizes can only be done before binding the
|
||||
pci-epf-test device to a PCI endpoint controller driver.
|
||||
|
||||
Note: Some endpoint controllers might have fixed-size BARs or reserved BARs;
|
||||
for such controllers, the corresponding BAR size in configfs will be ignored.
|
||||
|
||||
|
||||
Binding pci-epf-test Device to EP Controller
|
||||
--------------------------------------------
|
||||
|
|
|
|||
|
|
@ -52,14 +52,14 @@ pci-epf-vntb device, the following commands can be used::
|
|||
# cd /sys/kernel/config/pci_ep/
|
||||
# mkdir functions/pci_epf_vntb/func1
|
||||
|
||||
The "mkdir func1" above creates the pci-epf-ntb function device that will
|
||||
The "mkdir func1" above creates the pci-epf-vntb function device that will
|
||||
be probed by pci_epf_vntb driver.
|
||||
|
||||
The PCI endpoint framework populates the directory with the following
|
||||
configurable fields::
|
||||
|
||||
# ls functions/pci_epf_ntb/func1
|
||||
baseclass_code deviceid msi_interrupts pci-epf-ntb.0
|
||||
# ls functions/pci_epf_vntb/func1
|
||||
baseclass_code deviceid msi_interrupts pci-epf-vntb.0
|
||||
progif_code secondary subsys_id vendorid
|
||||
cache_line_size interrupt_pin msix_interrupts primary
|
||||
revid subclass_code subsys_vendor_id
|
||||
|
|
@ -111,13 +111,13 @@ A sample configuration for virtual NTB driver for virtual PCI bus::
|
|||
# echo 0x080A > functions/pci_epf_vntb/func1/pci_epf_vntb.0/vntb_pid
|
||||
# echo 0x10 > functions/pci_epf_vntb/func1/pci_epf_vntb.0/vbus_number
|
||||
|
||||
Binding pci-epf-ntb Device to EP Controller
|
||||
Binding pci-epf-vntb Device to EP Controller
|
||||
--------------------------------------------
|
||||
|
||||
NTB function device should be attached to PCI endpoint controllers
|
||||
connected to the host.
|
||||
|
||||
# ln -s controllers/5f010000.pcie_ep functions/pci-epf-ntb/func1/primary
|
||||
# ln -s controllers/5f010000.pcie_ep functions/pci_epf_vntb/func1/primary
|
||||
|
||||
Once the above step is completed, the PCI endpoint controllers are ready to
|
||||
establish a link with the host.
|
||||
|
|
@ -139,7 +139,7 @@ lspci Output at Host side
|
|||
-------------------------
|
||||
|
||||
Note that the devices listed here correspond to the values populated in
|
||||
"Creating pci-epf-ntb Device" section above::
|
||||
"Creating pci-epf-vntb Device" section above::
|
||||
|
||||
# lspci
|
||||
00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01)
|
||||
|
|
@ -152,7 +152,7 @@ lspci Output at EP Side / Virtual PCI bus
|
|||
-----------------------------------------
|
||||
|
||||
Note that the devices listed here correspond to the values populated in
|
||||
"Creating pci-epf-ntb Device" section above::
|
||||
"Creating pci-epf-vntb Device" section above::
|
||||
|
||||
# lspci
|
||||
10:00.0 Unassigned class [ffff]: Dawicontrol Computersysteme GmbH Device 1234 (rev ff)
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ function::
|
|||
|
||||
which allocates up to max_vecs interrupt vectors for a PCI device. It
|
||||
returns the number of vectors allocated or a negative error. If the device
|
||||
has a requirements for a minimum number of vectors the driver can pass a
|
||||
has a requirement for a minimum number of vectors the driver can pass a
|
||||
min_vecs argument set to this limit, and the PCI core will return -ENOSPC
|
||||
if it can't meet the minimum number of vectors.
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ not be able to allocate as many vectors for MSI as it could for MSI-X. On
|
|||
some platforms, MSI interrupts must all be targeted at the same set of CPUs
|
||||
whereas MSI-X interrupts can all be targeted at different CPUs.
|
||||
|
||||
If a device supports neither MSI-X or MSI it will fall back to a single
|
||||
If a device supports neither MSI-X nor MSI it will fall back to a single
|
||||
legacy IRQ vector.
|
||||
|
||||
The typical usage of MSI or MSI-X interrupts is to allocate as many vectors
|
||||
|
|
@ -203,7 +203,7 @@ How to tell whether MSI/MSI-X is enabled on a device
|
|||
----------------------------------------------------
|
||||
|
||||
Using 'lspci -v' (as root) may show some devices with "MSI", "Message
|
||||
Signalled Interrupts" or "MSI-X" capabilities. Each of these capabilities
|
||||
Signaled Interrupts" or "MSI-X" capabilities. Each of these capabilities
|
||||
has an 'Enable' flag which is followed with either "+" (enabled)
|
||||
or "-" (disabled).
|
||||
|
||||
|
|
|
|||
|
|
@ -460,7 +460,6 @@ That is, the recovery API only requires that:
|
|||
- drivers/net/e1000e
|
||||
- drivers/net/ixgbe
|
||||
- drivers/net/cxgb3
|
||||
- drivers/net/s2io.c
|
||||
|
||||
The cor_error_detected() callback is invoked in handle_error_source() when
|
||||
the error severity is "correctable". The callback is optional and allows
|
||||
|
|
|
|||
|
|
@ -2780,12 +2780,12 @@ 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.
|
||||
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 API implemented as thin wrappers around SRCU-fast,
|
||||
which avoids the read-side memory barriers, at least for architectures
|
||||
that apply noinstr to kernel entry/exit code (or that build with
|
||||
``CONFIG_TASKS_TRACE_RCU_NO_MB=y``.
|
||||
|
||||
The tasks-trace-RCU API is also reasonably compact,
|
||||
consisting of rcu_read_lock_trace(), rcu_read_unlock_trace(),
|
||||
|
|
|
|||
|
|
@ -28,10 +28,3 @@ RCU Handbook
|
|||
Design/Expedited-Grace-Periods/Expedited-Grace-Periods
|
||||
Design/Requirements/Requirements
|
||||
Design/Data-Structures/Data-Structures
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -11,10 +11,3 @@ Compute Accelerators
|
|||
amdxdna/index
|
||||
qaic/index
|
||||
rocket/index
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -107,22 +107,22 @@ Get sum and peak of delays, since system boot, for all pids with tgid 242::
|
|||
TGID 242
|
||||
|
||||
|
||||
CPU count real total virtual total delay total delay average delay max delay min
|
||||
39 156000000 156576579 2111069 0.054ms 0.212296ms 0.031307ms
|
||||
IO count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
SWAP count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
RECLAIM count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
THRASHING count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
COMPACT count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
WPCOPY count delay total delay average delay max delay min
|
||||
156 11215873 0.072ms 0.207403ms 0.033913ms
|
||||
IRQ count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
CPU count real total virtual total delay total delay average delay max delay min delay max timestamp
|
||||
46 188000000 192348334 4098012 0.089ms 0.429260ms 0.051205ms 2026-01-15T15:06:58
|
||||
IO count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
SWAP count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
RECLAIM count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
THRASHING count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
COMPACT count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
WPCOPY count delay total delay average delay max delay min delay max timestamp
|
||||
182 19413338 0.107ms 0.547353ms 0.022462ms 2026-01-15T15:05:24
|
||||
IRQ count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
|
||||
Get IO accounting for pid 1, it works only with -p::
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Landlock: system-wide management
|
|||
================================
|
||||
|
||||
:Author: Mickaël Salaün
|
||||
:Date: March 2025
|
||||
:Date: January 2026
|
||||
|
||||
Landlock can leverage the audit framework to log events.
|
||||
|
||||
|
|
@ -38,6 +38,37 @@ AUDIT_LANDLOCK_ACCESS
|
|||
domain=195ba459b blockers=fs.refer path="/usr/bin" dev="vda2" ino=351
|
||||
domain=195ba459b blockers=fs.make_reg,fs.refer path="/usr/local" dev="vda2" ino=365
|
||||
|
||||
|
||||
The ``blockers`` field uses dot-separated prefixes to indicate the type of
|
||||
restriction that caused the denial:
|
||||
|
||||
**fs.*** - Filesystem access rights (ABI 1+):
|
||||
- fs.execute, fs.write_file, fs.read_file, fs.read_dir
|
||||
- fs.remove_dir, fs.remove_file
|
||||
- fs.make_char, fs.make_dir, fs.make_reg, fs.make_sock
|
||||
- fs.make_fifo, fs.make_block, fs.make_sym
|
||||
- fs.refer (ABI 2+)
|
||||
- fs.truncate (ABI 3+)
|
||||
- fs.ioctl_dev (ABI 5+)
|
||||
|
||||
**net.*** - Network access rights (ABI 4+):
|
||||
- net.bind_tcp - TCP port binding was denied
|
||||
- net.connect_tcp - TCP connection was denied
|
||||
|
||||
**scope.*** - IPC scoping restrictions (ABI 6+):
|
||||
- scope.abstract_unix_socket - Abstract UNIX socket connection denied
|
||||
- scope.signal - Signal sending denied
|
||||
|
||||
Multiple blockers can appear in a single event (comma-separated) when
|
||||
multiple access rights are missing. For example, creating a regular file
|
||||
in a directory that lacks both ``make_reg`` and ``refer`` rights would show
|
||||
``blockers=fs.make_reg,fs.refer``.
|
||||
|
||||
The object identification fields (path, dev, ino for filesystem; opid,
|
||||
ocomm for signals) depend on the type of access being blocked and provide
|
||||
context about what resource was involved in the denial.
|
||||
|
||||
|
||||
AUDIT_LANDLOCK_DOMAIN
|
||||
This record type describes the status of a Landlock domain. The ``status``
|
||||
field can be either ``allocated`` or ``deallocated``.
|
||||
|
|
@ -86,7 +117,7 @@ This command generates two events, each identified with a unique serial
|
|||
number following a timestamp (``msg=audit(1729738800.268:30)``). The first
|
||||
event (serial ``30``) contains 4 records. The first record
|
||||
(``type=LANDLOCK_ACCESS``) shows an access denied by the domain `1a6fdc66f`.
|
||||
The cause of this denial is signal scopping restriction
|
||||
The cause of this denial is signal scoping restriction
|
||||
(``blockers=scope.signal``). The process that would have receive this signal
|
||||
is the init process (``opid=1 ocomm="systemd"``).
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ Documentation
|
|||
these typically contain kernel-specific installation notes for some
|
||||
drivers for example. Please read the
|
||||
:ref:`Documentation/process/changes.rst <changes>` file, as it
|
||||
contains information about the problems, which may result by upgrading
|
||||
contains information about the problems which may result from upgrading
|
||||
your kernel.
|
||||
|
||||
Installing the kernel source
|
||||
|
|
|
|||
|
|
@ -8,10 +8,3 @@ ATA over Ethernet (AoE)
|
|||
aoe
|
||||
todo
|
||||
examples
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -7,10 +7,3 @@ Auxiliary Display Support
|
|||
|
||||
ks0108.rst
|
||||
cfag12864b.rst
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -214,6 +214,9 @@ mem_limit WO specifies the maximum amount of memory ZRAM can
|
|||
writeback_limit WO specifies the maximum amount of write IO zram
|
||||
can write out to backing device as 4KB unit
|
||||
writeback_limit_enable RW show and set writeback_limit feature
|
||||
writeback_batch_size RW show and set maximum number of in-flight
|
||||
writeback operations
|
||||
writeback_compressed RW show and set compressed writeback feature
|
||||
comp_algorithm RW show and change the compression algorithm
|
||||
algorithm_params WO setup compression algorithm parameters
|
||||
compact WO trigger memory compaction
|
||||
|
|
@ -222,7 +225,6 @@ backing_dev RW set up backend storage for zram to write out
|
|||
idle WO mark allocated slot as idle
|
||||
====================== ====== ===============================================
|
||||
|
||||
|
||||
User space is advised to use the following files to read the device statistics.
|
||||
|
||||
File /sys/block/zram<id>/stat
|
||||
|
|
@ -434,6 +436,26 @@ system reboot, echo 1 > /sys/block/zramX/reset) so keeping how many of
|
|||
writeback happened until you reset the zram to allocate extra writeback
|
||||
budget in next setting is user's job.
|
||||
|
||||
By default zram stores written back pages in decompressed (raw) form, which
|
||||
means that writeback operation involves decompression of the page before
|
||||
writing it to the backing device. This behavior can be changed by enabling
|
||||
`writeback_compressed` feature, which causes zram to write compressed pages
|
||||
to the backing device, thus avoiding decompression overhead. To enable
|
||||
this feature, execute::
|
||||
|
||||
$ echo yes > /sys/block/zramX/writeback_compressed
|
||||
|
||||
Note that this feature should be configured before the `zramX` device is
|
||||
initialized.
|
||||
|
||||
Depending on backing device storage type, writeback operation may benefit
|
||||
from a higher number of in-flight write requests (batched writes). The
|
||||
number of maximum in-flight writeback operations can be configured via
|
||||
`writeback_batch_size` attribute. To change the default value (which is 32),
|
||||
execute::
|
||||
|
||||
$ echo 64 > /sys/block/zramX/writeback_batch_size
|
||||
|
||||
If admin wants to measure writeback count in a certain period, they could
|
||||
know it via /sys/block/zram0/bd_stat's 3rd column.
|
||||
|
||||
|
|
|
|||
|
|
@ -20,18 +20,26 @@ Config File Syntax
|
|||
|
||||
The boot config syntax is a simple structured key-value. Each key consists
|
||||
of dot-connected-words, and key and value are connected by ``=``. The value
|
||||
has to be terminated by semi-colon (``;``) or newline (``\n``).
|
||||
For array value, array entries are separated by comma (``,``). ::
|
||||
|
||||
KEY[.WORD[...]] = VALUE[, VALUE2[...]][;]
|
||||
|
||||
Unlike the kernel command line syntax, spaces are OK around the comma and ``=``.
|
||||
string has to be terminated by the following delimiters described below.
|
||||
|
||||
Each key word must contain only alphabets, numbers, dash (``-``) or underscore
|
||||
(``_``). And each value only contains printable characters or spaces except
|
||||
for delimiters such as semi-colon (``;``), new-line (``\n``), comma (``,``),
|
||||
hash (``#``) and closing brace (``}``).
|
||||
|
||||
If the ``=`` is followed by whitespace up to one of these delimiters, the
|
||||
key is assigned an empty value.
|
||||
|
||||
For arrays, the array values are comma (``,``) separated, and comments and
|
||||
line breaks with newline (``\n``) are allowed between array values for
|
||||
readability. Thus the first entry of the array must be on the same line as
|
||||
the key.::
|
||||
|
||||
KEY[.WORD[...]] = VALUE[, VALUE2[...]][;]
|
||||
|
||||
Unlike the kernel command line syntax, white spaces (including tabs) are
|
||||
ignored around the comma and ``=``.
|
||||
|
||||
If you want to use those delimiters in a value, you can use either double-
|
||||
quotes (``"VALUE"``) or single-quotes (``'VALUE'``) to quote it. Note that
|
||||
you can not escape these quotes.
|
||||
|
|
@ -138,8 +146,8 @@ This is parsed as below::
|
|||
foo = value
|
||||
bar = 1, 2, 3
|
||||
|
||||
Note that you can not put a comment between value and delimiter(``,`` or
|
||||
``;``). This means following config has a syntax error ::
|
||||
Note that you can NOT put a comment or a newline between value and delimiter
|
||||
(``,`` or ``;``). This means following config has a syntax error ::
|
||||
|
||||
key = 1 # comment
|
||||
,2
|
||||
|
|
|
|||
|
|
@ -52,14 +52,14 @@ line is usually required to identify and handle the bug. Along this chapter,
|
|||
we'll refer to "Oops" for all kinds of stack traces that need to be analyzed.
|
||||
|
||||
If the kernel is compiled with ``CONFIG_DEBUG_INFO``, you can enhance the
|
||||
quality of the stack trace by using file:`scripts/decode_stacktrace.sh`.
|
||||
quality of the stack trace by using ``scripts/decode_stacktrace.sh``.
|
||||
|
||||
Modules linked in
|
||||
-----------------
|
||||
|
||||
Modules that are tainted or are being loaded or unloaded are marked with
|
||||
"(...)", where the taint flags are described in
|
||||
file:`Documentation/admin-guide/tainted-kernels.rst`, "being loaded" is
|
||||
Documentation/admin-guide/tainted-kernels.rst, "being loaded" is
|
||||
annotated with "+", and "being unloaded" is annotated with "-".
|
||||
|
||||
|
||||
|
|
@ -235,7 +235,7 @@ Dave Miller)::
|
|||
mov 0x8(%ebp), %ebx ! %ebx = skb->sk
|
||||
mov 0x13c(%ebx), %eax ! %eax = inet_sk(sk)->opt
|
||||
|
||||
file:`scripts/decodecode` can be used to automate most of this, depending
|
||||
``scripts/decodecode`` can be used to automate most of this, depending
|
||||
on what CPU architecture is being debugged.
|
||||
|
||||
Reporting the bug
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ control group and enforces the limit during page fault. Since HugeTLB
|
|||
doesn't support page reclaim, enforcing the limit at page fault time implies
|
||||
that, the application will get SIGBUS signal if it tries to fault in HugeTLB
|
||||
pages beyond its limit. Therefore the application needs to know exactly how many
|
||||
HugeTLB pages it uses before hand, and the sysadmin needs to make sure that
|
||||
HugeTLB pages it uses beforehand, and the sysadmin needs to make sure that
|
||||
there are enough available on the machine for all the users to avoid processes
|
||||
getting SIGBUS.
|
||||
|
||||
|
|
@ -91,23 +91,23 @@ getting SIGBUS.
|
|||
hugetlb.<hugepagesize>.rsvd.usage_in_bytes
|
||||
hugetlb.<hugepagesize>.rsvd.failcnt
|
||||
|
||||
The HugeTLB controller allows to limit the HugeTLB reservations per control
|
||||
The HugeTLB controller allows limiting the HugeTLB reservations per control
|
||||
group and enforces the controller limit at reservation time and at the fault of
|
||||
HugeTLB memory for which no reservation exists. Since reservation limits are
|
||||
enforced at reservation time (on mmap or shget), reservation limits never causes
|
||||
the application to get SIGBUS signal if the memory was reserved before hand. For
|
||||
enforced at reservation time (on mmap or shget), reservation limits never cause
|
||||
the application to get SIGBUS signal if the memory was reserved beforehand. For
|
||||
MAP_NORESERVE allocations, the reservation limit behaves the same as the fault
|
||||
limit, enforcing memory usage at fault time and causing the application to
|
||||
receive a SIGBUS if it's crossing its limit.
|
||||
|
||||
Reservation limits are superior to page fault limits described above, since
|
||||
reservation limits are enforced at reservation time (on mmap or shget), and
|
||||
never causes the application to get SIGBUS signal if the memory was reserved
|
||||
before hand. This allows for easier fallback to alternatives such as
|
||||
never cause the application to get SIGBUS signal if the memory was reserved
|
||||
beforehand. This allows for easier fallback to alternatives such as
|
||||
non-HugeTLB memory for example. In the case of page fault accounting, it's very
|
||||
hard to avoid processes getting SIGBUS since the sysadmin needs precisely know
|
||||
the HugeTLB usage of all the tasks in the system and make sure there is enough
|
||||
pages to satisfy all requests. Avoiding tasks getting SIGBUS on overcommited
|
||||
hard to avoid processes getting SIGBUS since the sysadmin needs to precisely know
|
||||
the HugeTLB usage of all the tasks in the system and make sure there are enough
|
||||
pages to satisfy all requests. Avoiding tasks getting SIGBUS on overcommitted
|
||||
systems is practically impossible with page fault accounting.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -22,10 +22,3 @@ Control Groups version 1
|
|||
net_prio
|
||||
pids
|
||||
rdma
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -311,9 +311,8 @@ Lock order is as follows::
|
|||
|
||||
folio_lock
|
||||
mm->page_table_lock or split pte_lock
|
||||
folio_memcg_lock (memcg->move_lock)
|
||||
mapping->i_pages lock
|
||||
lruvec->lru_lock.
|
||||
mapping->i_pages lock
|
||||
lruvec->lru_lock.
|
||||
|
||||
Per-node-per-memcgroup LRU (cgroup's private LRU) is guarded by
|
||||
lruvec->lru_lock; the folio LRU flag is cleared before
|
||||
|
|
|
|||
|
|
@ -737,9 +737,6 @@ combinations are invalid and should be rejected. Also, if the
|
|||
resource is mandatory for execution of processes, process migrations
|
||||
may be rejected.
|
||||
|
||||
"cpu.rt.max" hard-allocates realtime slices and is an example of this
|
||||
type.
|
||||
|
||||
|
||||
Interface Files
|
||||
===============
|
||||
|
|
@ -2561,10 +2558,10 @@ Cpuset Interface Files
|
|||
Users can manually set it to a value that is different from
|
||||
"cpuset.cpus". One constraint in setting it is that the list of
|
||||
CPUs must be exclusive with respect to "cpuset.cpus.exclusive"
|
||||
of its sibling. If "cpuset.cpus.exclusive" of a sibling cgroup
|
||||
isn't set, its "cpuset.cpus" value, if set, cannot be a subset
|
||||
of it to leave at least one CPU available when the exclusive
|
||||
CPUs are taken away.
|
||||
and "cpuset.cpus.exclusive.effective" of its siblings. Another
|
||||
constraint is that it cannot be a superset of "cpuset.cpus"
|
||||
of its sibling in order to leave at least one CPU available to
|
||||
that sibling when the exclusive CPUs are taken away.
|
||||
|
||||
For a parent cgroup, any one of its exclusive CPUs can only
|
||||
be distributed to at most one of its child cgroups. Having an
|
||||
|
|
@ -2584,9 +2581,9 @@ Cpuset Interface Files
|
|||
of this file will always be a subset of its parent's
|
||||
"cpuset.cpus.exclusive.effective" if its parent is not the root
|
||||
cgroup. It will also be a subset of "cpuset.cpus.exclusive"
|
||||
if it is set. If "cpuset.cpus.exclusive" is not set, it is
|
||||
treated to have an implicit value of "cpuset.cpus" in the
|
||||
formation of local partition.
|
||||
if it is set. This file should only be non-empty if either
|
||||
"cpuset.cpus.exclusive" is set or when the current cpuset is
|
||||
a valid partition root.
|
||||
|
||||
cpuset.cpus.isolated
|
||||
A read-only and root cgroup only multiple values file.
|
||||
|
|
@ -2618,13 +2615,22 @@ Cpuset Interface Files
|
|||
There are two types of partitions - local and remote. A local
|
||||
partition is one whose parent cgroup is also a valid partition
|
||||
root. A remote partition is one whose parent cgroup is not a
|
||||
valid partition root itself. Writing to "cpuset.cpus.exclusive"
|
||||
is optional for the creation of a local partition as its
|
||||
"cpuset.cpus.exclusive" file will assume an implicit value that
|
||||
is the same as "cpuset.cpus" if it is not set. Writing the
|
||||
proper "cpuset.cpus.exclusive" values down the cgroup hierarchy
|
||||
before the target partition root is mandatory for the creation
|
||||
of a remote partition.
|
||||
valid partition root itself.
|
||||
|
||||
Writing to "cpuset.cpus.exclusive" is optional for the creation
|
||||
of a local partition as its "cpuset.cpus.exclusive" file will
|
||||
assume an implicit value that is the same as "cpuset.cpus" if it
|
||||
is not set. Writing the proper "cpuset.cpus.exclusive" values
|
||||
down the cgroup hierarchy before the target partition root is
|
||||
mandatory for the creation of a remote partition.
|
||||
|
||||
Not all the CPUs requested in "cpuset.cpus.exclusive" can be
|
||||
used to form a new partition. Only those that were present
|
||||
in its parent's "cpuset.cpus.exclusive.effective" control
|
||||
file can be used. For partitions created without setting
|
||||
"cpuset.cpus.exclusive", exclusive CPUs specified in sibling's
|
||||
"cpuset.cpus.exclusive" or "cpuset.cpus.exclusive.effective"
|
||||
also cannot be used.
|
||||
|
||||
Currently, a remote partition cannot be created under a local
|
||||
partition. All the ancestors of a remote partition root except
|
||||
|
|
@ -2632,6 +2638,10 @@ Cpuset Interface Files
|
|||
|
||||
The root cgroup is always a partition root and its state cannot
|
||||
be changed. All other non-root cgroups start out as "member".
|
||||
Even though the "cpuset.cpus.exclusive*" and "cpuset.cpus"
|
||||
control files are not present in the root cgroup, they are
|
||||
implicitly the same as the "/sys/devices/system/cpu/possible"
|
||||
sysfs file.
|
||||
|
||||
When set to "root", the current cgroup is the root of a new
|
||||
partition or scheduling domain. The set of exclusive CPUs is
|
||||
|
|
@ -2816,7 +2826,7 @@ DMEM Interface Files
|
|||
HugeTLB
|
||||
-------
|
||||
|
||||
The HugeTLB controller allows to limit the HugeTLB usage per control group and
|
||||
The HugeTLB controller allows limiting the HugeTLB usage per control group and
|
||||
enforces the controller limit during page fault.
|
||||
|
||||
HugeTLB Interface Files
|
||||
|
|
|
|||
|
|
@ -12,10 +12,3 @@ CIFS
|
|||
todo
|
||||
changes
|
||||
authors
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ Table line examples:
|
|||
8192 1960886272 linear 8:0 0 2048 # previous data segment
|
||||
|
||||
# Mapping table for e.g. raid5_rs reshape causing the size of the raid device to double-fold once the reshape finishes.
|
||||
# Check the status output (e.g. "dmsetup status $RaidDev") for progess.
|
||||
# Check the status output (e.g. "dmsetup status $RaidDev") for progress.
|
||||
|
||||
0 $((2 * 1960886272)) raid raid5 7 0 region_size 2048 data_offset 8192 delta_disk 1 2 /dev/dm-0 /dev/dm-1 /dev/dm-2 /dev/dm-3
|
||||
|
||||
|
|
|
|||
|
|
@ -40,10 +40,3 @@ Device Mapper
|
|||
verity
|
||||
writecache
|
||||
zero
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -97,9 +97,12 @@ It is recommended that these links exist on all systems:
|
|||
/dev/bttv0 video0 symbolic Backward compatibility
|
||||
/dev/radio radio0 symbolic Backward compatibility
|
||||
/dev/i2o* /dev/i2o/* symbolic Backward compatibility
|
||||
/dev/scd? sr? hard Alternate SCSI CD-ROM name
|
||||
=============== =============== =============== ===============================
|
||||
|
||||
Suggested earlier ``/dev/scd?`` alternative names for ``/dev/sr?``
|
||||
CD-ROM and other optical drives (using SCSI commands) were removed
|
||||
in ``udev`` version 174 that was released in 2011.
|
||||
|
||||
Locally defined links
|
||||
+++++++++++++++++++++
|
||||
|
||||
|
|
@ -112,7 +115,6 @@ exist, they should have the following uses.
|
|||
/dev/mouse mouse port symbolic Current mouse device
|
||||
/dev/tape tape device symbolic Current tape device
|
||||
/dev/cdrom CD-ROM device symbolic Current CD-ROM device
|
||||
/dev/cdwriter CD-writer symbolic Current CD-writer device
|
||||
/dev/scanner scanner symbolic Current scanner device
|
||||
/dev/modem modem port symbolic Current dialout device
|
||||
/dev/root root device symbolic Current root filesystem
|
||||
|
|
@ -126,8 +128,8 @@ exists, ``/dev/modem`` should point to the appropriate primary TTY device
|
|||
|
||||
For SCSI devices, ``/dev/tape`` and ``/dev/cdrom`` should point to the
|
||||
*cooked* devices (``/dev/st*`` and ``/dev/sr*``, respectively), whereas
|
||||
``/dev/cdwriter`` and /dev/scanner should point to the appropriate generic
|
||||
SCSI devices (/dev/sg*).
|
||||
``/dev/scanner`` should point to the appropriate generic
|
||||
SCSI device (``/dev/sg*``).
|
||||
|
||||
``/dev/mouse`` may point to a primary serial TTY device, a hardware mouse
|
||||
device, or a socket for a mouse driver program (e.g. ``/dev/gpmdata``).
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@
|
|||
216 = /dev/fujitsu/apanel Fujitsu/Siemens application panel
|
||||
217 = /dev/ni/natmotn National Instruments Motion
|
||||
218 = /dev/kchuid Inter-process chuid control
|
||||
219 = /dev/modems/mwave MWave modem firmware upload
|
||||
219 =
|
||||
220 = /dev/mptctl Message passing technology (MPT) control
|
||||
221 = /dev/mvista/hssdsi Montavista PICMG hot swap system driver
|
||||
222 = /dev/mvista/hasi Montavista PICMG high availability
|
||||
|
|
@ -389,11 +389,11 @@
|
|||
...
|
||||
|
||||
11 block SCSI CD-ROM devices
|
||||
0 = /dev/scd0 First SCSI CD-ROM
|
||||
1 = /dev/scd1 Second SCSI CD-ROM
|
||||
0 = /dev/sr0 First SCSI CD-ROM
|
||||
1 = /dev/sr1 Second SCSI CD-ROM
|
||||
...
|
||||
|
||||
The prefix /dev/sr (instead of /dev/scd) has been deprecated.
|
||||
In the past the prefix /dev/scd (instead of /dev/sr) was used and even recommended.
|
||||
|
||||
12 char QIC-02 tape
|
||||
2 = /dev/ntpqic11 QIC-11, no rewind-on-close
|
||||
|
|
|
|||
|
|
@ -12,10 +12,3 @@ GPIO
|
|||
gpio-sim
|
||||
gpio-virtuser
|
||||
Obsolete APIs <obsolete>
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -189,10 +189,3 @@ A few hard-to-categorize and generally obsolete documents.
|
|||
|
||||
ldm
|
||||
unicode
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ as follows:
|
|||
8) now the system is bootable and additional installation tasks can be
|
||||
performed
|
||||
|
||||
The key role of initrd here is to re-use the configuration data during
|
||||
The key role of initrd here is to reuse the configuration data during
|
||||
normal system operation without requiring the use of a bloated "generic"
|
||||
kernel or re-compiling or re-linking the kernel.
|
||||
|
||||
|
|
|
|||
|
|
@ -11,10 +11,3 @@ information.
|
|||
|
||||
kdump
|
||||
vmcoreinfo
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ with /sys/kernel/config/crash_dm_crypt_keys for setup,
|
|||
cat /sys/kernel/config/crash_dm_crypt_keys/count
|
||||
2
|
||||
|
||||
# To support CPU/memory hot-plugging, re-use keys already saved to reserved
|
||||
# To support CPU/memory hot-plugging, reuse keys already saved to reserved
|
||||
# memory
|
||||
echo true > /sys/kernel/config/crash_dm_crypt_key/reuse
|
||||
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@ Kernel parameters
|
|||
may result in duplicate corrected error reports.
|
||||
nospcr -- disable console in ACPI SPCR table as
|
||||
default _serial_ console on ARM64
|
||||
spcr -- enable console in ACPI SPCR table as
|
||||
default _serial_ console on x86
|
||||
For ARM64, ONLY "acpi=off", "acpi=on", "acpi=force" or
|
||||
"acpi=nospcr" are available
|
||||
For RISCV64, ONLY "acpi=off", "acpi=on" or "acpi=force"
|
||||
|
|
@ -1370,6 +1372,13 @@ Kernel parameters
|
|||
For details see:
|
||||
Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst
|
||||
|
||||
dm_verity.keyring_unsealed=
|
||||
[KNL] When set to 1, leave the dm-verity keyring
|
||||
unsealed after initialization so userspace can
|
||||
provision keys. Once the keyring is restricted
|
||||
it becomes active and is searched during signature
|
||||
verification.
|
||||
|
||||
driver_async_probe= [KNL]
|
||||
List of driver names to be probed asynchronously. *
|
||||
matches with all driver names. If * is specified, the
|
||||
|
|
@ -1969,6 +1978,9 @@ Kernel parameters
|
|||
param "no_hash_pointers" is an alias for
|
||||
this mode.
|
||||
|
||||
For controlling hashing dynamically at runtime,
|
||||
use the "kernel.kptr_restrict" sysctl instead.
|
||||
|
||||
hashdist= [KNL,NUMA] Large hashes allocated during boot
|
||||
are distributed across NUMA nodes. Defaults on
|
||||
for 64-bit NUMA, off otherwise.
|
||||
|
|
@ -2675,6 +2687,15 @@ Kernel parameters
|
|||
1 - Bypass the IOMMU for DMA.
|
||||
unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
|
||||
|
||||
iommu.debug_pagealloc=
|
||||
[KNL,EARLY] When CONFIG_IOMMU_DEBUG_PAGEALLOC is set, this
|
||||
parameter enables the feature at boot time. By default, it
|
||||
is disabled and the system behaves the same way as a kernel
|
||||
built without CONFIG_IOMMU_DEBUG_PAGEALLOC.
|
||||
Format: { "0" | "1" }
|
||||
0 - Sanitizer disabled.
|
||||
1 - Sanitizer enabled, expect runtime overhead.
|
||||
|
||||
io7= [HW] IO7 for Marvel-based Alpha systems
|
||||
See comment before marvel_specify_io7 in
|
||||
arch/alpha/kernel/core_marvel.c.
|
||||
|
|
@ -2917,6 +2938,41 @@ Kernel parameters
|
|||
for Movable pages. "nn[KMGTPE]", "nn%", and "mirror"
|
||||
are exclusive, so you cannot specify multiple forms.
|
||||
|
||||
kfence.burst= [MM,KFENCE] The number of additional successive
|
||||
allocations to be attempted through KFENCE for each
|
||||
sample interval.
|
||||
Format: <unsigned integer>
|
||||
Default: 0
|
||||
|
||||
kfence.check_on_panic=
|
||||
[MM,KFENCE] Whether to check all KFENCE-managed objects'
|
||||
canaries on panic.
|
||||
Format: <bool>
|
||||
Default: false
|
||||
|
||||
kfence.deferrable=
|
||||
[MM,KFENCE] Whether to use a deferrable timer to trigger
|
||||
allocations. This avoids forcing CPU wake-ups if the
|
||||
system is idle, at the risk of a less predictable
|
||||
sample interval.
|
||||
Format: <bool>
|
||||
Default: CONFIG_KFENCE_DEFERRABLE
|
||||
|
||||
kfence.sample_interval=
|
||||
[MM,KFENCE] KFENCE's sample interval in milliseconds.
|
||||
Format: <unsigned integer>
|
||||
0 - Disable KFENCE.
|
||||
>0 - Enabled KFENCE with given sample interval.
|
||||
Default: CONFIG_KFENCE_SAMPLE_INTERVAL
|
||||
|
||||
kfence.skip_covered_thresh=
|
||||
[MM,KFENCE] If pool utilization reaches this threshold
|
||||
(pool usage%), KFENCE limits currently covered
|
||||
allocations of the same source from further filling
|
||||
up the pool.
|
||||
Format: <unsigned integer>
|
||||
Default: 75
|
||||
|
||||
kgdbdbgp= [KGDB,HW,EARLY] kgdb over EHCI usb debug port.
|
||||
Format: <Controller#>[,poll interval]
|
||||
The controller # is the number of the ehci usb debug
|
||||
|
|
@ -3044,6 +3100,26 @@ Kernel parameters
|
|||
|
||||
Default is Y (on).
|
||||
|
||||
kvm.enable_pmu=[KVM,X86]
|
||||
If enabled, KVM will virtualize PMU functionality based
|
||||
on the virtual CPU model defined by userspace. This
|
||||
can be overridden on a per-VM basis via
|
||||
KVM_CAP_PMU_CAPABILITY.
|
||||
|
||||
If disabled, KVM will not virtualize PMU functionality,
|
||||
e.g. MSRs, PMCs, PMIs, etc., even if userspace defines
|
||||
a virtual CPU model that contains PMU assets.
|
||||
|
||||
Note, KVM's vPMU support implicitly requires running
|
||||
with an in-kernel local APIC, e.g. to deliver PMIs to
|
||||
the guest. Running without an in-kernel local APIC is
|
||||
not supported, though KVM will allow such a combination
|
||||
(with severely degraded functionality).
|
||||
|
||||
See also enable_mediated_pmu.
|
||||
|
||||
Default is Y (on).
|
||||
|
||||
kvm.enable_virt_at_load=[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86]
|
||||
If enabled, KVM will enable virtualization in hardware
|
||||
when KVM is loaded, and disable virtualization when KVM
|
||||
|
|
@ -3090,6 +3166,35 @@ Kernel parameters
|
|||
If the value is 0 (the default), KVM will pick a period based
|
||||
on the ratio, such that a page is zapped after 1 hour on average.
|
||||
|
||||
kvm-{amd,intel}.enable_mediated_pmu=[KVM,AMD,INTEL]
|
||||
If enabled, KVM will provide a mediated virtual PMU,
|
||||
instead of the default perf-based virtual PMU (if
|
||||
kvm.enable_pmu is true and PMU is enumerated via the
|
||||
virtual CPU model).
|
||||
|
||||
With a perf-based vPMU, KVM operates as a user of perf,
|
||||
i.e. emulates guest PMU counters using perf events.
|
||||
KVM-created perf events are managed by perf as regular
|
||||
(guest-only) events, e.g. are scheduled in/out, contend
|
||||
for hardware resources, etc. Using a perf-based vPMU
|
||||
allows guest and host usage of the PMU to co-exist, but
|
||||
incurs non-trivial overhead and can result in silently
|
||||
dropped guest events (due to resource contention).
|
||||
|
||||
With a mediated vPMU, hardware PMU state is context
|
||||
switched around the world switch to/from the guest.
|
||||
KVM mediates which events the guest can utilize, but
|
||||
gives the guest direct access to all other PMU assets
|
||||
when possible (KVM may intercept some accesses if the
|
||||
virtual CPU model provides a subset of hardware PMU
|
||||
functionality). Using a mediated vPMU significantly
|
||||
reduces PMU virtualization overhead and eliminates lost
|
||||
guest events, but is mutually exclusive with using perf
|
||||
to profile KVM guests and adds latency to most VM-Exits
|
||||
(to context switch PMU state).
|
||||
|
||||
Default is N (off).
|
||||
|
||||
kvm-amd.nested= [KVM,AMD] Control nested virtualization feature in
|
||||
KVM/SVM. Default is 1 (enabled).
|
||||
|
||||
|
|
@ -3412,6 +3517,11 @@ Kernel parameters
|
|||
* [no]logdir: Enable or disable access to the general
|
||||
purpose log directory.
|
||||
|
||||
* max_sec=<sectors>: Set the transfer size limit, in
|
||||
number of 512-byte sectors, to the value specified in
|
||||
<sectors>. The value specified in <sectors> has to be
|
||||
a non-zero positive integer.
|
||||
|
||||
* max_sec_128: Set transfer size limit to 128 sectors.
|
||||
|
||||
* max_sec_1024: Set or clear transfer size limit to
|
||||
|
|
@ -3437,7 +3547,10 @@ Kernel parameters
|
|||
If there are multiple matching configurations changing
|
||||
the same attribute, the last one is used.
|
||||
|
||||
load_ramdisk= [RAM] [Deprecated]
|
||||
liveupdate= [KNL,EARLY]
|
||||
Format: <bool>
|
||||
Enable Live Update Orchestrator (LUO).
|
||||
Default: off.
|
||||
|
||||
lockd.nlm_grace_period=P [NFS] Assign grace period.
|
||||
Format: <integer>
|
||||
|
|
@ -3998,6 +4111,7 @@ Kernel parameters
|
|||
spectre_v2_user=off [X86]
|
||||
srbds=off [X86,INTEL]
|
||||
ssbd=force-off [ARM64]
|
||||
tsa=off [X86,AMD]
|
||||
tsx_async_abort=off [X86]
|
||||
vmscape=off [X86]
|
||||
|
||||
|
|
@ -4444,8 +4558,10 @@ Kernel parameters
|
|||
Note that this argument takes precedence over
|
||||
the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option.
|
||||
|
||||
noinitrd [RAM] Tells the kernel not to load any configured
|
||||
initial RAM disk.
|
||||
noinitrd [Deprecated,RAM] Tells the kernel not to load any configured
|
||||
initial RAM disk. Currently this parameter applies to
|
||||
initrd only, not to initramfs. But it applies to both
|
||||
in EFI mode.
|
||||
|
||||
nointremap [X86-64,Intel-IOMMU,EARLY] Do not enable interrupt
|
||||
remapping.
|
||||
|
|
@ -4545,7 +4661,7 @@ Kernel parameters
|
|||
nosmt [KNL,MIPS,PPC,EARLY] Disable symmetric multithreading (SMT).
|
||||
Equivalent to smt=1.
|
||||
|
||||
[KNL,X86,PPC,S390] Disable symmetric multithreading (SMT).
|
||||
[KNL,LOONGARCH,X86,PPC,S390] Disable symmetric multithreading (SMT).
|
||||
nosmt=force: Force disable SMT, cannot be undone
|
||||
via the sysfs control file.
|
||||
|
||||
|
|
@ -4753,6 +4869,21 @@ Kernel parameters
|
|||
panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump
|
||||
on a WARN().
|
||||
|
||||
panic_force_cpu=
|
||||
[KNL,SMP] Force panic handling to execute on a specific CPU.
|
||||
Format: <cpu number>
|
||||
Some platforms require panic handling to occur on a
|
||||
specific CPU for the crash kernel to function correctly.
|
||||
This can be due to firmware limitations, interrupt routing
|
||||
constraints, or platform-specific requirements where only
|
||||
a particular CPU can safely enter the crash kernel.
|
||||
When set, panic() will redirect execution to the specified
|
||||
CPU before proceeding with the normal panic and kexec flow.
|
||||
If the target CPU is offline or unavailable, panic proceeds
|
||||
on the current CPU.
|
||||
This option should only be used for systems with the above
|
||||
constraints as it might cause the panic operation to be less reliable.
|
||||
|
||||
panic_print= Bitmask for printing system info when panic happens.
|
||||
User can chose combination of the following bits:
|
||||
bit 0: print all tasks info
|
||||
|
|
@ -5402,8 +5533,6 @@ Kernel parameters
|
|||
Param: <number> - step/bucket size as a power of 2 for
|
||||
statistical time based profiling.
|
||||
|
||||
prompt_ramdisk= [RAM] [Deprecated]
|
||||
|
||||
prot_virt= [S390] enable hosting protected virtual machines
|
||||
isolated from the hypervisor (if hardware supports
|
||||
that). If enabled, the default kernel base address
|
||||
|
|
@ -5460,7 +5589,7 @@ Kernel parameters
|
|||
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
|
||||
See Documentation/admin-guide/blockdev/ramdisk.rst.
|
||||
|
||||
ramdisk_start= [RAM] RAM disk image start address
|
||||
ramdisk_start= [Deprecated,RAM] RAM disk image start address
|
||||
|
||||
random.trust_cpu=off
|
||||
[KNL,EARLY] Disable trusting the use of the CPU's
|
||||
|
|
@ -6249,13 +6378,6 @@ Kernel parameters
|
|||
dynamically) adjusted. This parameter is intended
|
||||
for use in testing.
|
||||
|
||||
rcupdate.rcu_task_ipi_delay= [KNL]
|
||||
Set time in jiffies during which RCU tasks will
|
||||
avoid sending IPIs, starting with the beginning
|
||||
of a given grace period. Setting a large
|
||||
number avoids disturbing real-time workloads,
|
||||
but lengthens grace periods.
|
||||
|
||||
rcupdate.rcu_task_lazy_lim= [KNL]
|
||||
Number of callbacks on a given CPU that will
|
||||
cancel laziness on that CPU. Use -1 to disable
|
||||
|
|
@ -6299,14 +6421,6 @@ Kernel parameters
|
|||
of zero will disable batching. Batching is
|
||||
always disabled for synchronize_rcu_tasks().
|
||||
|
||||
rcupdate.rcu_tasks_trace_lazy_ms= [KNL]
|
||||
Set timeout in milliseconds RCU Tasks
|
||||
Trace asynchronous callback batching for
|
||||
call_rcu_tasks_trace(). A negative value
|
||||
will take the default. A value of zero will
|
||||
disable batching. Batching is always disabled
|
||||
for synchronize_rcu_tasks_trace().
|
||||
|
||||
rcupdate.rcu_self_test= [KNL]
|
||||
Run the RCU early boot self tests
|
||||
|
||||
|
|
@ -6325,9 +6439,14 @@ Kernel parameters
|
|||
rdt= [HW,X86,RDT]
|
||||
Turn on/off individual RDT features. List is:
|
||||
cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp,
|
||||
mba, smba, bmec, abmc, sdciae.
|
||||
mba, smba, bmec, abmc, sdciae, energy[:guid],
|
||||
perf[:guid].
|
||||
E.g. to turn on cmt and turn off mba use:
|
||||
rdt=cmt,!mba
|
||||
To turn off all energy telemetry monitoring and ensure that
|
||||
perf telemetry monitoring associated with guid 0x12345
|
||||
is enabled use:
|
||||
rdt=!energy,perf:0x12345
|
||||
|
||||
reboot= [KNL]
|
||||
Format (x86 or x86_64):
|
||||
|
|
@ -6571,6 +6690,14 @@ Kernel parameters
|
|||
replacement properties are not found. See the Kconfig
|
||||
entry for RISCV_ISA_FALLBACK.
|
||||
|
||||
riscv_nousercfi=
|
||||
all Disable user CFI ABI to userspace even if cpu extension
|
||||
are available.
|
||||
bcfi Disable user backward CFI ABI to userspace even if
|
||||
the shadow stack extension is available.
|
||||
fcfi Disable user forward CFI ABI to userspace even if the
|
||||
landing pad extension is available.
|
||||
|
||||
ro [KNL] Mount root device read-only on boot
|
||||
|
||||
rodata= [KNL,EARLY]
|
||||
|
|
@ -6600,6 +6727,11 @@ Kernel parameters
|
|||
|
||||
rootflags= [KNL] Set root filesystem mount option string
|
||||
|
||||
rseq_slice_ext= [KNL] RSEQ based time slice extension
|
||||
Format: boolean
|
||||
Control enablement of RSEQ based time slice extension.
|
||||
Default is 'on'.
|
||||
|
||||
initramfs_options= [KNL]
|
||||
Specify mount options for for the initramfs mount.
|
||||
|
||||
|
|
@ -6934,12 +7066,12 @@ Kernel parameters
|
|||
|
||||
softlockup_panic=
|
||||
[KNL] Should the soft-lockup detector generate panics.
|
||||
Format: 0 | 1
|
||||
Format: <int>
|
||||
|
||||
A value of 1 instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup occurs. It is
|
||||
also controlled by the kernel.softlockup_panic sysctl
|
||||
and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
A value of non-zero instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup duration exceeds
|
||||
N thresholds. It is also controlled by the kernel.softlockup_panic
|
||||
sysctl and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
respective build-time switch to that functionality.
|
||||
|
||||
softlockup_all_cpu_backtrace=
|
||||
|
|
@ -7755,6 +7887,7 @@ Kernel parameters
|
|||
- "tee"
|
||||
- "caam"
|
||||
- "dcp"
|
||||
- "pkwm"
|
||||
If not specified then it defaults to iterating through
|
||||
the trust source list starting with TPM and assigns the
|
||||
first trust source as a backend which is initialized
|
||||
|
|
@ -8336,7 +8469,16 @@ Kernel parameters
|
|||
CONFIG_WQ_WATCHDOG. It sets the number times of the
|
||||
stall to trigger panic.
|
||||
|
||||
The default is 0, which disables the panic on stall.
|
||||
The default is set by CONFIG_BOOTPARAM_WQ_STALL_PANIC,
|
||||
which is 0 (disabled) if not configured.
|
||||
|
||||
workqueue.panic_on_stall_time=<uint>
|
||||
Panic when a workqueue stall has been continuous for
|
||||
the specified number of seconds. Unlike panic_on_stall
|
||||
which counts accumulated stall events, this triggers
|
||||
based on the duration of a single continuous stall.
|
||||
|
||||
The default is 0, which disables the time-based panic.
|
||||
|
||||
workqueue.cpu_intensive_thresh_us=
|
||||
Per-cpu work items which run for longer than this
|
||||
|
|
@ -8414,6 +8556,11 @@ Kernel parameters
|
|||
save/restore/migration must be enabled to handle larger
|
||||
domains.
|
||||
|
||||
xen_console_io [XEN,EARLY]
|
||||
Boolean option to enable/disable the usage of the Xen
|
||||
console_io hypercalls to read and write to the console.
|
||||
Mostly useful for debugging and development.
|
||||
|
||||
xen_emul_unplug= [HW,X86,XEN,EARLY]
|
||||
Unplug Xen emulated devices
|
||||
Format: [unplug0,][unplug1]
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ information.
|
|||
|
||||
Manual fan control on the other hand, is not exposed directly by the AWCC
|
||||
interface. Instead it let's us control a fan `boost` value. This `boost` value
|
||||
has the following aproximate behavior over the fan pwm:
|
||||
has the following approximate behavior over the fan pwm:
|
||||
|
||||
::
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ Laptop Drivers
|
|||
alienware-wmi
|
||||
asus-laptop
|
||||
disk-shock-protection
|
||||
laptop-mode
|
||||
lg-laptop
|
||||
samsung-galaxybook
|
||||
sony-laptop
|
||||
|
|
|
|||
|
|
@ -1,770 +0,0 @@
|
|||
===============================================
|
||||
How to conserve battery power using laptop-mode
|
||||
===============================================
|
||||
|
||||
Document Author: Bart Samwel (bart@samwel.tk)
|
||||
|
||||
Date created: January 2, 2004
|
||||
|
||||
Last modified: December 06, 2004
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Laptop mode is used to minimize the time that the hard disk needs to be spun up,
|
||||
to conserve battery power on laptops. It has been reported to cause significant
|
||||
power savings.
|
||||
|
||||
.. Contents
|
||||
|
||||
* Introduction
|
||||
* Installation
|
||||
* Caveats
|
||||
* The Details
|
||||
* Tips & Tricks
|
||||
* Control script
|
||||
* ACPI integration
|
||||
* Monitoring tool
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
To use laptop mode, you don't need to set any kernel configuration options
|
||||
or anything. Simply install all the files included in this document, and
|
||||
laptop mode will automatically be started when you're on battery. For
|
||||
your convenience, a tarball containing an installer can be downloaded at:
|
||||
|
||||
http://www.samwel.tk/laptop_mode/laptop_mode/
|
||||
|
||||
To configure laptop mode, you need to edit the configuration file, which is
|
||||
located in /etc/default/laptop-mode on Debian-based systems, or in
|
||||
/etc/sysconfig/laptop-mode on other systems.
|
||||
|
||||
Unfortunately, automatic enabling of laptop mode does not work for
|
||||
laptops that don't have ACPI. On those laptops, you need to start laptop
|
||||
mode manually. To start laptop mode, run "laptop_mode start", and to
|
||||
stop it, run "laptop_mode stop". (Note: The laptop mode tools package now
|
||||
has experimental support for APM, you might want to try that first.)
|
||||
|
||||
|
||||
Caveats
|
||||
-------
|
||||
|
||||
* The downside of laptop mode is that you have a chance of losing up to 10
|
||||
minutes of work. If you cannot afford this, don't use it! The supplied ACPI
|
||||
scripts automatically turn off laptop mode when the battery almost runs out,
|
||||
so that you won't lose any data at the end of your battery life.
|
||||
|
||||
* Most desktop hard drives have a very limited lifetime measured in spindown
|
||||
cycles, typically about 50.000 times (it's usually listed on the spec sheet).
|
||||
Check your drive's rating, and don't wear down your drive's lifetime if you
|
||||
don't need to.
|
||||
|
||||
* If you mount some of your ext3 filesystems with the -n option, then
|
||||
the control script will not be able to remount them correctly. You must set
|
||||
DO_REMOUNTS=0 in the control script, otherwise it will remount them with the
|
||||
wrong options -- or it will fail because it cannot write to /etc/mtab.
|
||||
|
||||
* If you have your filesystems listed as type "auto" in fstab, like I did, then
|
||||
the control script will not recognize them as filesystems that need remounting.
|
||||
You must list the filesystems with their true type instead.
|
||||
|
||||
* It has been reported that some versions of the mutt mail client use file access
|
||||
times to determine whether a folder contains new mail. If you use mutt and
|
||||
experience this, you must disable the noatime remounting by setting the option
|
||||
DO_REMOUNT_NOATIME to 0 in the configuration file.
|
||||
|
||||
|
||||
The Details
|
||||
-----------
|
||||
|
||||
Laptop mode is controlled by the knob /proc/sys/vm/laptop_mode. This knob is
|
||||
present for all kernels that have the laptop mode patch, regardless of any
|
||||
configuration options. When the knob is set, any physical disk I/O (that might
|
||||
have caused the hard disk to spin up) causes Linux to flush all dirty blocks. The
|
||||
result of this is that after a disk has spun down, it will not be spun up
|
||||
anymore to write dirty blocks, because those blocks had already been written
|
||||
immediately after the most recent read operation. The value of the laptop_mode
|
||||
knob determines the time between the occurrence of disk I/O and when the flush
|
||||
is triggered. A sensible value for the knob is 5 seconds. Setting the knob to
|
||||
0 disables laptop mode.
|
||||
|
||||
To increase the effectiveness of the laptop_mode strategy, the laptop_mode
|
||||
control script increases dirty_expire_centisecs and dirty_writeback_centisecs in
|
||||
/proc/sys/vm to about 10 minutes (by default), which means that pages that are
|
||||
dirtied are not forced to be written to disk as often. The control script also
|
||||
changes the dirty background ratio, so that background writeback of dirty pages
|
||||
is not done anymore. Combined with a higher commit value (also 10 minutes) for
|
||||
ext3 filesystem (also done automatically by the control script),
|
||||
this results in concentration of disk activity in a small time interval which
|
||||
occurs only once every 10 minutes, or whenever the disk is forced to spin up by
|
||||
a cache miss. The disk can then be spun down in the periods of inactivity.
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
The laptop mode configuration file is located in /etc/default/laptop-mode on
|
||||
Debian-based systems, or in /etc/sysconfig/laptop-mode on other systems. It
|
||||
contains the following options:
|
||||
|
||||
MAX_AGE:
|
||||
|
||||
Maximum time, in seconds, of hard drive spindown time that you are
|
||||
comfortable with. Worst case, it's possible that you could lose this
|
||||
amount of work if your battery fails while you're in laptop mode.
|
||||
|
||||
MINIMUM_BATTERY_MINUTES:
|
||||
|
||||
Automatically disable laptop mode if the remaining number of minutes of
|
||||
battery power is less than this value. Default is 10 minutes.
|
||||
|
||||
AC_HD/BATT_HD:
|
||||
|
||||
The idle timeout that should be set on your hard drive when laptop mode
|
||||
is active (BATT_HD) and when it is not active (AC_HD). The defaults are
|
||||
20 seconds (value 4) for BATT_HD and 2 hours (value 244) for AC_HD. The
|
||||
possible values are those listed in the manual page for "hdparm" for the
|
||||
"-S" option.
|
||||
|
||||
HD:
|
||||
|
||||
The devices for which the spindown timeout should be adjusted by laptop mode.
|
||||
Default is /dev/hda. If you specify multiple devices, separate them by a space.
|
||||
|
||||
READAHEAD:
|
||||
|
||||
Disk readahead, in 512-byte sectors, while laptop mode is active. A large
|
||||
readahead can prevent disk accesses for things like executable pages (which are
|
||||
loaded on demand while the application executes) and sequentially accessed data
|
||||
(MP3s).
|
||||
|
||||
DO_REMOUNTS:
|
||||
|
||||
The control script automatically remounts any mounted journaled filesystems
|
||||
with appropriate commit interval options. When this option is set to 0, this
|
||||
feature is disabled.
|
||||
|
||||
DO_REMOUNT_NOATIME:
|
||||
|
||||
When remounting, should the filesystems be remounted with the noatime option?
|
||||
Normally, this is set to "1" (enabled), but there may be programs that require
|
||||
access time recording.
|
||||
|
||||
DIRTY_RATIO:
|
||||
|
||||
The percentage of memory that is allowed to contain "dirty" or unsaved data
|
||||
before a writeback is forced, while laptop mode is active. Corresponds to
|
||||
the /proc/sys/vm/dirty_ratio sysctl.
|
||||
|
||||
DIRTY_BACKGROUND_RATIO:
|
||||
|
||||
The percentage of memory that is allowed to contain "dirty" or unsaved data
|
||||
after a forced writeback is done due to an exceeding of DIRTY_RATIO. Set
|
||||
this nice and low. This corresponds to the /proc/sys/vm/dirty_background_ratio
|
||||
sysctl.
|
||||
|
||||
Note that the behaviour of dirty_background_ratio is quite different
|
||||
when laptop mode is active and when it isn't. When laptop mode is inactive,
|
||||
dirty_background_ratio is the threshold percentage at which background writeouts
|
||||
start taking place. When laptop mode is active, however, background writeouts
|
||||
are disabled, and the dirty_background_ratio only determines how much writeback
|
||||
is done when dirty_ratio is reached.
|
||||
|
||||
DO_CPU:
|
||||
|
||||
Enable CPU frequency scaling when in laptop mode. (Requires CPUFreq to be setup.
|
||||
See Documentation/admin-guide/pm/cpufreq.rst for more info. Disabled by default.)
|
||||
|
||||
CPU_MAXFREQ:
|
||||
|
||||
When on battery, what is the maximum CPU speed that the system should use? Legal
|
||||
values are "slowest" for the slowest speed that your CPU is able to operate at,
|
||||
or a value listed in /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies.
|
||||
|
||||
|
||||
Tips & Tricks
|
||||
-------------
|
||||
|
||||
* Bartek Kania reports getting up to 50 minutes of extra battery life (on top
|
||||
of his regular 3 to 3.5 hours) using a spindown time of 5 seconds (BATT_HD=1).
|
||||
|
||||
* You can spin down the disk while playing MP3, by setting disk readahead
|
||||
to 8MB (READAHEAD=16384). Effectively, the disk will read a complete MP3 at
|
||||
once, and will then spin down while the MP3 is playing. (Thanks to Bartek
|
||||
Kania.)
|
||||
|
||||
* Drew Scott Daniels observed: "I don't know why, but when I decrease the number
|
||||
of colours that my display uses it consumes less battery power. I've seen
|
||||
this on powerbooks too. I hope that this is a piece of information that
|
||||
might be useful to the Laptop Mode patch or its users."
|
||||
|
||||
* In syslog.conf, you can prefix entries with a dash `-` to omit syncing the
|
||||
file after every logging. When you're using laptop-mode and your disk doesn't
|
||||
spin down, this is a likely culprit.
|
||||
|
||||
* Richard Atterer observed that laptop mode does not work well with noflushd
|
||||
(http://noflushd.sourceforge.net/), it seems that noflushd prevents laptop-mode
|
||||
from doing its thing.
|
||||
|
||||
* If you're worried about your data, you might want to consider using a USB
|
||||
memory stick or something like that as a "working area". (Be aware though
|
||||
that flash memory can only handle a limited number of writes, and overuse
|
||||
may wear out your memory stick pretty quickly. Do _not_ use journalling
|
||||
filesystems on flash memory sticks.)
|
||||
|
||||
|
||||
Configuration file for control and ACPI battery scripts
|
||||
-------------------------------------------------------
|
||||
|
||||
This allows the tunables to be changed for the scripts via an external
|
||||
configuration file
|
||||
|
||||
It should be installed as /etc/default/laptop-mode on Debian, and as
|
||||
/etc/sysconfig/laptop-mode on Red Hat, SUSE, Mandrake, and other work-alikes.
|
||||
|
||||
Config file::
|
||||
|
||||
# Maximum time, in seconds, of hard drive spindown time that you are
|
||||
# comfortable with. Worst case, it's possible that you could lose this
|
||||
# amount of work if your battery fails you while in laptop mode.
|
||||
#MAX_AGE=600
|
||||
|
||||
# Automatically disable laptop mode when the number of minutes of battery
|
||||
# that you have left goes below this threshold.
|
||||
MINIMUM_BATTERY_MINUTES=10
|
||||
|
||||
# Read-ahead, in 512-byte sectors. You can spin down the disk while playing MP3/OGG
|
||||
# by setting the disk readahead to 8MB (READAHEAD=16384). Effectively, the disk
|
||||
# will read a complete MP3 at once, and will then spin down while the MP3/OGG is
|
||||
# playing.
|
||||
#READAHEAD=4096
|
||||
|
||||
# Shall we remount journaled fs. with appropriate commit interval? (1=yes)
|
||||
#DO_REMOUNTS=1
|
||||
|
||||
# And shall we add the "noatime" option to that as well? (1=yes)
|
||||
#DO_REMOUNT_NOATIME=1
|
||||
|
||||
# Dirty synchronous ratio. At this percentage of dirty pages the process
|
||||
# which
|
||||
# calls write() does its own writeback
|
||||
#DIRTY_RATIO=40
|
||||
|
||||
#
|
||||
# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been
|
||||
# exceeded, the kernel will wake flusher threads which will then reduce the
|
||||
# amount of dirty memory to dirty_background_ratio. Set this nice and low,
|
||||
# so once some writeout has commenced, we do a lot of it.
|
||||
#
|
||||
#DIRTY_BACKGROUND_RATIO=5
|
||||
|
||||
# kernel default dirty buffer age
|
||||
#DEF_AGE=30
|
||||
#DEF_UPDATE=5
|
||||
#DEF_DIRTY_BACKGROUND_RATIO=10
|
||||
#DEF_DIRTY_RATIO=40
|
||||
#DEF_XFS_AGE_BUFFER=15
|
||||
#DEF_XFS_SYNC_INTERVAL=30
|
||||
#DEF_XFS_BUFD_INTERVAL=1
|
||||
|
||||
# This must be adjusted manually to the value of HZ in the running kernel
|
||||
# on 2.4, until the XFS people change their 2.4 external interfaces to work in
|
||||
# centisecs. This can be automated, but it's a work in progress that still
|
||||
# needs# some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for
|
||||
# external interfaces, and that is currently always set to 100. So you don't
|
||||
# need to change this on 2.6.
|
||||
#XFS_HZ=100
|
||||
|
||||
# Should the maximum CPU frequency be adjusted down while on battery?
|
||||
# Requires CPUFreq to be setup.
|
||||
# See Documentation/admin-guide/pm/cpufreq.rst for more info
|
||||
#DO_CPU=0
|
||||
|
||||
# When on battery what is the maximum CPU speed that the system should
|
||||
# use? Legal values are "slowest" for the slowest speed that your
|
||||
# CPU is able to operate at, or a value listed in:
|
||||
# /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
|
||||
# Only applicable if DO_CPU=1.
|
||||
#CPU_MAXFREQ=slowest
|
||||
|
||||
# Idle timeout for your hard drive (man hdparm for valid values, -S option)
|
||||
# Default is 2 hours on AC (AC_HD=244) and 20 seconds for battery (BATT_HD=4).
|
||||
#AC_HD=244
|
||||
#BATT_HD=4
|
||||
|
||||
# The drives for which to adjust the idle timeout. Separate them by a space,
|
||||
# e.g. HD="/dev/hda /dev/hdb".
|
||||
#HD="/dev/hda"
|
||||
|
||||
# Set the spindown timeout on a hard drive?
|
||||
#DO_HD=1
|
||||
|
||||
|
||||
Control script
|
||||
--------------
|
||||
|
||||
Please note that this control script works for the Linux 2.4 and 2.6 series (thanks
|
||||
to Kiko Piris).
|
||||
|
||||
Control script::
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# start or stop laptop_mode, best run by a power management daemon when
|
||||
# ac gets connected/disconnected from a laptop
|
||||
#
|
||||
# install as /sbin/laptop_mode
|
||||
#
|
||||
# Contributors to this script: Kiko Piris
|
||||
# Bart Samwel
|
||||
# Micha Feigin
|
||||
# Andrew Morton
|
||||
# Herve Eychenne
|
||||
# Dax Kelson
|
||||
#
|
||||
# Original Linux 2.4 version by: Jens Axboe
|
||||
|
||||
#############################################################################
|
||||
|
||||
# Source config
|
||||
if [ -f /etc/default/laptop-mode ] ; then
|
||||
# Debian
|
||||
. /etc/default/laptop-mode
|
||||
elif [ -f /etc/sysconfig/laptop-mode ] ; then
|
||||
# Others
|
||||
. /etc/sysconfig/laptop-mode
|
||||
fi
|
||||
|
||||
# Don't raise an error if the config file is incomplete
|
||||
# set defaults instead:
|
||||
|
||||
# Maximum time, in seconds, of hard drive spindown time that you are
|
||||
# comfortable with. Worst case, it's possible that you could lose this
|
||||
# amount of work if your battery fails you while in laptop mode.
|
||||
MAX_AGE=${MAX_AGE:-'600'}
|
||||
|
||||
# Read-ahead, in kilobytes
|
||||
READAHEAD=${READAHEAD:-'4096'}
|
||||
|
||||
# Shall we remount journaled fs. with appropriate commit interval? (1=yes)
|
||||
DO_REMOUNTS=${DO_REMOUNTS:-'1'}
|
||||
|
||||
# And shall we add the "noatime" option to that as well? (1=yes)
|
||||
DO_REMOUNT_NOATIME=${DO_REMOUNT_NOATIME:-'1'}
|
||||
|
||||
# Shall we adjust the idle timeout on a hard drive?
|
||||
DO_HD=${DO_HD:-'1'}
|
||||
|
||||
# Adjust idle timeout on which hard drive?
|
||||
HD="${HD:-'/dev/hda'}"
|
||||
|
||||
# spindown time for HD (hdparm -S values)
|
||||
AC_HD=${AC_HD:-'244'}
|
||||
BATT_HD=${BATT_HD:-'4'}
|
||||
|
||||
# Dirty synchronous ratio. At this percentage of dirty pages the process which
|
||||
# calls write() does its own writeback
|
||||
DIRTY_RATIO=${DIRTY_RATIO:-'40'}
|
||||
|
||||
# cpu frequency scaling
|
||||
# See Documentation/admin-guide/pm/cpufreq.rst for more info
|
||||
DO_CPU=${CPU_MANAGE:-'0'}
|
||||
CPU_MAXFREQ=${CPU_MAXFREQ:-'slowest'}
|
||||
|
||||
#
|
||||
# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been
|
||||
# exceeded, the kernel will wake flusher threads which will then reduce the
|
||||
# amount of dirty memory to dirty_background_ratio. Set this nice and low,
|
||||
# so once some writeout has commenced, we do a lot of it.
|
||||
#
|
||||
DIRTY_BACKGROUND_RATIO=${DIRTY_BACKGROUND_RATIO:-'5'}
|
||||
|
||||
# kernel default dirty buffer age
|
||||
DEF_AGE=${DEF_AGE:-'30'}
|
||||
DEF_UPDATE=${DEF_UPDATE:-'5'}
|
||||
DEF_DIRTY_BACKGROUND_RATIO=${DEF_DIRTY_BACKGROUND_RATIO:-'10'}
|
||||
DEF_DIRTY_RATIO=${DEF_DIRTY_RATIO:-'40'}
|
||||
DEF_XFS_AGE_BUFFER=${DEF_XFS_AGE_BUFFER:-'15'}
|
||||
DEF_XFS_SYNC_INTERVAL=${DEF_XFS_SYNC_INTERVAL:-'30'}
|
||||
DEF_XFS_BUFD_INTERVAL=${DEF_XFS_BUFD_INTERVAL:-'1'}
|
||||
|
||||
# This must be adjusted manually to the value of HZ in the running kernel
|
||||
# on 2.4, until the XFS people change their 2.4 external interfaces to work in
|
||||
# centisecs. This can be automated, but it's a work in progress that still needs
|
||||
# some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for external
|
||||
# interfaces, and that is currently always set to 100. So you don't need to
|
||||
# change this on 2.6.
|
||||
XFS_HZ=${XFS_HZ:-'100'}
|
||||
|
||||
#############################################################################
|
||||
|
||||
KLEVEL="$(uname -r |
|
||||
{
|
||||
IFS='.' read a b c
|
||||
echo $a.$b
|
||||
}
|
||||
)"
|
||||
case "$KLEVEL" in
|
||||
"2.4"|"2.6")
|
||||
;;
|
||||
*)
|
||||
echo "Unhandled kernel version: $KLEVEL ('uname -r' = '$(uname -r)')" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -e /proc/sys/vm/laptop_mode ] ; then
|
||||
echo "Kernel is not patched with laptop_mode patch." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -w /proc/sys/vm/laptop_mode ] ; then
|
||||
echo "You do not have enough privileges to enable laptop_mode." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove an option (the first parameter) of the form option=<number> from
|
||||
# a mount options string (the rest of the parameters).
|
||||
parse_mount_opts () {
|
||||
OPT="$1"
|
||||
shift
|
||||
echo ",$*," | sed \
|
||||
-e 's/,'"$OPT"'=[0-9]*,/,/g' \
|
||||
-e 's/,,*/,/g' \
|
||||
-e 's/^,//' \
|
||||
-e 's/,$//'
|
||||
}
|
||||
|
||||
# Remove an option (the first parameter) without any arguments from
|
||||
# a mount option string (the rest of the parameters).
|
||||
parse_nonumber_mount_opts () {
|
||||
OPT="$1"
|
||||
shift
|
||||
echo ",$*," | sed \
|
||||
-e 's/,'"$OPT"',/,/g' \
|
||||
-e 's/,,*/,/g' \
|
||||
-e 's/^,//' \
|
||||
-e 's/,$//'
|
||||
}
|
||||
|
||||
# Find out the state of a yes/no option (e.g. "atime"/"noatime") in
|
||||
# fstab for a given filesystem, and use this state to replace the
|
||||
# value of the option in another mount options string. The device
|
||||
# is the first argument, the option name the second, and the default
|
||||
# value the third. The remainder is the mount options string.
|
||||
#
|
||||
# Example:
|
||||
# parse_yesno_opts_wfstab /dev/hda1 atime atime defaults,noatime
|
||||
#
|
||||
# If fstab contains, say, "rw" for this filesystem, then the result
|
||||
# will be "defaults,atime".
|
||||
parse_yesno_opts_wfstab () {
|
||||
L_DEV="$1"
|
||||
OPT="$2"
|
||||
DEF_OPT="$3"
|
||||
shift 3
|
||||
L_OPTS="$*"
|
||||
PARSEDOPTS1="$(parse_nonumber_mount_opts $OPT $L_OPTS)"
|
||||
PARSEDOPTS1="$(parse_nonumber_mount_opts no$OPT $PARSEDOPTS1)"
|
||||
# Watch for a default atime in fstab
|
||||
FSTAB_OPTS="$(awk '$1 == "'$L_DEV'" { print $4 }' /etc/fstab)"
|
||||
if echo "$FSTAB_OPTS" | grep "$OPT" > /dev/null ; then
|
||||
# option specified in fstab: extract the value and use it
|
||||
if echo "$FSTAB_OPTS" | grep "no$OPT" > /dev/null ; then
|
||||
echo "$PARSEDOPTS1,no$OPT"
|
||||
else
|
||||
# no$OPT not found -- so we must have $OPT.
|
||||
echo "$PARSEDOPTS1,$OPT"
|
||||
fi
|
||||
else
|
||||
# option not specified in fstab -- choose the default.
|
||||
echo "$PARSEDOPTS1,$DEF_OPT"
|
||||
fi
|
||||
}
|
||||
|
||||
# Find out the state of a numbered option (e.g. "commit=NNN") in
|
||||
# fstab for a given filesystem, and use this state to replace the
|
||||
# value of the option in another mount options string. The device
|
||||
# is the first argument, and the option name the second. The
|
||||
# remainder is the mount options string in which the replacement
|
||||
# must be done.
|
||||
#
|
||||
# Example:
|
||||
# parse_mount_opts_wfstab /dev/hda1 commit defaults,commit=7
|
||||
#
|
||||
# If fstab contains, say, "commit=3,rw" for this filesystem, then the
|
||||
# result will be "rw,commit=3".
|
||||
parse_mount_opts_wfstab () {
|
||||
L_DEV="$1"
|
||||
OPT="$2"
|
||||
shift 2
|
||||
L_OPTS="$*"
|
||||
PARSEDOPTS1="$(parse_mount_opts $OPT $L_OPTS)"
|
||||
# Watch for a default commit in fstab
|
||||
FSTAB_OPTS="$(awk '$1 == "'$L_DEV'" { print $4 }' /etc/fstab)"
|
||||
if echo "$FSTAB_OPTS" | grep "$OPT=" > /dev/null ; then
|
||||
# option specified in fstab: extract the value, and use it
|
||||
echo -n "$PARSEDOPTS1,$OPT="
|
||||
echo ",$FSTAB_OPTS," | sed \
|
||||
-e 's/.*,'"$OPT"'=//' \
|
||||
-e 's/,.*//'
|
||||
else
|
||||
# option not specified in fstab: set it to 0
|
||||
echo "$PARSEDOPTS1,$OPT=0"
|
||||
fi
|
||||
}
|
||||
|
||||
deduce_fstype () {
|
||||
MP="$1"
|
||||
# My root filesystem unfortunately has
|
||||
# type "unknown" in /etc/mtab. If we encounter
|
||||
# "unknown", we try to get the type from fstab.
|
||||
cat /etc/fstab |
|
||||
grep -v '^#' |
|
||||
while read FSTAB_DEV FSTAB_MP FSTAB_FST FSTAB_OPTS FSTAB_DUMP FSTAB_DUMP ; do
|
||||
if [ "$FSTAB_MP" = "$MP" ]; then
|
||||
echo $FSTAB_FST
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if [ $DO_REMOUNT_NOATIME -eq 1 ] ; then
|
||||
NOATIME_OPT=",noatime"
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
AGE=$((100*$MAX_AGE))
|
||||
XFS_AGE=$(($XFS_HZ*$MAX_AGE))
|
||||
echo -n "Starting laptop_mode"
|
||||
|
||||
if [ -d /proc/sys/vm/pagebuf ] ; then
|
||||
# (For 2.4 and early 2.6.)
|
||||
# This only needs to be set, not reset -- it is only used when
|
||||
# laptop mode is enabled.
|
||||
echo $XFS_AGE > /proc/sys/vm/pagebuf/lm_flush_age
|
||||
echo $XFS_AGE > /proc/sys/fs/xfs/lm_sync_interval
|
||||
elif [ -f /proc/sys/fs/xfs/lm_age_buffer ] ; then
|
||||
# (A couple of early 2.6 laptop mode patches had these.)
|
||||
# The same goes for these.
|
||||
echo $XFS_AGE > /proc/sys/fs/xfs/lm_age_buffer
|
||||
echo $XFS_AGE > /proc/sys/fs/xfs/lm_sync_interval
|
||||
elif [ -f /proc/sys/fs/xfs/age_buffer ] ; then
|
||||
# (2.6.6)
|
||||
# But not for these -- they are also used in normal
|
||||
# operation.
|
||||
echo $XFS_AGE > /proc/sys/fs/xfs/age_buffer
|
||||
echo $XFS_AGE > /proc/sys/fs/xfs/sync_interval
|
||||
elif [ -f /proc/sys/fs/xfs/age_buffer_centisecs ] ; then
|
||||
# (2.6.7 upwards)
|
||||
# And not for these either. These are in centisecs,
|
||||
# not USER_HZ, so we have to use $AGE, not $XFS_AGE.
|
||||
echo $AGE > /proc/sys/fs/xfs/age_buffer_centisecs
|
||||
echo $AGE > /proc/sys/fs/xfs/xfssyncd_centisecs
|
||||
echo 3000 > /proc/sys/fs/xfs/xfsbufd_centisecs
|
||||
fi
|
||||
|
||||
case "$KLEVEL" in
|
||||
"2.4")
|
||||
echo 1 > /proc/sys/vm/laptop_mode
|
||||
echo "30 500 0 0 $AGE $AGE 60 20 0" > /proc/sys/vm/bdflush
|
||||
;;
|
||||
"2.6")
|
||||
echo 5 > /proc/sys/vm/laptop_mode
|
||||
echo "$AGE" > /proc/sys/vm/dirty_writeback_centisecs
|
||||
echo "$AGE" > /proc/sys/vm/dirty_expire_centisecs
|
||||
echo "$DIRTY_RATIO" > /proc/sys/vm/dirty_ratio
|
||||
echo "$DIRTY_BACKGROUND_RATIO" > /proc/sys/vm/dirty_background_ratio
|
||||
;;
|
||||
esac
|
||||
if [ $DO_REMOUNTS -eq 1 ]; then
|
||||
cat /etc/mtab | while read DEV MP FST OPTS DUMP PASS ; do
|
||||
PARSEDOPTS="$(parse_mount_opts "$OPTS")"
|
||||
if [ "$FST" = 'unknown' ]; then
|
||||
FST=$(deduce_fstype $MP)
|
||||
fi
|
||||
case "$FST" in
|
||||
"ext3")
|
||||
PARSEDOPTS="$(parse_mount_opts commit "$OPTS")"
|
||||
mount $DEV -t $FST $MP -o remount,$PARSEDOPTS,commit=$MAX_AGE$NOATIME_OPT
|
||||
;;
|
||||
"xfs")
|
||||
mount $DEV -t $FST $MP -o remount,$OPTS$NOATIME_OPT
|
||||
;;
|
||||
esac
|
||||
if [ -b $DEV ] ; then
|
||||
blockdev --setra $(($READAHEAD * 2)) $DEV
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ $DO_HD -eq 1 ] ; then
|
||||
for THISHD in $HD ; do
|
||||
/sbin/hdparm -S $BATT_HD $THISHD > /dev/null 2>&1
|
||||
/sbin/hdparm -B 1 $THISHD > /dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
if [ $DO_CPU -eq 1 -a -e /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq ]; then
|
||||
if [ $CPU_MAXFREQ = 'slowest' ]; then
|
||||
CPU_MAXFREQ=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
|
||||
fi
|
||||
echo $CPU_MAXFREQ > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
||||
fi
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
U_AGE=$((100*$DEF_UPDATE))
|
||||
B_AGE=$((100*$DEF_AGE))
|
||||
echo -n "Stopping laptop_mode"
|
||||
echo 0 > /proc/sys/vm/laptop_mode
|
||||
if [ -f /proc/sys/fs/xfs/age_buffer -a ! -f /proc/sys/fs/xfs/lm_age_buffer ] ; then
|
||||
# These need to be restored, if there are no lm_*.
|
||||
echo $(($XFS_HZ*$DEF_XFS_AGE_BUFFER)) > /proc/sys/fs/xfs/age_buffer
|
||||
echo $(($XFS_HZ*$DEF_XFS_SYNC_INTERVAL)) > /proc/sys/fs/xfs/sync_interval
|
||||
elif [ -f /proc/sys/fs/xfs/age_buffer_centisecs ] ; then
|
||||
# These need to be restored as well.
|
||||
echo $((100*$DEF_XFS_AGE_BUFFER)) > /proc/sys/fs/xfs/age_buffer_centisecs
|
||||
echo $((100*$DEF_XFS_SYNC_INTERVAL)) > /proc/sys/fs/xfs/xfssyncd_centisecs
|
||||
echo $((100*$DEF_XFS_BUFD_INTERVAL)) > /proc/sys/fs/xfs/xfsbufd_centisecs
|
||||
fi
|
||||
case "$KLEVEL" in
|
||||
"2.4")
|
||||
echo "30 500 0 0 $U_AGE $B_AGE 60 20 0" > /proc/sys/vm/bdflush
|
||||
;;
|
||||
"2.6")
|
||||
echo "$U_AGE" > /proc/sys/vm/dirty_writeback_centisecs
|
||||
echo "$B_AGE" > /proc/sys/vm/dirty_expire_centisecs
|
||||
echo "$DEF_DIRTY_RATIO" > /proc/sys/vm/dirty_ratio
|
||||
echo "$DEF_DIRTY_BACKGROUND_RATIO" > /proc/sys/vm/dirty_background_ratio
|
||||
;;
|
||||
esac
|
||||
if [ $DO_REMOUNTS -eq 1 ] ; then
|
||||
cat /etc/mtab | while read DEV MP FST OPTS DUMP PASS ; do
|
||||
# Reset commit and atime options to defaults.
|
||||
if [ "$FST" = 'unknown' ]; then
|
||||
FST=$(deduce_fstype $MP)
|
||||
fi
|
||||
case "$FST" in
|
||||
"ext3")
|
||||
PARSEDOPTS="$(parse_mount_opts_wfstab $DEV commit $OPTS)"
|
||||
PARSEDOPTS="$(parse_yesno_opts_wfstab $DEV atime atime $PARSEDOPTS)"
|
||||
mount $DEV -t $FST $MP -o remount,$PARSEDOPTS
|
||||
;;
|
||||
"xfs")
|
||||
PARSEDOPTS="$(parse_yesno_opts_wfstab $DEV atime atime $OPTS)"
|
||||
mount $DEV -t $FST $MP -o remount,$PARSEDOPTS
|
||||
;;
|
||||
esac
|
||||
if [ -b $DEV ] ; then
|
||||
blockdev --setra 256 $DEV
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ $DO_HD -eq 1 ] ; then
|
||||
for THISHD in $HD ; do
|
||||
/sbin/hdparm -S $AC_HD $THISHD > /dev/null 2>&1
|
||||
/sbin/hdparm -B 255 $THISHD > /dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
if [ $DO_CPU -eq 1 -a -e /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq ]; then
|
||||
echo `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
|
||||
fi
|
||||
echo "."
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}" 2>&1
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
ACPI integration
|
||||
----------------
|
||||
|
||||
Dax Kelson submitted this so that the ACPI acpid daemon will
|
||||
kick off the laptop_mode script and run hdparm. The part that
|
||||
automatically disables laptop mode when the battery is low was
|
||||
written by Jan Topinski.
|
||||
|
||||
/etc/acpi/events/ac_adapter::
|
||||
|
||||
event=ac_adapter
|
||||
action=/etc/acpi/actions/ac.sh %e
|
||||
|
||||
/etc/acpi/events/battery::
|
||||
|
||||
event=battery.*
|
||||
action=/etc/acpi/actions/battery.sh %e
|
||||
|
||||
/etc/acpi/actions/ac.sh::
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# ac on/offline event handler
|
||||
|
||||
status=`awk '/^state: / { print $2 }' /proc/acpi/ac_adapter/$2/state`
|
||||
|
||||
case $status in
|
||||
"on-line")
|
||||
/sbin/laptop_mode stop
|
||||
exit 0
|
||||
;;
|
||||
"off-line")
|
||||
/sbin/laptop_mode start
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
/etc/acpi/actions/battery.sh::
|
||||
|
||||
#! /bin/bash
|
||||
|
||||
# Automatically disable laptop mode when the battery almost runs out.
|
||||
|
||||
BATT_INFO=/proc/acpi/battery/$2/state
|
||||
|
||||
if [[ -f /proc/sys/vm/laptop_mode ]]
|
||||
then
|
||||
LM=`cat /proc/sys/vm/laptop_mode`
|
||||
if [[ $LM -gt 0 ]]
|
||||
then
|
||||
if [[ -f $BATT_INFO ]]
|
||||
then
|
||||
# Source the config file only now that we know we need
|
||||
if [ -f /etc/default/laptop-mode ] ; then
|
||||
# Debian
|
||||
. /etc/default/laptop-mode
|
||||
elif [ -f /etc/sysconfig/laptop-mode ] ; then
|
||||
# Others
|
||||
. /etc/sysconfig/laptop-mode
|
||||
fi
|
||||
MINIMUM_BATTERY_MINUTES=${MINIMUM_BATTERY_MINUTES:-'10'}
|
||||
|
||||
ACTION="`cat $BATT_INFO | grep charging | cut -c 26-`"
|
||||
if [[ ACTION -eq "discharging" ]]
|
||||
then
|
||||
PRESENT_RATE=`cat $BATT_INFO | grep "present rate:" | sed "s/.* \([0-9][0-9]* \).*/\1/" `
|
||||
REMAINING=`cat $BATT_INFO | grep "remaining capacity:" | sed "s/.* \([0-9][0-9]* \).*/\1/" `
|
||||
fi
|
||||
if (($REMAINING * 60 / $PRESENT_RATE < $MINIMUM_BATTERY_MINUTES))
|
||||
then
|
||||
/sbin/laptop_mode stop
|
||||
fi
|
||||
else
|
||||
logger -p daemon.warning "You are using laptop mode and your battery interface $BATT_INFO is missing. This may lead to loss of data when the battery runs out. Check kernel ACPI support and /proc/acpi/battery folder, and edit /etc/acpi/battery.sh to set BATT_INFO to the correct path."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Monitoring tool
|
||||
---------------
|
||||
|
||||
Bartek Kania submitted this, it can be used to measure how much time your disk
|
||||
spends spun up/down. See tools/laptop/dslm/dslm.c
|
||||
|
|
@ -54,6 +54,7 @@ detailed description):
|
|||
- Setting keyboard language
|
||||
- WWAN Antenna type
|
||||
- Auxmac
|
||||
- Hardware damage detection capability
|
||||
|
||||
A compatibility table by model and feature is maintained on the web
|
||||
site, http://ibm-acpi.sf.net/. I appreciate any success or failure
|
||||
|
|
@ -1576,6 +1577,42 @@ percentage level, above which charging will stop.
|
|||
The exact semantics of the attributes may be found in
|
||||
Documentation/ABI/testing/sysfs-class-power.
|
||||
|
||||
Hardware damage detection capability
|
||||
------------------------------------
|
||||
|
||||
sysfs attributes: hwdd_status, hwdd_detail
|
||||
|
||||
Thinkpads are adding the ability to detect and report hardware damage.
|
||||
Add new sysfs interface to identify the damaged device status.
|
||||
Initial support is available for the USB-C replaceable connector.
|
||||
|
||||
The command to check device damaged status is::
|
||||
|
||||
cat /sys/devices/platform/thinkpad_acpi/hwdd_status
|
||||
|
||||
This value displays status of device damaged.
|
||||
|
||||
- 0 = Not Damaged
|
||||
- 1 = Damaged
|
||||
|
||||
The command to check location of damaged device is::
|
||||
|
||||
cat /sys/devices/platform/thinkpad_acpi/hwdd_detail
|
||||
|
||||
This value displays location of damaged device having 1 line per damaged "item".
|
||||
For example:
|
||||
|
||||
if no damage is detected:
|
||||
|
||||
- No damage detected
|
||||
|
||||
if damage detected:
|
||||
|
||||
- TYPE-C: Base, Right side, Center port
|
||||
|
||||
The property is read-only. If feature is not supported then sysfs
|
||||
attribute is not created.
|
||||
|
||||
Multiple Commands, Module Parameters
|
||||
------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ RSSS Shuts down the HDD protection interface for a few seconds,
|
|||
==== =====================================================================
|
||||
|
||||
Note:
|
||||
The presence of Solid State Drives (SSD) can make this driver to fail loading,
|
||||
The presence of Solid State Drives (SSD) can cause this driver to fail loading,
|
||||
given the fact that such drives have no movable parts, and thus, not requiring
|
||||
any "protection" as well as failing during the evaluation of the _STA method
|
||||
found under this device.
|
||||
|
|
|
|||
|
|
@ -31,9 +31,11 @@ Global (PCI card) parameters
|
|||
|
||||
| 0 - No module present
|
||||
| 1 - FPDL3
|
||||
| 2 - GMSL (one serializer, two daisy chained deserializers)
|
||||
| 3 - GMSL (one serializer, two deserializers)
|
||||
| 4 - GMSL (two deserializers with two daisy chain outputs)
|
||||
| 2 - GMSL3 (one serializer, two daisy chained deserializers)
|
||||
| 3 - GMSL3 (one serializer, two deserializers)
|
||||
| 4 - GMSL3 (two deserializers with two daisy chain outputs)
|
||||
| 6 - GMSL1
|
||||
| 8 - GMSL3 coax
|
||||
|
||||
**module_version** (R):
|
||||
Module version number. Zero in case of a missing module.
|
||||
|
|
@ -42,7 +44,8 @@ Global (PCI card) parameters
|
|||
Firmware type.
|
||||
|
||||
| 1 - FPDL3
|
||||
| 2 - GMSL
|
||||
| 2 - GMSL3
|
||||
| 3 - GMSL1
|
||||
|
||||
**fw_version** (R):
|
||||
Firmware version number.
|
||||
|
|
|
|||
|
|
@ -79,6 +79,43 @@ 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_LRU_SORT will be disabled.
|
||||
|
||||
active_mem_bp
|
||||
-------------
|
||||
|
||||
Desired active to [in]active memory ratio in bp (1/10,000).
|
||||
|
||||
While keeping the caps that set by other quotas, DAMON_LRU_SORT automatically
|
||||
increases and decreases the effective level of the quota aiming the LRU
|
||||
[de]prioritizations of the hot and cold memory resulting in this active to
|
||||
[in]active memory ratio. Value zero means disabling this auto-tuning feature.
|
||||
|
||||
Disabled by default.
|
||||
|
||||
Auto-tune monitoring intervals
|
||||
------------------------------
|
||||
|
||||
If this parameter is set as ``Y``, DAMON_LRU_SORT automatically tunes DAMON's
|
||||
sampling and aggregation intervals. The auto-tuning aims to capture meaningful
|
||||
amount of access events in each DAMON-snapshot, while keeping the sampling
|
||||
interval 5 milliseconds in minimum, and 10 seconds in maximum. Setting this as
|
||||
``N`` disables the auto-tuning.
|
||||
|
||||
Disabled by default.
|
||||
|
||||
filter_young_pages
|
||||
------------------
|
||||
|
||||
Filter [non-]young pages accordingly for LRU [de]prioritizations.
|
||||
|
||||
If this is set, check page level access (youngness) once again before each
|
||||
LRU [de]prioritization operation. LRU prioritization operation is skipped
|
||||
if the page has not accessed since the last check (not young). LRU
|
||||
deprioritization operation is skipped if the page has accessed since the
|
||||
last check (young). The feature is enabled or disabled if this parameter is
|
||||
set as ``Y`` or ``N``, respectively.
|
||||
|
||||
Disabled by default.
|
||||
|
||||
hot_thres_access_freq
|
||||
---------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ Detailed Usages
|
|||
|
||||
DAMON provides below interfaces for different users.
|
||||
|
||||
- *Special-purpose DAMON modules.*
|
||||
:ref:`This <damon_modules_special_purpose>` is for people who are building,
|
||||
distributing, and/or administrating the kernel with special-purpose DAMON
|
||||
usages. Using this, users can use DAMON's major features for the given
|
||||
purposes in build, boot, or runtime in simple ways.
|
||||
- *DAMON user space tool.*
|
||||
`This <https://github.com/damonitor/damo>`_ is for privileged people such as
|
||||
system administrators who want a just-working human-friendly interface.
|
||||
|
|
@ -87,7 +92,7 @@ comma (",").
|
|||
│ │ │ │ │ │ │ │ 0/type,matching,allow,memcg_path,addr_start,addr_end,target_idx,min,max
|
||||
│ │ │ │ │ │ │ :ref:`dests <damon_sysfs_dests>`/nr_dests
|
||||
│ │ │ │ │ │ │ │ 0/id,weight
|
||||
│ │ │ │ │ │ │ :ref:`stats <sysfs_schemes_stats>`/nr_tried,sz_tried,nr_applied,sz_applied,sz_ops_filter_passed,qt_exceeds
|
||||
│ │ │ │ │ │ │ :ref:`stats <sysfs_schemes_stats>`/nr_tried,sz_tried,nr_applied,sz_applied,sz_ops_filter_passed,qt_exceeds,nr_snapshots,max_nr_snapshots
|
||||
│ │ │ │ │ │ │ :ref:`tried_regions <sysfs_schemes_tried_regions>`/total_bytes
|
||||
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age,sz_filter_passed
|
||||
│ │ │ │ │ │ │ │ ...
|
||||
|
|
@ -543,10 +548,14 @@ online analysis or tuning of the schemes. Refer to :ref:`design doc
|
|||
|
||||
The statistics can be retrieved by reading the files under ``stats`` directory
|
||||
(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``,
|
||||
``sz_ops_filter_passed``, and ``qt_exceeds``), respectively. The files are not
|
||||
updated in real time, so you should ask DAMON sysfs interface to update the
|
||||
content of the files for the stats by writing a special keyword,
|
||||
``update_schemes_stats`` to the relevant ``kdamonds/<N>/state`` file.
|
||||
``sz_ops_filter_passed``, ``qt_exceeds``, ``nr_snapshots`` and
|
||||
``max_nr_snapshots``), respectively.
|
||||
|
||||
The files are not updated in real time by default. Users should ask DAMON
|
||||
sysfs interface to periodically update those using ``refresh_ms``, or do a one
|
||||
time update by writing a special keyword, ``update_schemes_stats`` to the
|
||||
relevant ``kdamonds/<N>/state`` file. Refer to :ref:`kdamond directory
|
||||
<sysfs_kdamond>` for more details.
|
||||
|
||||
.. _sysfs_schemes_tried_regions:
|
||||
|
||||
|
|
|
|||
|
|
@ -603,17 +603,18 @@ ZONE_MOVABLE, especially when fine-tuning zone ratios:
|
|||
memory for metadata and page tables in the direct map; having a lot of offline
|
||||
memory blocks is not a typical case, though.
|
||||
|
||||
- Memory ballooning without balloon compaction is incompatible with
|
||||
ZONE_MOVABLE. Only some implementations, such as virtio-balloon and
|
||||
pseries CMM, fully support balloon compaction.
|
||||
- Memory ballooning without support for balloon memory migration is incompatible
|
||||
with ZONE_MOVABLE. Only some implementations, such as virtio-balloon and
|
||||
pseries CMM, fully support balloon memory migration.
|
||||
|
||||
Further, the CONFIG_BALLOON_COMPACTION kernel configuration option might be
|
||||
Further, the CONFIG_BALLOON_MIGRATION kernel configuration option might be
|
||||
disabled. In that case, balloon inflation will only perform unmovable
|
||||
allocations and silently create a zone imbalance, usually triggered by
|
||||
inflation requests from the hypervisor.
|
||||
|
||||
- Gigantic pages are unmovable, resulting in user space consuming a
|
||||
lot of unmovable memory.
|
||||
- Gigantic pages are unmovable when an architecture does not support
|
||||
huge page migration and/or the ``movable_gigantic_pages`` sysctl is false.
|
||||
See Documentation/admin-guide/sysctl/vm.rst for more info on this sysctl.
|
||||
|
||||
- Huge pages are unmovable when an architectures does not support huge
|
||||
page migration, resulting in a similar issue as with gigantic pages.
|
||||
|
|
@ -672,6 +673,15 @@ block might fail:
|
|||
- Concurrent activity that operates on the same physical memory area, such as
|
||||
allocating gigantic pages, can result in temporary offlining failures.
|
||||
|
||||
- When an admin sets the ``movable_gigantic_pages`` sysctl to true, gigantic
|
||||
pages are allowed in ZONE_MOVABLE. This only allows migratable gigantic
|
||||
pages to be allocated; however, if there are no eligible destination gigantic
|
||||
pages at offline, the offlining operation will fail.
|
||||
|
||||
Users leveraging ``movable_gigantic_pages`` should weigh the value of
|
||||
ZONE_MOVABLE for increasing the reliability of gigantic page allocation
|
||||
against the potential loss of hot-unplug reliability.
|
||||
|
||||
- Out of memory when dissolving huge pages, especially when HugeTLB Vmemmap
|
||||
Optimization (HVO) is enabled.
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ and it's also much more restricted in the latter case:
|
|||
|
||||
In the no-MMU case:
|
||||
|
||||
- If one exists, the kernel will re-use an existing mapping to the
|
||||
- If one exists, the kernel will reuse an existing mapping to the
|
||||
same segment of the same file if that has compatible permissions,
|
||||
even if this was created by another process.
|
||||
|
||||
|
|
|
|||
|
|
@ -28,10 +28,12 @@ trusted userspace bits.
|
|||
|
||||
This facility uses X.509 ITU-T standard certificates to encode the public keys
|
||||
involved. The signatures are not themselves encoded in any industrial standard
|
||||
type. The built-in facility currently only supports the RSA & NIST P-384 ECDSA
|
||||
public key signing standard (though it is pluggable and permits others to be
|
||||
used). The possible hash algorithms that can be used are SHA-2 and SHA-3 of
|
||||
sizes 256, 384, and 512 (the algorithm is selected by data in the signature).
|
||||
type. The built-in facility currently only supports the RSA, NIST P-384 ECDSA
|
||||
and NIST FIPS-204 ML-DSA public key signing standards (though it is pluggable
|
||||
and permits others to be used). For RSA and ECDSA, the possible hash
|
||||
algorithms that can be used are SHA-2 and SHA-3 of sizes 256, 384, and 512 (the
|
||||
algorithm is selected by data in the signature); ML-DSA does its own hashing,
|
||||
but is allowed to be used with a SHA512 hash for signed attributes.
|
||||
|
||||
|
||||
==========================
|
||||
|
|
@ -146,9 +148,9 @@ into vmlinux) using parameters in the::
|
|||
|
||||
file (which is also generated if it does not already exist).
|
||||
|
||||
One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``) and ECDSA
|
||||
(``MODULE_SIG_KEY_TYPE_ECDSA``) to generate either RSA 4k or NIST
|
||||
P-384 keypair.
|
||||
One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``), ECDSA
|
||||
(``MODULE_SIG_KEY_TYPE_ECDSA``) and ML-DSA (``MODULE_SIG_KEY_TYPE_MLDSA_*``) to
|
||||
generate an RSA 4k, a NIST P-384 keypair or an ML-DSA 44, 65 or 87 keypair.
|
||||
|
||||
It is strongly recommended that you provide your own x509.genkey file.
|
||||
|
||||
|
|
|
|||
|
|
@ -439,7 +439,7 @@ This governor exposes only one tunable:
|
|||
``rate_limit_us``
|
||||
Minimum time (in microseconds) that has to pass between two consecutive
|
||||
runs of governor computations (default: 1.5 times the scaling driver's
|
||||
transition latency or the maximum 2ms).
|
||||
transition latency or 1ms if the driver does not provide a latency value).
|
||||
|
||||
The purpose of this tunable is to reduce the scheduler context overhead
|
||||
of the governor which might be excessive without it.
|
||||
|
|
|
|||
|
|
@ -260,6 +260,17 @@ mode to off when the CPU is in any one of the available idle states. This may
|
|||
help performance of a sibling CPU at the expense of a slightly higher wakeup
|
||||
latency for the idle CPU.
|
||||
|
||||
The ``table`` argument allows customization of idle state latency and target
|
||||
residency. The syntax is a comma-separated list of ``name:latency:residency``
|
||||
entries, where ``name`` is the idle state name, ``latency`` is the exit latency
|
||||
in microseconds, and ``residency`` is the target residency in microseconds. It
|
||||
is not necessary to specify all idle states; only those to be customized. For
|
||||
example, ``C1:1:3,C6:50:100`` sets the exit latency and target residency for
|
||||
C1 and C6 to 1/3 and 50/100 microseconds, respectively. Remaining idle states
|
||||
keep their default values. The driver verifies that deeper idle states have
|
||||
higher latency and target residency than shallower ones. Also, target
|
||||
residency cannot be smaller than exit latency. If any of these conditions is
|
||||
not met, the driver ignores the entire ``table`` parameter.
|
||||
|
||||
.. _intel-idle-core-and-package-idle-states:
|
||||
|
||||
|
|
|
|||
|
|
@ -591,6 +591,9 @@ if leaking kernel pointer values to unprivileged users is a concern.
|
|||
When ``kptr_restrict`` is set to 2, kernel pointers printed using
|
||||
%pK will be replaced with 0s regardless of privileges.
|
||||
|
||||
For disabling these security restrictions early at boot time (and once
|
||||
for all), use the ``hash_pointers`` boot parameter instead.
|
||||
|
||||
softlockup_sys_info & hardlockup_sys_info
|
||||
=========================================
|
||||
A comma separated list of extra system information to be dumped when
|
||||
|
|
@ -1235,12 +1238,6 @@ that support this feature.
|
|||
== ===========================================================================
|
||||
|
||||
|
||||
real-root-dev
|
||||
=============
|
||||
|
||||
See Documentation/admin-guide/initrd.rst.
|
||||
|
||||
|
||||
reboot-cmd (SPARC only)
|
||||
=======================
|
||||
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ Table : Subdirectories in /proc/sys/net
|
|||
bridge Bridging rose X.25 PLP layer
|
||||
core General parameter tipc TIPC
|
||||
ethernet Ethernet protocol unix Unix domain sockets
|
||||
ipv4 IP version 4 x25 X.25 protocol
|
||||
ipv6 IP version 6
|
||||
ipv4 IP version 4 vsock VSOCK sockets
|
||||
ipv6 IP version 6 x25 X.25 protocol
|
||||
========= =================== = ========== ===================
|
||||
|
||||
1. /proc/sys/net/core - Network core options
|
||||
|
|
@ -303,24 +303,33 @@ netdev_max_backlog
|
|||
Maximum number of packets, queued on the INPUT side, when the interface
|
||||
receives packets faster than kernel can process them.
|
||||
|
||||
qdisc_max_burst
|
||||
------------------
|
||||
|
||||
Maximum number of packets that can be temporarily stored before
|
||||
reaching qdisc.
|
||||
|
||||
Default: 1000
|
||||
|
||||
netdev_rss_key
|
||||
--------------
|
||||
|
||||
RSS (Receive Side Scaling) enabled drivers use a 40 bytes host key that is
|
||||
randomly generated.
|
||||
RSS (Receive Side Scaling) enabled drivers use a host key that
|
||||
is randomly generated.
|
||||
Some user space might need to gather its content even if drivers do not
|
||||
provide ethtool -x support yet.
|
||||
|
||||
::
|
||||
|
||||
myhost:~# cat /proc/sys/net/core/netdev_rss_key
|
||||
84:50:f4:00:a8:15:d1:a7:e9:7f:1d:60:35:c7:47:25:42:97:74:ca:56:bb:b6:a1:d8: ... (52 bytes total)
|
||||
84:50:f4:00:a8:15:d1:a7:e9:7f:1d:60:35:c7:47:25:42:97:74:ca:56:bb:b6:a1:d8: ... (256 bytes total)
|
||||
|
||||
File contains nul bytes if no driver ever called netdev_rss_key_fill() function.
|
||||
File contains all nul bytes if no driver ever called netdev_rss_key_fill()
|
||||
function.
|
||||
|
||||
Note:
|
||||
/proc/sys/net/core/netdev_rss_key contains 52 bytes of key,
|
||||
but most drivers only use 40 bytes of it.
|
||||
/proc/sys/net/core/netdev_rss_key contains 256 bytes of key,
|
||||
but many drivers only use 40 or 52 bytes of it.
|
||||
|
||||
::
|
||||
|
||||
|
|
@ -542,3 +551,51 @@ originally may have been issued in the correct sequential order.
|
|||
If named_timeout is nonzero, failed topology updates will be placed on a defer
|
||||
queue until another event arrives that clears the error, or until the timeout
|
||||
expires. Value is in milliseconds.
|
||||
|
||||
6. /proc/sys/net/vsock - VSOCK sockets
|
||||
--------------------------------------
|
||||
|
||||
VSOCK sockets (AF_VSOCK) provide communication between virtual machines and
|
||||
their hosts. The behavior of VSOCK sockets in a network namespace is determined
|
||||
by the namespace's mode (``global`` or ``local``), which controls how CIDs
|
||||
(Context IDs) are allocated and how sockets interact across namespaces.
|
||||
|
||||
ns_mode
|
||||
-------
|
||||
|
||||
Read-only. Reports the current namespace's mode, set at namespace creation
|
||||
and immutable thereafter.
|
||||
|
||||
Values:
|
||||
|
||||
- ``global`` - the namespace shares system-wide CID allocation and
|
||||
its sockets can reach any VM or socket in any global namespace.
|
||||
Sockets in this namespace cannot reach sockets in local
|
||||
namespaces.
|
||||
- ``local`` - the namespace has private CID allocation and its
|
||||
sockets can only connect to VMs or sockets within the same
|
||||
namespace.
|
||||
|
||||
The init_net mode is always ``global``.
|
||||
|
||||
child_ns_mode
|
||||
-------------
|
||||
|
||||
Controls what mode newly created child namespaces will inherit. At namespace
|
||||
creation, ``ns_mode`` is inherited from the parent's ``child_ns_mode``. The
|
||||
initial value matches the namespace's own ``ns_mode``.
|
||||
|
||||
Values:
|
||||
|
||||
- ``global`` - child namespaces will share system-wide CID allocation
|
||||
and their sockets will be able to reach any VM or socket in any
|
||||
global namespace.
|
||||
- ``local`` - child namespaces will have private CID allocation and
|
||||
their sockets will only be able to connect within their own
|
||||
namespace.
|
||||
|
||||
Changing ``child_ns_mode`` only affects namespaces created after the change;
|
||||
it does not modify the current namespace or any existing children.
|
||||
|
||||
A namespace with ``ns_mode`` set to ``local`` cannot change
|
||||
``child_ns_mode`` to ``global`` (returns ``-EPERM``).
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ Currently, these files are in /proc/sys/vm:
|
|||
- extfrag_threshold
|
||||
- highmem_is_dirtyable
|
||||
- hugetlb_shm_group
|
||||
- laptop_mode
|
||||
- legacy_va_layout
|
||||
- lowmem_reserve_ratio
|
||||
- max_map_count
|
||||
|
|
@ -54,6 +53,7 @@ Currently, these files are in /proc/sys/vm:
|
|||
- mmap_min_addr
|
||||
- mmap_rnd_bits
|
||||
- mmap_rnd_compat_bits
|
||||
- movable_gigantic_pages
|
||||
- nr_hugepages
|
||||
- nr_hugepages_mempolicy
|
||||
- nr_overcommit_hugepages
|
||||
|
|
@ -231,6 +231,8 @@ eventually gets pushed out to disk. This tunable is used to define when dirty
|
|||
inode is old enough to be eligible for writeback by the kernel flusher threads.
|
||||
And, it is also used as the interval to wakeup dirtytime_writeback thread.
|
||||
|
||||
Setting this to zero disables periodic dirtytime writeback.
|
||||
|
||||
|
||||
dirty_writeback_centisecs
|
||||
=========================
|
||||
|
|
@ -363,13 +365,6 @@ hugetlb_shm_group contains group id that is allowed to create SysV
|
|||
shared memory segment using hugetlb page.
|
||||
|
||||
|
||||
laptop_mode
|
||||
===========
|
||||
|
||||
laptop_mode is a knob that controls "laptop mode". All the things that are
|
||||
controlled by this knob are discussed in Documentation/admin-guide/laptops/laptop-mode.rst.
|
||||
|
||||
|
||||
legacy_va_layout
|
||||
================
|
||||
|
||||
|
|
@ -494,6 +489,10 @@ memory allocations.
|
|||
|
||||
The default value depends on CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT.
|
||||
|
||||
When CONFIG_MEM_ALLOC_PROFILING_DEBUG=y, this control is read-only to avoid
|
||||
warnings produced by allocations made while profiling is disabled and freed
|
||||
when it's enabled.
|
||||
|
||||
|
||||
memory_failure_early_kill
|
||||
=========================
|
||||
|
|
@ -624,6 +623,33 @@ This value can be changed after boot using the
|
|||
/proc/sys/vm/mmap_rnd_compat_bits tunable
|
||||
|
||||
|
||||
movable_gigantic_pages
|
||||
======================
|
||||
|
||||
This parameter controls whether gigantic pages may be allocated from
|
||||
ZONE_MOVABLE. If set to non-zero, gigantic pages can be allocated
|
||||
from ZONE_MOVABLE. ZONE_MOVABLE memory may be created via the kernel
|
||||
boot parameter `kernelcore` or via memory hotplug as discussed in
|
||||
Documentation/admin-guide/mm/memory-hotplug.rst.
|
||||
|
||||
Support may depend on specific architecture.
|
||||
|
||||
Note that using ZONE_MOVABLE gigantic pages make memory hotremove unreliable.
|
||||
|
||||
Memory hot-remove operations will block indefinitely until the admin reserves
|
||||
sufficient gigantic pages to service migration requests associated with the
|
||||
memory offlining process. As HugeTLB gigantic page reservation is a manual
|
||||
process (via `nodeN/hugepages/.../nr_hugepages` interfaces) this may not be
|
||||
obvious when just attempting to offline a block of memory.
|
||||
|
||||
Additionally, as multiple gigantic pages may be reserved on a single block,
|
||||
it may appear that gigantic pages are available for migration when in reality
|
||||
they are in the process of being removed. For example if `memoryN` contains
|
||||
two gigantic pages, one reserved and one allocated, and an admin attempts to
|
||||
offline that block, this operations may hang indefinitely unless another
|
||||
reserved gigantic page is available on another block `memoryM`.
|
||||
|
||||
|
||||
nr_hugepages
|
||||
============
|
||||
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ is built-in to the kernel image, there is no need to do anything.
|
|||
|
||||
The driver will create one virtual ethernet interface per Thunderbolt
|
||||
port which are named like ``thunderbolt0`` and so on. From this point
|
||||
you can either use standard userspace tools like ``ifconfig`` to
|
||||
you can either use standard userspace tools like ``ip`` to
|
||||
configure the interface or let your GUI handle it automatically.
|
||||
|
||||
Forcing power
|
||||
|
|
|
|||
|
|
@ -215,6 +215,14 @@ When mounting an XFS filesystem, the following options are accepted.
|
|||
inconsistent namespace presentation during or after a
|
||||
failover event.
|
||||
|
||||
errortag=tagname
|
||||
When specified, enables the error inject tag named "tagname" with the
|
||||
default frequency. Can be specified multiple times to enable multiple
|
||||
errortags. Specifying this option on remount will reset the error tag
|
||||
to the default value if it was set to any other value before.
|
||||
This option is only supported when CONFIG_XFS_DEBUG is enabled, and
|
||||
will not be reflected in /proc/self/mounts.
|
||||
|
||||
Deprecation of V4 Format
|
||||
========================
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,3 @@ ARC architecture
|
|||
arc
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -75,11 +75,3 @@ SoC-specific documents
|
|||
sti/overview
|
||||
|
||||
vfp/release-notes
|
||||
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ CPPI/QMSS Low Level Driver document (docs/CPPI_QMSS_LLD_SDS.pdf) at
|
|||
|
||||
git://git.ti.com/keystone-rtos/qmss-lld.git
|
||||
|
||||
k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin firmware supports upto 48 accumulator
|
||||
k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin firmware supports up to 48 accumulator
|
||||
channels. This firmware is available under ti-keystone folder of
|
||||
firmware.git at
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ specified through DTS. Following are the DTS used:
|
|||
|
||||
The device tree documentation for the keystone machines are located at
|
||||
|
||||
Documentation/devicetree/bindings/arm/keystone/keystone.txt
|
||||
Documentation/devicetree/bindings/arm/ti/ti,keystone.yaml
|
||||
|
||||
Document Author
|
||||
---------------
|
||||
|
|
|
|||
|
|
@ -306,9 +306,9 @@ that looks like this: Name(KEY0, "value0"). An ACPI device driver would
|
|||
then retrieve the value of the property by evaluating the KEY0 object.
|
||||
However, using Name() this way has multiple problems: (1) ACPI limits
|
||||
names ("KEY0") to four characters unlike DT; (2) there is no industry
|
||||
wide registry that maintains a list of names, minimizing re-use; (3)
|
||||
wide registry that maintains a list of names, minimizing reuse; (3)
|
||||
there is also no registry for the definition of property values ("value0"),
|
||||
again making re-use difficult; and (4) how does one maintain backward
|
||||
again making reuse difficult; and (4) how does one maintain backward
|
||||
compatibility as new hardware comes out? The _DSD method was created
|
||||
to solve precisely these sorts of problems; Linux drivers should ALWAYS
|
||||
use the _DSD method for device properties and nothing else.
|
||||
|
|
|
|||
|
|
@ -154,10 +154,14 @@ mode will return to host userspace with an ``exit_reason`` of
|
|||
``KVM_EXIT_FAIL_ENTRY`` and will remain non-runnable until successfully
|
||||
re-initialised by a subsequent ``KVM_ARM_VCPU_INIT`` operation.
|
||||
|
||||
NOHZ FULL
|
||||
---------
|
||||
SCHEDULER DOMAIN ISOLATION
|
||||
--------------------------
|
||||
|
||||
To avoid perturbing an adaptive-ticks CPU (specified using
|
||||
``nohz_full=``) when a 32-bit task is forcefully migrated, these CPUs
|
||||
To avoid perturbing a boot-defined domain isolated CPU (specified using
|
||||
``isolcpus=[domain]``) when a 32-bit task is forcefully migrated, these CPUs
|
||||
are treated as 64-bit-only when support for asymmetric 32-bit systems
|
||||
is enabled.
|
||||
|
||||
However as opposed to boot-defined domain isolation, runtime-defined domain
|
||||
isolation using cpuset isolated partition is not advised on asymmetric
|
||||
32-bit systems and will result in undefined behaviour.
|
||||
|
|
|
|||
|
|
@ -556,6 +556,18 @@ Before jumping into the kernel, the following conditions must be met:
|
|||
|
||||
- MDCR_EL3.TPM (bit 6) must be initialized to 0b0
|
||||
|
||||
For CPUs with support for 64-byte loads and stores without status (FEAT_LS64):
|
||||
|
||||
- If the kernel is entered at EL1 and EL2 is present:
|
||||
|
||||
- HCRX_EL2.EnALS (bit 1) must be initialised to 0b1.
|
||||
|
||||
For CPUs with support for 64-byte stores with status (FEAT_LS64_V):
|
||||
|
||||
- If the kernel is entered at EL1 and EL2 is present:
|
||||
|
||||
- HCRX_EL2.EnASR (bit 2) must be initialised to 0b1.
|
||||
|
||||
The requirements described above for CPU mode, caches, MMUs, architected
|
||||
timers, coherency and system registers apply to all CPUs. All CPUs must
|
||||
enter the kernel in the same exception level. Where the values documented
|
||||
|
|
|
|||
|
|
@ -444,6 +444,13 @@ HWCAP3_MTE_STORE_ONLY
|
|||
HWCAP3_LSFE
|
||||
Functionality implied by ID_AA64ISAR3_EL1.LSFE == 0b0001
|
||||
|
||||
HWCAP3_LS64
|
||||
Functionality implied by ID_AA64ISAR1_EL1.LS64 == 0b0001. Note that
|
||||
the function of instruction ld64b/st64b requires support by CPU, system
|
||||
and target (device) memory location and HWCAP3_LS64 implies the support
|
||||
of CPU. User should only use ld64b/st64b on supported target (device)
|
||||
memory location, otherwise fallback to the non-atomic alternatives.
|
||||
|
||||
|
||||
4. Unused AT_HWCAP bits
|
||||
-----------------------
|
||||
|
|
|
|||
|
|
@ -33,10 +33,3 @@ ARM64 Architecture
|
|||
tagged-pointers
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ stable kernels.
|
|||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | GIC-700 | #2941627 | ARM64_ERRATUM_2941627 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | SI L1 | #4311569 | ARM64_ERRATUM_4311569 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_845719 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
|
|
|
|||
|
|
@ -13,10 +13,3 @@ LoongArch Architecture
|
|||
irq-chip-model
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -11,10 +11,3 @@ m68k Architecture
|
|||
buddha-driver
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -12,10 +12,3 @@ MIPS-specific Documentation
|
|||
ingenic-tcu
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -11,10 +11,3 @@ OpenRISC Architecture
|
|||
todo
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -11,10 +11,3 @@ PA-RISC Architecture
|
|||
registers
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -40,10 +40,3 @@ powerpc
|
|||
vpa-dtl
|
||||
|
||||
features
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
||||
|
|
|
|||
|
|
@ -300,6 +300,49 @@ H_HTM supports setup, configuration, control and dumping of Hardware Trace
|
|||
Macro (HTM) function and its data. HTM buffer stores tracing data for functions
|
||||
like core instruction, core LLAT and nest.
|
||||
|
||||
**H_PKS_GEN_KEY**
|
||||
|
||||
| Input: authorization, objectlabel, objectlabellen, policy, out, outlen
|
||||
| Out: *Hypervisor Generated Key, or None when the wrapping key policy is set*
|
||||
| Return Value: *H_SUCCESS, H_Function, H_State, H_R_State, H_Parameter, H_P2,
|
||||
H_P3, H_P4, H_P5, H_P6, H_Authority, H_Nomem, H_Busy, H_Resource,
|
||||
H_Aborted*
|
||||
|
||||
H_PKS_GEN_KEY is used to have the hypervisor generate a new random key.
|
||||
This key is stored as an object in the Power LPAR Platform KeyStore with
|
||||
the provided object label. With the wrapping key policy set the key is only
|
||||
visible to the hypervisor, while the key's label would still be visible to
|
||||
the user. Generation of wrapping keys is supported only for a key size of
|
||||
32 bytes.
|
||||
|
||||
**H_PKS_WRAP_OBJECT**
|
||||
|
||||
| Input: authorization, wrapkeylabel, wrapkeylabellen, objectwrapflags, in,
|
||||
| inlen, out, outlen, continue-token
|
||||
| Out: *continue-token, byte size of wrapped object, wrapped object*
|
||||
| Return Value: *H_SUCCESS, H_Function, H_State, H_R_State, H_Parameter, H_P2,
|
||||
H_P3, H_P4, H_P5, H_P6, H_P7, H_P8, H_P9, H_Authority, H_Invalid_Key,
|
||||
H_NOT_FOUND, H_Busy, H_LongBusy, H_Aborted*
|
||||
|
||||
H_PKS_WRAP_OBJECT is used to wrap an object using a wrapping key stored in the
|
||||
Power LPAR Platform KeyStore and return the wrapped object to the caller. The
|
||||
caller provides a label to a wrapping key with the 'wrapping key' policy set,
|
||||
which must have been previously created with H_PKS_GEN_KEY. The provided object
|
||||
is then encrypted with the wrapping key and additional metadata and the result
|
||||
is returned to the caller.
|
||||
|
||||
|
||||
**H_PKS_UNWRAP_OBJECT**
|
||||
|
||||
| Input: authorization, objectwrapflags, in, inlen, out, outlen, continue-token
|
||||
| Out: *continue-token, byte size of unwrapped object, unwrapped object*
|
||||
| Return Value: *H_SUCCESS, H_Function, H_State, H_R_State, H_Parameter, H_P2,
|
||||
H_P3, H_P4, H_P5, H_P6, H_P7, H_Authority, H_Unsupported, H_Bad_Data,
|
||||
H_NOT_FOUND, H_Invalid_Key, H_Busy, H_LongBusy, H_Aborted*
|
||||
|
||||
H_PKS_UNWRAP_OBJECT is used to unwrap an object that was previously warapped with
|
||||
H_PKS_WRAP_OBJECT.
|
||||
|
||||
References
|
||||
==========
|
||||
.. [1] "Power Architecture Platform Reference"
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ The following keys are defined:
|
|||
programs (it may still be executed in userspace via a
|
||||
kernel-controlled mechanism such as the vDSO).
|
||||
|
||||
* :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_0`: A bitmask containing the extensions
|
||||
* :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_0`: A bitmask containing extensions
|
||||
that are compatible with the :c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_IMA`:
|
||||
base system behavior.
|
||||
|
||||
|
|
@ -387,3 +387,7 @@ The following keys are defined:
|
|||
|
||||
* :c:macro:`RISCV_HWPROBE_KEY_ZICBOP_BLOCK_SIZE`: An unsigned int which
|
||||
represents the size of the Zicbop block in bytes.
|
||||
|
||||
* :c:macro:`RISCV_HWPROBE_KEY_IMA_EXT_1`: A bitmask containing additional
|
||||
extensions that are compatible with the
|
||||
:c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_IMA`: base system behavior.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue