lkml.org 
[lkml]   [2002]   [Dec]   [20]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 2.4] Enable checking of reap of in-use slab
DateFri, 20 Dec 2002 10:45:19 -0600
FromJames Bottomley <>
Hi Marcelo,

On older (2.4.9) kernels, we keep running into the occasional attempts to reap 
in-use slabs.  The checks for this were compiled out on 2.4.10 and above in 
the name of efficiency.

I'd like to add the checks just for the in use parts back just to make 
assurances doubly sure that this bug is actually fixed, not just obscured.  
The changes use the BUG_ON macro, so the actual debugging stuff is in the 
unlikely branch which shouldn't impact the critical path too much.

Please consider applying for 2.4.22

Thanks,

James

===== mm/slab.c 1.21 vs edited =====
--- 1.21/mm/slab.c	Mon Dec 16 00:22:20 2002
+++ edited/mm/slab.c	Fri Dec 20 10:33:02 2002
@@ -928,10 +928,9 @@
 			break;
 
 		slabp = list_entry(cachep->slabs_free.prev, slab_t, list);
-#if DEBUG
-		if (slabp->inuse)
-			BUG();
-#endif
+
+		BUG_ON(slabp->inuse);
+
 		list_del(&slabp->list);
 
 		spin_unlock_irq(&cachep->spinlock);
@@ -1785,10 +1784,9 @@
 		p = searchp->slabs_free.next;
 		while (p != &searchp->slabs_free) {
 			slabp = list_entry(p, slab_t, list);
-#if DEBUG
-			if (slabp->inuse)
-				BUG();
-#endif
+
+			BUG_ON(slabp->inuse);
+
 			full_free++;
 			p = p->next;
 		}
@@ -1838,10 +1836,9 @@
 		if (p == &best_cachep->slabs_free)
 			break;
 		slabp = list_entry(p,slab_t,list);
-#if DEBUG
-		if (slabp->inuse)
-			BUG();
-#endif
+
+		BUG_ON(slabp->inuse);
+
 		list_del(&slabp->list);
 		STATS_INC_REAPED(best_cachep);
 
\
 
 \ /
  Last update: 2005-03-22 13:31    [from the cache]
©2003-2008