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.
Am 2021-08-25 um 2:24 p.m. schrieb Sierra Guiza, Alejandro (Alex):
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.
Hi Christoph,
I think we're missing something here. As far as I can tell, all the work we did first with DEVICE_GENERIC and now DEVICE_PUBLIC always used normal pages. Are we missing something in our driver code that would make these PTEs special? I don't understand how that can be, because driver code is not really involved in updating the CPU mappings. Maybe it's something we need to do in the migration helpers.
Thanks, Felix
Regards, Alex S.
dri-devel@lists.freedesktop.org