[haiku-commits] r35737 - haiku/trunk/src/system/kernel/slab

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 3 Mar 2010 16:15:49 +0100 (CET)

Author: axeld
Date: 2010-03-03 16:15:49 +0100 (Wed, 03 Mar 2010)
New Revision: 35737
Changeset: http://dev.haiku-os.org/changeset/35737/haiku

Modified:
   haiku/trunk/src/system/kernel/slab/Slab.cpp
Log:
* The slab_cache command now also dumps the actual slab lists.


Modified: haiku/trunk/src/system/kernel/slab/Slab.cpp
===================================================================
--- haiku/trunk/src/system/kernel/slab/Slab.cpp 2010-03-03 14:54:46 UTC (rev 
35736)
+++ haiku/trunk/src/system/kernel/slab/Slab.cpp 2010-03-03 15:15:49 UTC (rev 
35737)
@@ -198,6 +198,14 @@
 // #pragma mark -
 
 
+static void
+dump_slab(::slab* slab)
+{
+       kprintf("  %p  %p  %6" B_PRIuSIZE " %6" B_PRIuSIZE " %6" B_PRIuSIZE "  
%p\n",
+               slab, slab->pages, slab->size, slab->count, slab->offset, 
slab->free);
+}
+
+
 static int
 dump_slabs(int argc, char* argv[])
 {
@@ -244,6 +252,26 @@
        kprintf("resize entry don't wait: %p\n", cache->resize_entry_dont_wait);
        kprintf("resize entry can wait:   %p\n", cache->resize_entry_can_wait);
 
+       kprintf("  slab        chunk         size   used offset  free\n");
+
+       SlabList::Iterator iterator = cache->empty.GetIterator();
+       if (iterator.HasNext())
+               kprintf("empty:\n");
+       while (::slab* slab = iterator.Next())
+               dump_slab(slab);
+
+       iterator = cache->partial.GetIterator();
+       if (iterator.HasNext())
+               kprintf("partial:\n");
+       while (::slab* slab = iterator.Next())
+               dump_slab(slab);
+
+       iterator = cache->full.GetIterator();
+       if (iterator.HasNext())
+               kprintf("full:\n");
+       while (::slab* slab = iterator.Next())
+               dump_slab(slab);
+
        if ((cache->flags & CACHE_NO_DEPOT) == 0) {
                kprintf("depot:\n");
                dump_object_depot(&cache->depot);


Other related posts:

  • » [haiku-commits] r35737 - haiku/trunk/src/system/kernel/slab - axeld