On Wed 16-08-17 12:53:38, Chen Yu wrote: [...] > @@ -2537,10 +2538,15 @@ void mark_free_pages(struct zone *zone) > unsigned long flags; > unsigned int order, t; > struct page *page; > + bool wd_suspended; > > if (zone_is_empty(zone)) > return; > > + wd_suspended = lockup_detector_suspend() ? false : true; > + if (!wd_suspended) > + pr_warn_once("Failed to disable lockup detector during hibernation.\n"); > + > spin_lock_irqsave(&zone->lock, flags); > > max_zone_pfn = zone_end_pfn(zone); I am not maintainer of this code so I am not very familiar with the full context of this function but lockup_detector_suspend is just too heavy for the purpose you are trying to achive. Really why don't you just poke the watchdog every N pages? -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>