LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 3/3]cpuidle take2: Basic documentation for cpuidle
@ 2007-02-22 21:54 Venkatesh Pallipadi
2007-02-27 9:39 ` Pavel Machek
0 siblings, 1 reply; 2+ messages in thread
From: Venkatesh Pallipadi @ 2007-02-22 21:54 UTC (permalink / raw)
To: linux-kernel, Andrew Morton, Dave Jones, linux-acpi
Cc: Adam Belay, Shaohua Li, Len Brown
Documentation for cpuidle infrastructure
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Adam Belay <abelay@novell.com>
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Index: linux-2.6.21-rc-mm/Documentation/cpuidle/core.txt
===================================================================
--- /dev/null
+++ linux-2.6.21-rc-mm/Documentation/cpuidle/core.txt
@@ -0,0 +1,17 @@
+
+ Supporting multiple CPU idle levels in kernel
+
+ cpuidle
+
+General Information:
+
+Various CPUs today support multiple idle levels that are differentiated
+by varying exit latencies and power consumption during idle.
+cpuidle is a generic in-kernel infrastructure that separates
+idle policy (governor) from idle mechanism (driver) and provides a
+standardized infrastructure to support independent development of
+governors and drivers.
+
+cpuidle resides under /drivers/cpuidle.
+
+
Index: linux-2.6.21-rc-mm/Documentation/cpuidle/driver.txt
===================================================================
--- /dev/null
+++ linux-2.6.21-rc-mm/Documentation/cpuidle/driver.txt
@@ -0,0 +1,24 @@
+
+
+ Supporting multiple CPU idle levels in kernel
+
+ cpuidle drivers
+
+
+
+
+cpuidle driver supports capability detection for a particular system. The
+init and exit routines will be called for each online CPU, with a percpu
+cpuidle_driver object and driver should fill in cpuidle_states inside
+cpuidle_driver depending on the CPU capability.
+
+Driver can handle dynamic state changes (like battery<->AC), by calling
+force_redetect interface.
+
+It is possible to have more than one driver registered at the same time and
+user can switch between drivers using /sysfs interface.
+
+Interfaces:
+int cpuidle_register_driver(struct cpuidle_driver *drv);
+void cpuidle_unregister_driver(struct cpuidle_driver *drv);
+int cpuidle_force_redetect(struct cpuidle_device *dev);
Index: linux-2.6.21-rc-mm/Documentation/cpuidle/sysfs.txt
===================================================================
--- /dev/null
+++ linux-2.6.21-rc-mm/Documentation/cpuidle/sysfs.txt
@@ -0,0 +1,27 @@
+
+
+ Supporting multiple CPU idle levels in kernel
+
+ cpuidle sysfs
+
+System global cpuidle information are under
+/sys/devices/system/cpu/cpuidle
+
+The current interfaces in this directory has self-explanatory names:
+* available_drivers
+* available_governors
+* current_driver
+* current_governor
+
+Per logical CPU specific cpuidle information are under
+/sys/devices/system/cpu/cpuX/cpuidle
+for each online cpu X
+
+Under this percpu directory, there is a directory for each idle state supported
+by the driver, which in turn has
+* latency
+* power
+* time
+* usage
+
+
Index: linux-2.6.21-rc-mm/Documentation/cpuidle/governor.txt
===================================================================
--- /dev/null
+++ linux-2.6.21-rc-mm/Documentation/cpuidle/governor.txt
@@ -0,0 +1,24 @@
+
+
+
+ Supporting multiple CPU idle levels in kernel
+
+ cpuidle governors
+
+
+
+
+cpuidle governor is policy routine that decides what idle state to enter at
+any given time. cpuidle core uses different callbacks to governor while
+handling idle entry.
+* select_state callback where governor can determine next idle state to enter
+* prepare_idle callback is called before entering an idle state
+* scan callback is called after a driver forces redetection of the states
+
+More than one governor can be registered at the same time and
+user can switch between drivers using /sysfs interface.
+
+Interfaces:
+int cpuidle_register_governor(struct cpuidle_governor *gov);
+void cpuidle_unregister_governor(struct cpuidle_governor *gov);
+
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 3/3]cpuidle take2: Basic documentation for cpuidle
2007-02-22 21:54 [PATCH 3/3]cpuidle take2: Basic documentation for cpuidle Venkatesh Pallipadi
@ 2007-02-27 9:39 ` Pavel Machek
0 siblings, 0 replies; 2+ messages in thread
From: Pavel Machek @ 2007-02-27 9:39 UTC (permalink / raw)
To: Venkatesh Pallipadi
Cc: linux-kernel, Andrew Morton, Dave Jones, linux-acpi, Adam Belay,
Shaohua Li, Len Brown
Hi!
> Documentation for cpuidle infrastructure
>
> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
> Signed-off-by: Adam Belay <abelay@novell.com>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
>
> Index: linux-2.6.21-rc-mm/Documentation/cpuidle/core.txt
> ===================================================================
> --- /dev/null
> +++ linux-2.6.21-rc-mm/Documentation/cpuidle/core.txt
> @@ -0,0 +1,17 @@
> +
> + Supporting multiple CPU idle levels in kernel
> +
> + cpuidle
> +
> +General Information:
> +
> +Various CPUs today support multiple idle levels that are differentiated
> +by varying exit latencies and power consumption during idle.
> +cpuidle is a generic in-kernel infrastructure that separates
> +idle policy (governor) from idle mechanism (driver) and provides a
> +standardized infrastructure to support independent development of
> +governors and drivers.
> +
> +cpuidle resides under /drivers/cpuidle.
Drop leading slash? Merge this to some other docs, since it is so
short?
> Index: linux-2.6.21-rc-mm/Documentation/cpuidle/driver.txt
> ===================================================================
> --- /dev/null
> +++ linux-2.6.21-rc-mm/Documentation/cpuidle/driver.txt
> @@ -0,0 +1,24 @@
> +
> +
> + Supporting multiple CPU idle levels in kernel
> +
> + cpuidle drivers
> +
> +
> +
> +
> +cpuidle driver supports capability detection for a particular system. The
> +init and exit routines will be called for each online CPU, with a percpu
> +cpuidle_driver object and driver should fill in cpuidle_states inside
> +cpuidle_driver depending on the CPU capability.
Huh, perhaps it would be nice to explain what the driver does?
Now we know that it does...
> +Driver can handle dynamic state changes (like battery<->AC), by calling
> +force_redetect interface.
> +
> +It is possible to have more than one driver registered at the same time and
> +user can switch between drivers using /sysfs interface.
> +
> +Interfaces:
> +int cpuidle_register_driver(struct cpuidle_driver *drv);
> +void cpuidle_unregister_driver(struct cpuidle_driver *drv);
> +int cpuidle_force_redetect(struct cpuidle_device *dev);
register, unregister and redetect... but that somehow does not seem complete?
> Index: linux-2.6.21-rc-mm/Documentation/cpuidle/sysfs.txt
> ===================================================================
> --- /dev/null
> +++ linux-2.6.21-rc-mm/Documentation/cpuidle/sysfs.txt
> @@ -0,0 +1,27 @@
> +
> +
> + Supporting multiple CPU idle levels in kernel
> +
> + cpuidle sysfs
> +
> +System global cpuidle information are under
> +/sys/devices/system/cpu/cpuidle
"information is"? (Not 100% sure).
> +Under this percpu directory, there is a directory for each idle state supported
> +by the driver, which in turn has
> +* latency
> +* power
> +* time
> +* usage
This should say... latency (in microseconds), power (in miliwats), and
explain what time (which units?) and usage means. (Total time spent in
that state, usage == number of enters into that state?)
> + Supporting multiple CPU idle levels in kernel
> +
> + cpuidle governors
> +
> +
> +cpuidle governor is policy routine that decides what idle state to enter at
> +any given time. cpuidle core uses different callbacks to governor while
> +handling idle entry.
> +* select_state callback where governor can determine next idle state to enter
> +* prepare_idle callback is called before entering an idle state
> +* scan callback is called after a driver forces redetection of the states
Can we get some visual separation between functions and their
descriptions?
scan() callback?
scan -- callback?
> +More than one governor can be registered at the same time and
> +user can switch between drivers using /sysfs interface.
<describe interface here>?
Explain why we want more than one governor?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-02-27 9:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-22 21:54 [PATCH 3/3]cpuidle take2: Basic documentation for cpuidle Venkatesh Pallipadi
2007-02-27 9:39 ` Pavel Machek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).