On 04/20/10 08:22 PM, Bart Smaalders wrote:
On 04/20/10 19:45, Randy Fishel wrote:
   Start by defining how the "new" UI should work on a small set of
controls we know well and know will continue to be needed going
forward:  CPUPM and Suspend/Resume.  At least limiting ourselves to
things we know well should help shake out potential issues with the
interfaces.

Let's not design interfaces based on power management technologies;
otherwise you're going to add more knobs (and likely non-orthogonal
ones) when new technologies arrive.

Correct interface design in this case depends on a simple principle:

"Tell the OS what you know."

Odds are, the administrator doesn't know about C states, CPUPM or
other details about how power control is effected on this particular
box.  The current interface resulted from a lack of abstraction,
and we don't wish to repeat that mistake.

When I step on the accelerator on my car, I don't worry about
ignition timing, fuel mixture, throttle plate angle or other
parameters of engine control; I'm telling the car something
very simple - how much horsepower/torque I want now.  When I
rent a car, I need not worry if it's gas, diesel, electric
or hybrid - the driving interface is the same.

For power management, we need to arrive at some similar simple
parameters that describe the power management of the system, regardless
of what mechanisms are available in the hardware to realize that
management.

Clearly, if power management were instantaneous, we would
enable it always and have the system dynamically adjust from
0% to 100% as needed.  That's not yet the case on current
platforms, but this gives us a hint about something the
administrator knows, or at least can estimate:

"How long can I afford to wait for 100% power from a step
input in load?"

(It may be useful to expand this to cpu vs ram vs disk response as well.)

It goes beyond that. Network performance is another interesting one. 10 GB consumes a lot more power than 1GB, which consumes a lot more power than 100 Mbps. Most 1G devices support 100 and 10 Mbps, and some 10 G devices support lower speeds as well.

You're "how long can I wait" is not really all that useful a metric in this situations.

I think like other things, this needs an interface that is expressed at two levels.

At the first level, its just a coarse assessment of preset settings. "Maximum Performance", "Balanced", and "Minimum Power Utilization" for example. (There could be additional levels here, but I suspect that any more than 5 discrete settings for this would be too many.) One imagines that this coarse setting could be a Committed interface.

At the second level, you have "Advanced" or "Custom" tunables which would allow the savvy administrator to tweak every setting. From an ARC standpoint, I'd probably make these individual tunables Uncommitted or even Volatile -- subject to change whenever need arises.

    -- Garrett

_______________________________________________
pm-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pm-discuss

Reply via email to