[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1111221144580.28197@router.home>
Date: Tue, 22 Nov 2011 11:59:22 -0600 (CST)
From: Christoph Lameter <cl@...ux.com>
To: Eric Dumazet <eric.dumazet@...il.com>
cc: Markus Trippelsdorf <markus@...ppelsdorf.de>,
Christian Kujau <lists@...dbynature.de>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
"Alex,Shi" <alex.shi@...el.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
Pekka Enberg <penberg@...nel.org>,
Matt Mackall <mpm@...enic.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Tejun Heo <tj@...nel.org>
Subject: Re: slub: Lockout validation scans during freeing of object
On Tue, 22 Nov 2011, Eric Dumazet wrote:
> This seems better, but I still have some warnings :
>
> [ 162.117574] SLUB: selinux_inode_security 136 slabs counted but counter=137
> [ 179.879907] SLUB: task_xstate 1 slabs counted but counter=2
This is the total # of slabs that mismatches. Some slabs are not on the
partial list and are neither on the full list since they are currently
on the per cpu partial lists. Thats an accounting issue introduced in 3.2
with the per cpu pages. Need to find some way to count the per cpu partial
pages correctly. Could just force the per cpu pages to be empty?
Subject: Switch per cpu partial page support off for debugging
Otherwise we have accounting issues.
Signed-off-by: Christoph Lameter <cl@...ux.com>
---
mm/slub.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-2.6/mm/slub.c
===================================================================
--- linux-2.6.orig/mm/slub.c 2011-11-22 11:57:21.000000000 -0600
+++ linux-2.6/mm/slub.c 2011-11-22 11:57:55.000000000 -0600
@@ -3027,7 +3027,9 @@ static int kmem_cache_open(struct kmem_c
* per node list when we run out of per cpu objects. We only fetch 50%
* to keep some capacity around for frees.
*/
- if (s->size >= PAGE_SIZE)
+ if (kmem_cache_debug(s))
+ s->cpu_partial = 0;
+ else if (s->size >= PAGE_SIZE)
s->cpu_partial = 2;
else if (s->size >= 1024)
s->cpu_partial = 6;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists