diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slab.c | 17 | ||||
-rw-r--r-- | mm/slab.h | 32 |
2 files changed, 32 insertions, 17 deletions
@@ -286,23 +286,6 @@ struct arraycache_init { | |||
286 | }; | 286 | }; |
287 | 287 | ||
288 | /* | 288 | /* |
289 | * The slab lists for all objects. | ||
290 | */ | ||
291 | struct kmem_cache_node { | ||
292 | struct list_head slabs_partial; /* partial list first, better asm code */ | ||
293 | struct list_head slabs_full; | ||
294 | struct list_head slabs_free; | ||
295 | unsigned long free_objects; | ||
296 | unsigned int free_limit; | ||
297 | unsigned int colour_next; /* Per-node cache coloring */ | ||
298 | spinlock_t list_lock; | ||
299 | struct array_cache *shared; /* shared per node */ | ||
300 | struct array_cache **alien; /* on other nodes */ | ||
301 | unsigned long next_reap; /* updated without locking */ | ||
302 | int free_touched; /* updated without locking */ | ||
303 | }; | ||
304 | |||
305 | /* | ||
306 | * Need this for bootstrapping a per node allocator. | 289 | * Need this for bootstrapping a per node allocator. |
307 | */ | 290 | */ |
308 | #define NUM_INIT_LISTS (3 * MAX_NUMNODES) | 291 | #define NUM_INIT_LISTS (3 * MAX_NUMNODES) |
@@ -239,3 +239,35 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x) | |||
239 | return s; | 239 | return s; |
240 | } | 240 | } |
241 | #endif | 241 | #endif |
242 | |||
243 | |||
244 | /* | ||
245 | * The slab lists for all objects. | ||
246 | */ | ||
247 | struct kmem_cache_node { | ||
248 | spinlock_t list_lock; | ||
249 | |||
250 | #ifdef CONFIG_SLAB | ||
251 | struct list_head slabs_partial; /* partial list first, better asm code */ | ||
252 | struct list_head slabs_full; | ||
253 | struct list_head slabs_free; | ||
254 | unsigned long free_objects; | ||
255 | unsigned int free_limit; | ||
256 | unsigned int colour_next; /* Per-node cache coloring */ | ||
257 | struct array_cache *shared; /* shared per node */ | ||
258 | struct array_cache **alien; /* on other nodes */ | ||
259 | unsigned long next_reap; /* updated without locking */ | ||
260 | int free_touched; /* updated without locking */ | ||
261 | #endif | ||
262 | |||
263 | #ifdef CONFIG_SLUB | ||
264 | unsigned long nr_partial; | ||
265 | struct list_head partial; | ||
266 | #ifdef CONFIG_SLUB_DEBUG | ||
267 | atomic_long_t nr_slabs; | ||
268 | atomic_long_t total_objects; | ||
269 | struct list_head full; | ||
270 | #endif | ||
271 | #endif | ||
272 | |||
273 | }; | ||