diff options
| author | Tejun Heo <tj@kernel.org> | 2026-09-14 22:12:34 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-09-15 06:57:20 -1000 |
| commit | a9e3760b0838299649c0d57cca44daaf40ba3c33 (patch) | |
| tree | 95807ff0e511c05602ef34808cfc660303309057 /Documentation/ABI/testing/sysfs-class-rc | |
| download | linux-stable-a9e3760b0838299649c0d57cca44daaf40ba3c33.tar.gz linux-stable-a9e3760b0838299649c0d57cca44daaf40ba3c33.zip | |
sched_ext: Maintain an online cid mask in the scheduler arenagrafted
Schedulers on the default cid mapping treat [0, nr_online_cids) as the
online set and restart on hotplug. Schedulers that install their own mapping
with scx_bpf_cid_override() have no way to learn which cids are online: the
count no longer identifies members and the CPU-form cpumask is unusable from
cid programs. This is an obvious hole in the cid API.
Add scx_bpf_online_cmask(), a kernel-maintained cmask in the scheduler's
arena, allocated alongside the per-CPU scratch masks and populated after the
cid mapping is finalized and before ops.init(), for child schedulers too.
The pointer stays valid through ops.exit() with no reference to take. It is
the arena offset as a void pointer, the same form struct_ops arena arguments
arrive in. The verifier types the void return as a scalar for the program's
arena cast.
The mask follows the SCX hotplug notifications: seeded from cpu_active_mask
and updated before ops.cid_online/offline() runs, so it lags cpu_online_mask
only inside a hotplug transition. Updates walk the scheduler list under the
lock that also serializes unlinking. Reads are live, not atomic snapshots.
Root initialization excludes hotplug.
v2: Reworded the getter kerneldoc (Andrea Righi).
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'Documentation/ABI/testing/sysfs-class-rc')
| -rw-r--r-- | Documentation/ABI/testing/sysfs-class-rc | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-rc b/Documentation/ABI/testing/sysfs-class-rc new file mode 100644 index 000000000..84e46d70d --- /dev/null +++ b/Documentation/ABI/testing/sysfs-class-rc @@ -0,0 +1,137 @@ +What: /sys/class/rc/ +Date: Apr 2010 +KernelVersion: 2.6.35 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + The rc/ class sub-directory belongs to the Remote Controller + core and provides a sysfs interface for configuring infrared + remote controller receivers. + +What: /sys/class/rc/rc<N>/ +Date: Apr 2010 +KernelVersion: 2.6.35 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + A /sys/class/rc/rcN directory is created for each remote + control receiver device where N is the number of the receiver. + +What: /sys/class/rc/rc<N>/protocols +Date: Jun 2010 +KernelVersion: 2.6.36 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Reading this file returns a list of available protocols, + something like:: + + "rc5 [rc6] nec jvc [sony]" + + Enabled protocols are shown in [] brackets. + + Writing "+proto" will add a protocol to the list of enabled + protocols. + + Writing "-proto" will remove a protocol from the list of enabled + protocols. + + Writing "proto" will enable only "proto". + + Writing "none" will disable all protocols. + + Write fails with EINVAL if an invalid protocol combination or + unknown protocol name is used. + +What: /sys/class/rc/rc<N>/filter +Date: Jan 2014 +KernelVersion: 3.15 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Sets the scancode filter expected value. + + Use in combination with /sys/class/rc/rcN/filter_mask to set the + expected value of the bits set in the filter mask. + If the hardware supports it then scancodes which do not match + the filter will be ignored. Otherwise the write will fail with + an error. + + This value may be reset to 0 if the current protocol is altered. + +What: /sys/class/rc/rc<N>/filter_mask +Date: Jan 2014 +KernelVersion: 3.15 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Sets the scancode filter mask of bits to compare. + Use in combination with /sys/class/rc/rcN/filter to set the bits + of the scancode which should be compared against the expected + value. A value of 0 disables the filter to allow all valid + scancodes to be processed. + + If the hardware supports it then scancodes which do not match + the filter will be ignored. Otherwise the write will fail with + an error. + + This value may be reset to 0 if the current protocol is altered. + +What: /sys/class/rc/rc<N>/wakeup_protocols +Date: Feb 2017 +KernelVersion: 4.11 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Reading this file returns a list of available protocols to use + for the wakeup filter, something like:: + + "rc-5 nec nec-x rc-6-0 rc-6-6a-24 [rc-6-6a-32] rc-6-mce" + + Note that protocol variants are listed, so "nec", "sony", + "rc-5", "rc-6" have their different bit length encodings + listed if available. + + The enabled wakeup protocol is shown in [] brackets. + + Only one protocol can be selected at a time. + + Writing "proto" will use "proto" for wakeup events. + + Writing "none" will disable wakeup. + + Write fails with EINVAL if an invalid protocol combination or + unknown protocol name is used, or if wakeup is not supported by + the hardware. + +What: /sys/class/rc/rc<N>/wakeup_filter +Date: Jan 2014 +KernelVersion: 3.15 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Sets the scancode wakeup filter expected value. + + Use in combination with /sys/class/rc/rcN/wakeup_filter_mask to + set the expected value of the bits set in the wakeup filter mask + to trigger a system wake event. + + If the hardware supports it and wakeup_filter_mask is not 0 then + scancodes which match the filter will wake the system from e.g. + suspend to RAM or power off. + + Otherwise the write will fail with an error. + + This value may be reset to 0 if the wakeup protocol is altered. + +What: /sys/class/rc/rc<N>/wakeup_filter_mask +Date: Jan 2014 +KernelVersion: 3.15 +Contact: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> +Description: + Sets the scancode wakeup filter mask of bits to compare. + + Use in combination with /sys/class/rc/rcN/wakeup_filter to set + the bits of the scancode which should be compared against the + expected value to trigger a system wake event. + + If the hardware supports it and wakeup_filter_mask is not 0 then + scancodes which match the filter will wake the system from e.g. + suspend to RAM or power off. + + Otherwise the write will fail with an error. + + This value may be reset to 0 if the wakeup protocol is altered. |
