Re: [PATCH v4] mm/mempolicy,hugetlb: Checking hstate for hugetlbfs page in vma_migratable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-01-16 at 23:38 Li Xinhai wrote:
>On 2020-01-16 at 23:18 Michal Hocko wrote:
>>On Thu 16-01-20 21:50:34, Li Xinhai wrote:
>>> On 2020-01-16 at 17:56 Michal Hocko wrote:
>>> >On Thu 16-01-20 04:11:25, Li Xinhai wrote:
>>> >> Checking hstate at early phase when isolating page, instead of during
>>> >> unmap and move phase, to avoid useless isolation.
>>> >
>>> >Could you be more specific what you mean by isolation and why does it
>>> >matter? The patch description should really explain _why_ the change is
>>> >needed or desirable.
>>>
>>> The changelog can be improved:
>>>
>>> vma_migratable() is called to check if pages in vma can be migrated
>>> before go ahead to isolate, unmap and move pages. For hugetlb pages,
>>> hugepage_migration_supported(struct hstate *h) is one factor which
>>> decide if migration is supported. In current code, this function is called
>>> from unmap_and_move_huge_page(), after isolating page has
>>> completed.
>>> This patch checks hstate from vma_migratable() and avoids isolating pages
>>> which are not supported.
>>
>>This still explains what but not why this is relevant. If by isolating
>>pages you mean isolate_lru_page then this really a noop for hugetlb
>>pages. Or do I still misread your changelog?
>
>I mean isolate_huge_page will queue pages for moving, and
>unmap_and_move_huge_page will call
>hugepage_migration_supported then refuse moving.
> 

Forgot to mention that this patch has no relevant with this one
https://patchwork.kernel.org/patch/11331639/, ;

Code change at here is common for avoids walking page table and
isolate hugepage in case architecture or page size are not supported
for migration. Comments from code are copied here:

static int unmap_and_move_huge_page(...)
{
	/*
	 * Migratability of hugepages depends on architectures and their size.
	 * This check is necessary because some callers of hugepage migration
	 * like soft offline and memory hotremove don't walk through page
	 * tables or check whether the hugepage is pmd-based or not before
	 * kicking migration.
	 */
	if (!hugepage_migration_supported(page_hstate(hpage))) {
		putback_active_hugepage(hpage);
		return -ENOSYS;
	}
}

For current code change, we are able to know the 'hstate' because we have 'vma', so
do early check instead of later.

>>--
>>Michal Hocko
>>SUSE Labs




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux