[PATCH sched-devel 5/7] cpuisol: Documentation updates
Documented sysfs interface as suggested by Andrew Morton. Added general documentation that describes how to configure and use CPU isolation features. Signed-off-by: Max Krasnyansky <[EMAIL PROTECTED]> --- Documentation/ABI/testing/sysfs-devices-system-cpu | 41 +++ Documentation/cpu-isolation.txt| 113 2 files changed, 154 insertions(+), 0 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu new file mode 100644 index 000..32dde5b --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -0,0 +1,41 @@ +What: /sys/devices/system/cpu/... +Date: Feb. 2008 +KernelVersion: 2.6.24 +Contact:LKML +Description: + +The /sys/devices/system/cpu tree provides information about all cpu's +known to the running kernel. + +Following files are created for each cpu. 'N' is the cpu number. + +/sys/devices/system/cpu/cpuN/ + online (0644) On-line attribute. Indicates whether the cpu is on-line. +The cpu can be brought off-line by writing '0' into +this file. Similarly it can be brought back on-line +by writing '1' into this file. This attribute is +not available for the cpu's that cannot be brought +off-line. Typically cpu0. For more information see +Documentation/cpu-hotplug.txt + + isolated (0644) Isolation attribute. Indicates whether the cpu +is isolated. +The cpu can be isolated by writing '1' into this +file. Similarly it can be un-isolated by writing +'0' into this file. In order to isolate the cpu it +must first be brought off-line. This attribute is +not available for the cpu's that cannot be brought +off-line. Typically cpu0. +Note this attribute is present only if "CPU isolation" +is enabled. For more information see +Documentation/cpu-isolation.txt + + cpufreq(0755) Frequency scaling state. +For more info see +Documentation/cpu-freq/... + + cache (0755) Cache information. FIXME + + cpuidle(0755) Idle state information. FIXME + + topology (0755) Topology information. FIXME diff --git a/Documentation/cpu-isolation.txt b/Documentation/cpu-isolation.txt new file mode 100644 index 000..b9ca425 --- /dev/null +++ b/Documentation/cpu-isolation.txt @@ -0,0 +1,113 @@ +CPU isolation support in Linux(tm) Kernel + +Maintainers: + +Scheduler and scheduler domain bits: + Ingo Molnar <[EMAIL PROTECTED]> + +General framework, irq and workqueue isolation: + Max Krasnyanskiy <[EMAIL PROTECTED]> + +ChangeLog: +- Initial version. Feb 2008, MaxK + +Introduction + + +The primary idea behind CPU isolation is the ability to use some CPU cores +as a dedicated engines for running user-space code with minimal kernel +overhead/intervention, think of it as an SPE in the Cell processor. For +example CPU isolation allows for running CPU intensive(100%) RT task +on one of the processors without adversely affecting or being affected +by the other system activities. With the current (as of early 2008) +multi-core CPU trend we may see more and more applications that explore +this capability: real-time gaming engines, simulators, hard real-time +apps, etc. + +Current CPU isolation support consists of the following features: + +1. Isolated CPU(s) are excluded from the scheduler load balancing logic. + Applications must explicitly bind threads in order to run on those + CPU(s). + +2. By default interrupts are not routed to the isolated CPU(s). + Users must route interrupts (if any) to those CPU(s) explicitly. + +3. Kernel avoids any activity on the isolated CPU(s) as much as possible. + This includes workqueues, per CPU threads, etc. Please note that + this feature is optional and is disabled by default. + +Kernel configuration options + + +Following options need to be enabled in order to use CPU isolation + CONFIG_CPUISOL Top-level config option. Enables general +CPU isolation framework and enables features +#1 and #2 described above. + + CONFIG_CPUISOL_WORKQUEUEThese options provide deeper isolation + CONFIG_CPUISOL_STOPMACHINE from various kernel subsystems. They implement + CONFIG_CPUISOL_... feature #3 described above. +See Kconfig help for more information on each +individual option. + +How to isolate a CPU + + +There are two ways for isolating a CPU + +Kernel boot command line: + isolcpus=n0,n1,... + +
[PATCH sched-devel 5/7] cpuisol: Documentation updates
Documented sysfs interface as suggested by Andrew Morton. Added general documentation that describes how to configure and use CPU isolation features. Signed-off-by: Max Krasnyansky [EMAIL PROTECTED] --- Documentation/ABI/testing/sysfs-devices-system-cpu | 41 +++ Documentation/cpu-isolation.txt| 113 2 files changed, 154 insertions(+), 0 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu new file mode 100644 index 000..32dde5b --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -0,0 +1,41 @@ +What: /sys/devices/system/cpu/... +Date: Feb. 2008 +KernelVersion: 2.6.24 +Contact:LKML linux-kernel@vger.kernel.org +Description: + +The /sys/devices/system/cpu tree provides information about all cpu's +known to the running kernel. + +Following files are created for each cpu. 'N' is the cpu number. + +/sys/devices/system/cpu/cpuN/ + online (0644) On-line attribute. Indicates whether the cpu is on-line. +The cpu can be brought off-line by writing '0' into +this file. Similarly it can be brought back on-line +by writing '1' into this file. This attribute is +not available for the cpu's that cannot be brought +off-line. Typically cpu0. For more information see +Documentation/cpu-hotplug.txt + + isolated (0644) Isolation attribute. Indicates whether the cpu +is isolated. +The cpu can be isolated by writing '1' into this +file. Similarly it can be un-isolated by writing +'0' into this file. In order to isolate the cpu it +must first be brought off-line. This attribute is +not available for the cpu's that cannot be brought +off-line. Typically cpu0. +Note this attribute is present only if CPU isolation +is enabled. For more information see +Documentation/cpu-isolation.txt + + cpufreq(0755) Frequency scaling state. +For more info see +Documentation/cpu-freq/... + + cache (0755) Cache information. FIXME + + cpuidle(0755) Idle state information. FIXME + + topology (0755) Topology information. FIXME diff --git a/Documentation/cpu-isolation.txt b/Documentation/cpu-isolation.txt new file mode 100644 index 000..b9ca425 --- /dev/null +++ b/Documentation/cpu-isolation.txt @@ -0,0 +1,113 @@ +CPU isolation support in Linux(tm) Kernel + +Maintainers: + +Scheduler and scheduler domain bits: + Ingo Molnar [EMAIL PROTECTED] + +General framework, irq and workqueue isolation: + Max Krasnyanskiy [EMAIL PROTECTED] + +ChangeLog: +- Initial version. Feb 2008, MaxK + +Introduction + + +The primary idea behind CPU isolation is the ability to use some CPU cores +as a dedicated engines for running user-space code with minimal kernel +overhead/intervention, think of it as an SPE in the Cell processor. For +example CPU isolation allows for running CPU intensive(100%) RT task +on one of the processors without adversely affecting or being affected +by the other system activities. With the current (as of early 2008) +multi-core CPU trend we may see more and more applications that explore +this capability: real-time gaming engines, simulators, hard real-time +apps, etc. + +Current CPU isolation support consists of the following features: + +1. Isolated CPU(s) are excluded from the scheduler load balancing logic. + Applications must explicitly bind threads in order to run on those + CPU(s). + +2. By default interrupts are not routed to the isolated CPU(s). + Users must route interrupts (if any) to those CPU(s) explicitly. + +3. Kernel avoids any activity on the isolated CPU(s) as much as possible. + This includes workqueues, per CPU threads, etc. Please note that + this feature is optional and is disabled by default. + +Kernel configuration options + + +Following options need to be enabled in order to use CPU isolation + CONFIG_CPUISOL Top-level config option. Enables general +CPU isolation framework and enables features +#1 and #2 described above. + + CONFIG_CPUISOL_WORKQUEUEThese options provide deeper isolation + CONFIG_CPUISOL_STOPMACHINE from various kernel subsystems. They implement + CONFIG_CPUISOL_... feature #3 described above. +See Kconfig help for more information on each +individual option. + +How to isolate a CPU + + +There are two ways for isolating a CPU + +Kernel boot command line: +