From: Christoph Lameter <clameter@sgi.com>
To: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
htejun@gmail.com, gregkh@suse.de,
Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
Balbir Singh <balbir@in.ibm.com>,
maneesh@linux.vnet.ibm.com, lkml <linux-kernel@vger.kernel.org>,
stable@kernel.org, linux-mm@kvack.org
Subject: Re: 2.6.22-stable causes oomkiller to be invoked
Date: Wed, 26 Dec 2007 13:01:49 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0712261258050.16862@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20071221044508.GA11996@linux.vnet.ibm.com>
On Fri, 21 Dec 2007, Dhaval Giani wrote:
> No, it does not stop the oom I am seeing here.
Duh. Disregard that patch. It looks like check_pgt_cache() is not called.
This could happen if tlb_flush_mmu is never called during the
fork/terminate sequences in your script. pgd_free is called *after* a
possible tlb flush so the pgd page is on the quicklist (which is good for
the next process which needs a pgd). The tlb_flush_mmu's during pte
eviction should trim the quicklist. For some reason this is not happening
on your box (it works here).
Could you try this script that insures that check_pgt_cache is called
after every pgd_free?
Index: linux-2.6/arch/x86/mm/pgtable_32.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/pgtable_32.c 2007-12-26 12:55:10.000000000 -0800
+++ linux-2.6/arch/x86/mm/pgtable_32.c 2007-12-26 12:55:54.000000000 -0800
@@ -366,6 +366,15 @@ void pgd_free(pgd_t *pgd)
}
/* in the non-PAE case, free_pgtables() clears user pgd entries */
quicklist_free(0, pgd_dtor, pgd);
+
+ /*
+ * We must call check_pgd_cache() here because the pgd is freed after
+ * tlb flushing and the call to check_pgd_cache. In some cases the VM
+ * may not call tlb_flush_mmu during process termination (??).
+ * If this is repeated then we may never call check_pgd_cache.
+ * The quicklist will grow and grow. So call check_pgd_cache here.
+ */
+ check_pgt_cache();
}
void check_pgt_cache(void)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-12-26 21:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20071213132326.GC16905@linux.vnet.ibm.com>
[not found] ` <20071213151847.GB5676@linux.vnet.ibm.com>
[not found] ` <20071213162936.GA7635@suse.de>
[not found] ` <20071213164658.GA30865@linux.vnet.ibm.com>
[not found] ` <20071213175423.GA2977@linux.vnet.ibm.com>
[not found] ` <476295FF.1040202@gmail.com>
[not found] ` <20071214154711.GD23670@linux.vnet.ibm.com>
[not found] ` <4762A721.7080400@gmail.com>
[not found] ` <20071214161637.GA2687@linux.vnet.ibm.com>
[not found] ` <20071214095023.b5327703.akpm@linux-foundation.org>
[not found] ` <20071214182802.GC2576@linux.vnet.ibm.com>
2007-12-14 23:05 ` Andrew Morton
2007-12-15 3:52 ` Dhaval Giani
2007-12-15 6:00 ` Andrew Morton
2007-12-15 10:44 ` Dhaval Giani
[not found] ` <20071217045904.GB31386@linux.vnet.ibm.com>
[not found] ` <Pine.LNX.4.64.0712171143280.12871@schroedinger.engr.sgi.com>
[not found] ` <20071217120720.e078194b.akpm@linux-foundation.org>
[not found] ` <Pine.LNX.4.64.0712171222470.29500@schroedinger.engr.sgi.com>
2007-12-21 4:45 ` Dhaval Giani
2007-12-26 21:01 ` Christoph Lameter [this message]
[not found] ` <Pine.LNX.4.64.0712271119030.30555@schroedinger.engr.sgi.com>
2007-12-28 10:11 ` Dhaval Giani
2008-01-02 20:45 ` Christoph Lameter
2008-01-02 21:54 ` Christoph Lameter
2008-01-03 3:59 ` Dhaval Giani
2008-01-03 4:16 ` Dhaval Giani
2008-01-03 21:04 ` Christoph Lameter
2008-01-07 20:04 ` Christoph Lameter
2008-01-08 4:33 ` Dhaval Giani
2007-12-30 14:01 ` Ingo Molnar
2007-12-30 19:24 ` Dhaval Giani
2008-01-02 20:48 ` Christoph Lameter
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=Pine.LNX.4.64.0712261258050.16862@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=balbir@in.ibm.com \
--cc=dhaval@linux.vnet.ibm.com \
--cc=gregkh@suse.de \
--cc=htejun@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=maneesh@linux.vnet.ibm.com \
--cc=stable@kernel.org \
--cc=vatsa@linux.vnet.ibm.com \
/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