On 8/25/2021 2:46 AM, Christoph Hellwig wrote:
On Tue, Aug 24, 2021 at 10:48:17PM -0500, Alex Sierra wrote:
} else {
- if (!(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM))
+ if (!(migrate->flags & MIGRATE_VMA_SELECT_SYSTEM) &&
+ !(migrate->flags & MIGRATE_VMA_SELECT_IOMEM))
goto next;
pfn = pte_pfn(pte);
if (is_zero_pfn(pfn)) {
.. also how is this going to work for the device public memory? That
should be pte_special() an thus fail vm_normal_page.
Perhaps we're missing something, as we're not doing any special marking
for the device public pfn/entries.
pfn_valid return true, pte_special return false and pfn_t_devmap return
false on these pages. Same as system pages.
That's the reason vm_normal_page returns the page correctly through
pfn_to_page helper.
Regards,
Alex S.