Re: [RFC] Arch option to touch newly allocated pages

From: yodaiken@fsmlabs.com
Date: Thu Mar 07 2002 - 09:38:05 EST


On Thu, Mar 07, 2002 at 03:21:24PM +0100, Daniel Phillips wrote:
> On March 7, 2002 03:04 pm, yodaiken@fsmlabs.com wrote:
> > On Thu, Mar 07, 2002 at 02:36:08PM +0100, Daniel Phillips wrote:
> > > On March 7, 2002 02:49 pm, Alan Cox wrote:
> > > > Jeff Dike Apparently wrote
> > > > > caller. This is actually wrong because in this failure case, it effectively
> > > > > changes the semantics of GFP_USER, GFP_KERNEL, and the other blocking GFP_*
> > > > > allocations to GFP_ATOMIC. And that's what forced UML to segfault the
> > > > > compilations.
> > > >
> > > > GFP_KERNEL will sometimes return NULL.
> > >
> > > Sad but true. IMHO we are on track to fix that in this kernel cycle, with
> > > better locked/dirty accounting and rmap to forcibly unmap pages when necessary.
> >
> > Why is that a fix? And how can it work?
>
> Since there is always at least one freeable page in the system (or we're oom) then
> we just have to find it and we know we can forcibly unmap it. We do need to know
> the total of pinned pages, I should have said locked/dirty/pinned.

What if we are oom?
What if we are on our way to deadlock?
What if the caller of kmalloc will make less good use of the page
than the current owner of the page?

page_t *x,*p;
for(i = 0; i < SOME_MADE_UP_NUMBER_THAT_SEEMS_GOOD;i++)
        if( p = kmalloc(..)){
                copyfromuser(x++,p);
                dispatch_to_output(p);
            }
        else {//do the rest later
            ...
          }

        
>
> Since GFP_KERNEL includes __GFP_WAIT, we are even allowed to wait for dirty page
> writeout.
>
> --
> Daniel

-- 
---------------------------------------------------------
Victor Yodaiken 
Finite State Machine Labs: The RTLinux Company.
 www.fsmlabs.com  www.rtlinux.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 07 2002 - 21:01:03 EST