Previously, the size of struct kmem_cache was 136 bytes, just eight
bytes larger than 128 bytes, which is typically two cache lines on
today's CPUs.

By reducing the size of the name field which holds a human-readable
description by eight bytes to 24 bytes, the struct kmem_cache can be
made fit into two cache lines.  This change should not affect the
usefulness of this field.  For reference, the length of the largest
hard-coded name is 17.

* kern/slab.h (KMEM_CACHE_NAME_SIZE): Define to 24.
---
 kern/slab.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kern/slab.h b/kern/slab.h
index b842fb7..a4219c4 100644
--- a/kern/slab.h
+++ b/kern/slab.h
@@ -149,7 +149,7 @@ typedef void (*kmem_slab_free_fn_t)(vm_offset_t, vm_size_t);
 /*
  * Cache name buffer size.
  */
-#define KMEM_CACHE_NAME_SIZE 32
+#define KMEM_CACHE_NAME_SIZE 24
 
 /*
  * Cache of objects.
-- 
1.8.5.2


Reply via email to