Re: [PATCH] mm: MADV_WILLNEED implementation for anonymous memory

From: Andrew Morton
Date: Thu Jan 31 2008 - 05:19:29 EST


On Thu, 31 Jan 2008 11:10:13 +0100 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:

>
> On Thu, 2008-01-31 at 02:05 -0800, Andrew Morton wrote:
> > On Thu, 31 Jan 2008 10:53:26 +0100 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
> >
> > >
> > > On Thu, 2008-01-31 at 01:47 -0800, Andrew Morton wrote:
> > > > On Thu, 31 Jan 2008 10:35:18 +0100 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
> > > >
> > > > >
> > > > > On Thu, 2008-01-31 at 01:12 -0800, Andrew Morton wrote:
> > > > >
> > > > > > Implementation-wise: make_pages_present() _can_ be converted to do this.
> > > > > > But it's a lot of patching, and the result will be a cleaner, faster and
> > > > > > smaller core MM. Whereas your approach is easy, but adds more code and
> > > > > > leaves the old stuff slow-and-dirty.
> > > > > >
> > > > > > Guess which approach is preferred? ;)
> > > > >
> > > > > Ok, I'll look at using make_pages_present().
> > > >
> > > > Am still curious to know what inspired this change. What are the use
> > > > cases? Performance testing results, etc?
> > >
> > > Ah, that is Lennarts Pulse Audio thing, he has samples in memory which
> > > might not have been used for a while, and he wants to be able to
> > > pre-fetch those when he suspects they might need to be played. So that
> > > once the audio thread comes along and stuffs them down /dev/dsp its all
> > > nice in memory.
> > >
> > > Since its all soft real-time at best he feels its better to do a best
> > > effort at not hitting swap than it is to strain the system with mlock
> > > usage.
> >
> > hrm. Does he know about pthread_create()?
>
> I'm very sure he does. So you're suggesting to just create a thread and
> touch that memory and be done with it?
>
> Lennart?

That would get him out of trouble. But it certainly makes _sense_ for the
kernel to implement MADV_WILLNEED for anon memory. From a consistency POV.

But I don't know that the usefulness of the feature is worth actually
expending code on. Heck, after five-odd years I'm still asking every
second person I meet "why don't you use fadvise()?" (Reponse: ooooh!)


--
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/