Re: [PATCH] mm, memory_hotplug: Don't bail out in do_migrate_range prematurely

From: David Hildenbrand
Date: Tue Dec 11 2018 - 04:37:49 EST


On 11.12.18 09:57, osalvador@xxxxxxx 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