diff mbox

slub: Lockout validation scans during freeing of object

Message ID alpine.DEB.2.00.1111221144580.28197@router.home
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Christoph Lameter (Ampere) Nov. 22, 2011, 5:59 p.m. UTC
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@linux.com>


---
 mm/slub.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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;