Apart from nice, automatic, dynamic power management we will need to
let userspace provide it's own power state.

I posted my first idea on forum:
http://www.phoronix.com/forums/showpost.php?p=92109&postcount=24 - it
was about providing read/write files:
/sys/class/gpu/engine_clock
/sys/class/gpu/memory_clock
/sys/class/gpu/voltage

However this would cause mess when specifying own state. For example
echo 200000 > /sys/class/gpu/engine_clock
should change engine clock to 200'000, but what about memory and
voltage? Keeping them still dynamic could be problematic and cause
problems (not proportional scaling of every attribute). So we probably
should wait for every 3 attribute being specified. Or maybe set them
default after setting 1 property. Or maybe calculate them. Or take
them from current dynamic state...

Uh, as I said: mess.

My new proposition is rather create some "user_power_mode" and let
user specify all 3 params. For example:
$ echo 200000 400000 1050 > /sys/class/gpu/user_power_mode
$ cat /sys/class/gpu/user_power_mode
Engine clock: 200000
Memory clock: 400000
Voltage: 1050

and then something like:
$ echo user > /sys/class/gpu/current_mode (use defined user_power_mode)
$ echo dynamic > /sys/class/gpu/current_mode (KMS will do dynamic PM)
and maybe
$ echo maximum > /sys/class/gpu/current_mode (forcing static maximum)
$ echo minimum > /sys/class/gpu/current_mode (forcing static minimum)

What do you think about this? Any comments?

-- 
Rafał

------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to