diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mm_types.h | 3 | ||||
| -rw-r--r-- | include/linux/slab.h | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 2b58d192ea24..8967e20cbe57 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -124,6 +124,8 @@ struct page { | |||
| 124 | union { | 124 | union { |
| 125 | struct list_head lru; /* Pageout list, eg. active_list | 125 | struct list_head lru; /* Pageout list, eg. active_list |
| 126 | * protected by zone->lru_lock ! | 126 | * protected by zone->lru_lock ! |
| 127 | * Can be used as a generic list | ||
| 128 | * by the page owner. | ||
| 127 | */ | 129 | */ |
| 128 | struct { /* slub per cpu partial pages */ | 130 | struct { /* slub per cpu partial pages */ |
| 129 | struct page *next; /* Next partial slab */ | 131 | struct page *next; /* Next partial slab */ |
| @@ -136,7 +138,6 @@ struct page { | |||
| 136 | #endif | 138 | #endif |
| 137 | }; | 139 | }; |
| 138 | 140 | ||
| 139 | struct list_head list; /* slobs list of pages */ | ||
| 140 | struct slab *slab_page; /* slab fields */ | 141 | struct slab *slab_page; /* slab fields */ |
| 141 | struct rcu_head rcu_head; /* Used by SLAB | 142 | struct rcu_head rcu_head; /* Used by SLAB |
| 142 | * when destroying via RCU | 143 | * when destroying via RCU |
diff --git a/include/linux/slab.h b/include/linux/slab.h index 3dd389aa91c7..307bfbe62387 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
| @@ -242,6 +242,17 @@ struct kmem_cache { | |||
| 242 | #define KMALLOC_MIN_SIZE (1 << KMALLOC_SHIFT_LOW) | 242 | #define KMALLOC_MIN_SIZE (1 << KMALLOC_SHIFT_LOW) |
| 243 | #endif | 243 | #endif |
| 244 | 244 | ||
| 245 | /* | ||
| 246 | * This restriction comes from byte sized index implementation. | ||
| 247 | * Page size is normally 2^12 bytes and, in this case, if we want to use | ||
| 248 | * byte sized index which can represent 2^8 entries, the size of the object | ||
| 249 | * should be equal or greater to 2^12 / 2^8 = 2^4 = 16. | ||
| 250 | * If minimum size of kmalloc is less than 16, we use it as minimum object | ||
| 251 | * size and give up to use byte sized index. | ||
| 252 | */ | ||
| 253 | #define SLAB_OBJ_MIN_SIZE (KMALLOC_MIN_SIZE < 16 ? \ | ||
| 254 | (KMALLOC_MIN_SIZE) : 16) | ||
| 255 | |||
| 245 | #ifndef CONFIG_SLOB | 256 | #ifndef CONFIG_SLOB |
| 246 | extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1]; | 257 | extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1]; |
| 247 | #ifdef CONFIG_ZONE_DMA | 258 | #ifdef CONFIG_ZONE_DMA |
