From: Ross Biro <rossb@google.com>
To: linux-kernel@vger.kernel.org
Subject: [BUG 2.4.18-2.4.21-pre5 at least]: MM vmscan doesn't free buffer heads under memory pressure
Date: Wed, 23 Apr 2003 14:36:33 -0700 [thread overview]
Message-ID: <3EA70761.5090306@google.com> (raw)
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;
}
reply other threads:[~2003-04-23 21:24 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3EA70761.5090306@google.com \
--to=rossb@google.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox