On 11.12.18 09:57, [email protected] wrote:
> On 2018-12-11 09:50, Oscar Salvador wrote:
> 
>> -            } else {
>> -                    pr_warn("failed to isolate pfn %lx\n", pfn);
>> -                    dump_page(page, "isolation failed");
>> -                    put_page(page);
>> -                    /* Because we don't have big zone->lock. we should
>> -                       check this again here. */
>> -                    if (page_count(page)) {
>> -                            not_managed++;
>> -                            ret = -EBUSY;
>> -                            break;
> 
> I forgot that here we should at least leave the put_page().
> But leave also the dump_page() and the pr_warn().
> 
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1394,6 +1394,10 @@ do_migrate_range(unsigned long start_pfn, 
> unsigned long end_pfn)
>                                  inc_node_page_state(page, 
> NR_ISOLATED_ANON +
>                                                      
> page_is_file_cache(page));
> 
> +               } else {
> +                       pr_warn("failed to isolate pfn %lx\n", pfn);
> +                       dump_page(page, "isolation failed");
> +                       put_page(page);

When we're stuck with one problematic page, and we keep looping over
that function, won't that print out *way too much* messages? Shouldn't
that be rate limited somehow (same applies to other callers in this file)

>                  }
>          }
>          if (!list_empty(&source)) {
> 


-- 

Thanks,

David / dhildenb

Reply via email to