| Subject: mm: Enable SLUB for RT |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Thu, 25 Oct 2012 10:32:35 +0100 |
| |
| Avoid the memory allocation in IRQ section |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| [bigeasy: factor out everything except the kcalloc() workaorund ] |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| --- |
| mm/slub.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/mm/slub.c |
| +++ b/mm/slub.c |
| @@ -3732,6 +3732,11 @@ static void list_slab_objects(struct kme |
| const char *text) |
| { |
| #ifdef CONFIG_SLUB_DEBUG |
| +#ifdef CONFIG_PREEMPT_RT_BASE |
| + /* XXX move out of irq-off section */ |
| + slab_err(s, page, text, s->name); |
| +#else |
| + |
| void *addr = page_address(page); |
| void *p; |
| unsigned long *map = bitmap_zalloc(page->objects, GFP_ATOMIC); |
| @@ -3751,8 +3756,10 @@ static void list_slab_objects(struct kme |
| slab_unlock(page); |
| bitmap_free(map); |
| #endif |
| +#endif |
| } |
| |
| + |
| /* |
| * Attempt to free all partial slabs on a node. |
| * This is called from __kmem_cache_shutdown(). We must take list_lock |