2009/9/9 Jerome Glisse <gli...@freedesktop.org>

> On Wed, 2009-09-09 at 10:50 +0200, Rafał Miłecki wrote:
> > I'm thinking of organizing power management in KMS. There are my
> > ideas, would like to get your opinions.
> >
> > First of all we need a few different power modes. I think radeonhd has
> > nice states for that:
> > 1) OFF /* DPMS off */
> > 2) IDLE /* DPMS on, no activity for some time */
> > 3) SLOW_2D /* Simple 2D activity */
> > 4) FAST_2D /* Advanced 2D activity, e.g. video playback */
> > 5) SLOW_3D /* Simple 3D activity, e.g. compiz (Q: how to select?
> > indirect rendering only? */
> > 6) FAST_3D /*Fast 3D activity, e.g. games. Usually using default
> > AtomBIOS setting. */
> > 7) MAX /* Use theoretical chip maximum, maybe beyond default - not
> > selected automatically */
> >
> > Filling states with engine/memory/voltage values can be grabbed from
> radeonhd.
> >
> > About setting states I see 3 ways:
> >
> > 1) Every part (2D, 3D, DPMS) call generic function radeon_pikcup_pm().
> > That function asks 2D engine, 3D engine and DPMS for current state and
> > pickups the best solution.
> > Implementation:
> > We have to introduce radeon_state_of_2d(), radeon_state_of_3d(),
> > radeon_state_of_dpms().
> >
> > 2) From every part (2D, 3D, DPMS) we call setting function with proper
> > argument. Examples:
> > 3D engine calls radeon_set_pm(FAST_3D);
> > 2D engine calls radeon_set_pm(SLOW_2D);
> > DPMS calls radeon_set_pm(IDLE);
> > DPMS calls radeon_set_pm(WAKE_UP);
> > Implementation:
> > We have to store each element's state in our power manager. If we get
> > "SLOW_2D", but FAST_3D is still running, we can not downclock.
> >
> > 3) We have some state properties in radeon_device and every patch
> > calls generic function radeon_pikcup_pm().
> > Implementation:
> > We have to create some rdev->state_of_2d, rdev->state_of_3d,
> > rdev->state_of_dpms, and use that in radeon_pikcup_pm().
> >
> > Personally I'm for third method.
> >
> > Do you have some comments? Preferred method? Suggestions?
> >
>
> I have been thinking to PM too, getting hint from userspace is i believe
> somethings we want, how this hint should be given needs more discussion,
> i was thinking to either use a score (like 100 give me full power, ...)
> or using asic specific level more or like what you propose with 2donly,
> fast2d,3d, ... but which would be asic specific because on some asic
> some stuff doesn't exist (like 2d doesn't on new hw).
>
> >From implementation pov i would like to merge all powermanagement we
> have now into a single callback function, of course reussing common
> sub functions accross asics. Basicly i want to shrink down the number
> of callback as i think it became harder to follow what's happening on
> a given asic. So it would be somethings like radeon_pm and each asic
> would have it's own function (well some asic will likely share one
> like r3xx & r4xx).
>
> Cheers,
> Jerome
>
>
This will need separate hint for PCIE-lanes, memory and engine because some
applications might transfer large amount of data with very little processing
(xv?) while some applications could do complex stuff in GPU and use very
little memory bandwidth (OpenCL?).
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to