Hi,
Exporting the clock tree state is help us to monitor clocks state and to find the guilty clocks. But could it be also possible to have a write access to the clock tree ? During power consumption optimization step, we need to identify clock/regulator which should be disable but we also want to know what will be the gain. Instead of waiting for the new code with the right clock management, we generally want to directly disable it and look at the 1st result. It will be also useful when we are looking for the best clock tree configuration without developing/modifying a lot of source code.
For sure, such kind of feature is quite dangerous and must be enable carefully but it would help for optimizing power consumption.
Vincent
On 13 October 2010 12:40, Yong Shen yong.shen@linaro.org wrote:
Thanks for your guys' brainstorm. I will take all the thoughts into account while implementing this.
On Wed, Oct 13, 2010 at 2:49 PM, Amit Kucheria amit.kucheria@linaro.org wrote:
On 10 Oct 12, Arnd Bergmann wrote:
On Tuesday 12 October 2010, Amit Kucheria wrote:
Adding linaro-dev to cc. Kernel consolidation WG might have comments.
On Tue, Oct 12, 2010 at 9:04 AM, Yong Shen yong.shen@linaro.org wrote:
Hi Amit and Jeremy,
This is not a patch review. But patch may better present my idea. Basically, I want to add some code in common clock code to export clock information, so every platform can benefit. This information is present in a tree-like pattern. Currently, each platform uses their own way to show clock info, which is hard to use a common user space tool to collect information. For this purpose, I need do the rest:
- Add a clock name check in the clkdev_add. We don't accept two
clocks with the same name to clkdev_add, do we? otherwise, it is impossible to create a tree-like structure under file system, cause no same names under a directory. 2. Recursive function creates the clock tree in debugfs, which referred omap's clock implementation. 3. Add interface needed to let mach related drivers to report their information. clk_get_rate is already there. Maybe we need clk_get_flags() and clk_get_usecount() and more.
Agreed, this functionality is necessary for common clk infrastructure to be useful.
I like the idea, too.
One question I immediately had was whether it should be integrated into sysfs or remain standalone in debugfs.
In general, no core functionality should require debugfs, so if we find it important enough to write user level tools on top of this, it should probably become a stable interface either in sysfs or its own "clkfs" file system if necessary.
That is something I've been wondering about too. At the moment, tools like powerdebug have to periodically re-read the entire clock tree to show updates. AFAIK, sysfs and debugfs don't support inotify/poll/select mechanisms to notify changes.
It would be nice to have notification, but I don't know how hard that would be for a virtual filesystem.
The main disadvantage of sysfs is probably memory consumption, which will have to be evaluated carefully: on systems with little RAM but many clocks this might amount to a few percent of the system memory just to manage the inodes.
The main advantage of sysfs is that we can interface it with the device tree, e.g. have a "clk" symlink in each device pointing to the entry in the clock tree, and possibly vice versa.
Agreed.
/Amit
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev