[PATCH 00/10] mm: Linux VM Infrastructure to support Memory Power Management

Arjan van de Ven arjan at infradead.org
Sat Jun 11 13:26:54 EDT 2011


On Sat, 11 Jun 2011 10:06:10 -0700
"Paul E. McKenney" <paulmck at linux.vnet.ibm.com> wrote:

> On Fri, Jun 10, 2011 at 08:02:33PM -0700, Arjan van de Ven wrote:
> > On Fri, 10 Jun 2011 12:37:13 -0700
> > "Paul E. McKenney" <paulmck at linux.vnet.ibm.com> wrote:
> > 
> > > On Fri, Jun 10, 2011 at 08:23:29PM +0100, Matthew Garrett wrote:
> > > > On Fri, Jun 10, 2011 at 11:47:38AM -0700, Paul E. McKenney
> > > > wrote:
> > > > 
> > > > > And if I understand you correctly, then the patches that
> > > > > Ankita posted should help your self-refresh case, along with
> > > > > the originally intended the power-down case and
> > > > > special-purpose use of memory case.
> > > > 
> > > > Yeah, I'd hope so once we actually have capable hardware.
> > > 
> > > Cool!!!
> > > 
> > > So Ankita's patchset might be useful to you at some point, then.
> > > 
> > > Does it look like a reasonable implementation?
> > 
> > as someone who is working on hardware that is PASR capable right
> > now, I have to admit that our plan was to just hook into the buddy
> > allocator, and use PASR on the top level of buddy (eg PASR off
> > blocks that are free there, and PASR them back on once an
> > allocation required the block to be broken up)..... that looked the
> > very most simple to me.
> > 
> > Maybe something much more elaborate is needed, but I didn't see why
> > so far.
> 
> If I understand correctly, you face the same issue that affects
> transparent huge pages, but on a much larger scale.  If you have even
> one non-moveable allocation in a given top-level buddy block, you
> won't be able to PASR that block.

yep we'd use a non-kernel zone for that; not too big a deal.
(the much larger scale you can debate, if your memory controller is
configured correctly the PASR regions are not all that much bigger than
hugepages)
> 
> In addition, one of the things that Ankita's patchset is looking to do
> is to control allocations in a given region, so that the region can be
> easily evacuated.  One use for this is to power off regions of memory,
> another is to PASR off regions of memory, and a third is to ensure
> that large regions of memory are available for when needed by media
> codecs (e.g., cameras), but can be used for other purposes when the
> media codecs don't need them (e.g., when viewing photos rather than
> taking them).

the codec issue seems to be solved in time; a previous generation
silicon on our (Intel) side had ARM ecosystem blocks that did not do
scatter gather, however the current generation ARM ecosystem blocks all
seem to have added S/G to them....
(in part this is coming from the strong desire to get camera/etc blocks
to all use "GPU texture" class memory, so that the camera can directly
deposit its information into a gpu texture, and similar for media
encode/decode blocks... this avoids copies as well as duplicate memory).



-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org



More information about the linux-arm-kernel mailing list