On Wed, Aug 16, 2017 at 02:33:59PM +0200, Michal Hocko wrote: > 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? OK, I'll send another version. Thanks, Yu > -- > 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>