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

Reply via email to