summaryrefslogtreecommitdiffstats
path: root/Documentation/ABI/testing/sysfs-class-rc
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2026-09-14 22:12:34 -1000
committerTejun Heo <tj@kernel.org>2026-09-15 06:57:20 -1000
commita9e3760b0838299649c0d57cca44daaf40ba3c33 (patch)
tree95807ff0e511c05602ef34808cfc660303309057 /Documentation/ABI/testing/sysfs-class-rc
downloadlinux-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-rc137
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.