Messages in this thread Patch in this message | | | Date | Sat, 25 Mar 2017 09:04:42 +0900 | From | Sergey Senozhatsky <> | Subject | Re: lockdep warning: console vs. mem hotplug |
| |
On (03/21/17 13:44), Sergey Senozhatsky wrote: [..] > so we probably can > > > 1) move pr_info() out of zone->lock in __offline_isolated_pages(). > meh... > > > 2) switch to printk_deferred() in __offline_isolated_pages(). > meh.. there might a bunch of other printks done from under zone->lock. > > > 3) move add_timer() out of sclp_con_lock console in sclp_console_write(). > well, there can be other consoles that do something similar. > > > 4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the __offline_isolated_pages(). not the best solution I can think of, but the simplest one.
---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index f749b7ff7c50..eb61e6ab5f4f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) BUG_ON(!PageBuddy(page)); order = page_order(page); #ifdef CONFIG_DEBUG_VM - pr_info("remove from free list %lx %d %lx\n", + printk_deferred(KERN_INFO "remove from free list %lx %d %lx\n", pfn, 1 << order, end_pfn); #endif list_del(&page->lru);
| |