lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20070227093936.GA6766@elf.ucw.cz>
Date:	Tue, 27 Feb 2007 10:39:37 +0100
From:	Pavel Machek <pavel@....cz>
To:	Venkatesh Pallipadi <venkatesh.pallipadi@...el.com>
Cc:	linux-kernel <linux-kernel@...r.kernel.org>,
	Andrew Morton <akpm@...l.org>, Dave Jones <davej@...hat.com>,
	linux-acpi@...r.kernel.org, Adam Belay <abelay@...ell.com>,
	Shaohua Li <shaohua.li@...el.com>,
	Len Brown <len.brown@...el.com>
Subject: Re: [PATCH 3/3]cpuidle take2: Basic documentation for cpuidle

Hi!

> Documentation for cpuidle infrastructure
> 
> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@...el.com>
> Signed-off-by: Adam Belay <abelay@...ell.com>
> Signed-off-by: Shaohua Li <shaohua.li@...el.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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ