Re: 2.4.19pre1aa1

From: Rik van Riel (riel@conectiva.com.br)
Date: Tue Mar 05 2002 - 11:57:13 EST


On Tue, 5 Mar 2002, Andrea Arcangeli wrote:

> > Suppose that (1) we are low on memory in ZONE_NORMAL and
> > (2) we have enough free memory in ZONE_HIGHMEM and (3) the
> > memory in ZONE_NORMAL is for a large part taken by buffer
> > heads belonging to pages in ZONE_HIGHMEM.
> >
> > In that case, none of the VMs will bother freeing the buffer
> > heads associated with the highmem pages and kswapd will have
>
> wrong, classzone will do that, both for NORMAL and HIGHMEM allocations.

Let me explain it to you again:

1) ZONE_NORMAL + ZONE_DMA is low on free memory

2) the memory is taken by buffer heads, these
   buffer heads belong to pagecache pages that
   live in highmem

3) the highmem zone has enough free memory

As you probably know, shrink_caches() has the following line
of code to make sure it won't try to free highmem pages:

                if (!memclass(page->zone, classzone))
                        continue;

Of course, this line of code also means it will not take
away the buffer heads from highmem pages, so the ZONE_NORMAL
and ZONE_DMA memory USED BY THE BUFFER HEADS will not be
freed.

regards,

Rik

-- 
Will hack the VM for food.

http://www.surriel.com/ http://distro.conectiva.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:00:44 EST