linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG 2.4.18-2.4.21-pre5 at least]: MM vmscan doesn't free buffer heads under memory pressure
@ 2003-04-23 21:36 Ross Biro
  0 siblings, 0 replies; only message in thread
From: Ross Biro @ 2003-04-23 21:36 UTC (permalink / raw)
  To: linux-kernel


I reproduced this problem in 2.4.18 and visually verified it in 
2.4.21-pre5.  I haven't look at any other kernels.

Buffer Heads tend to be allocated in low memory (SLAB_NOFS) but point to 
pages in high memory.  If low memory is under heavy pressure, but high 
memory is not, then buffer heads in low memory that point to buffers in 
high memory are never freed.  This can cause OOM errors when there is 
still plenty of memory and plenty of buffer heads that could be easily 
freed.

Addint the following while loop to 
try_to_free_pages/try_to_free_pages_zone and trying to free pages again 
seems to alleviate the problem.

    Ross



                /* Problem, we couldn't free up the memory we want.
                   Currently buffer heads all end up in lowmem, so
                   we may be able to free up some low mem by freeing
                   up some highmem.  Try to do that. */
                while (pgdat) {
                        for (zone = pgdat->node_zones + MAX_NR_ZONES-1;
                             zone > classzone &&
                             zone >= pgdat->node_zones ;
                             zone--) {
                                shrink_caches(zone, priority, gfp_mask,
                                              nr_pages *
                                              (PAGE_SIZE /
                                               sizeof(struct 
buffer_head) + 1)
                                              * 8);
                        }
                        pgdat = pgdat->node_next;
                }



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-04-23 21:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-23 21:36 [BUG 2.4.18-2.4.21-pre5 at least]: MM vmscan doesn't free buffer heads under memory pressure Ross Biro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).