Re: So, what's the status on the recent patches here?

Woodruff, Richard
2006-08-24T12:16:01Z

> > To some extent having lots of specific policies in the embedded
space is
> > inevitable. The hardware is very tightly coupled. You may have
>
> Maybe. But you certainly do not have to export that uglyness to
> userspace.

Some aspects are easier to manage. If data base like operations and
such are needed it's a more friendly place.

Sysfs exporting every gory detail about PCI or USB doesn't seem so far
from this kind of thing.

> > I have some notion that a policy manager can create a state with
simple
> > & general names like fast, medium, slow (whatever) which is the
> > interface in which applications might speak. A complex policy
> > manager
>
> ...which is very bad interface for applications. See my other
> mail. Applications should not have to play with fast/medium/slow,
> explicitely. Instead, on opening /dev/dsp, you should power up the
> sound system (and maybe adjust cpu frequency if
> neccessary). Application should not have to do echo fast > somewhere
> before opening /dev/dsp

How does /dev/dsp know at what level it can run at? On the SOC I
control the speed of the DSP. I can adjust its MIPs rate.

We do internally have some run time algorithms on the DSP which allow it
to feed statistics back about how well it is doing... like did I drop
any frames, and how close was I to my deadline in decoding a sample. So
there is some low level things which can be done. The DSP is currently
has management code in the kernel (bridge driver) and it has a user
space component which can load algorithms and such through the bridge to
do things.

A missing pieces is meaningful coordination between devices. Each
device is not an island. Not taking care of all devices on the internal
interconnects may mean you don't get the big power savings. For the DSP
and the Control processor to work you need each device enabled to a
sufficient performance level. Setting them to all high means you don't
get the savings.

Doing this kind of coordination which is very specific to your use case
is difficult to achieve in a generalized fashion. Splitting some of
this work between user and kernel space can help.

Regards,
Richard W.