Re: [PATCH 00/10] mm: Linux VM Infrastructure to support MemoryPower Management

From: Arjan van de Ven
Date: Sat Jun 11 2011 - 13:23:10 EST


On Sat, 11 Jun 2011 10:06:10 -0700
"Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/