Re: [PATCH 04/15] mm: remove the pgmap field from struct hmm_vma_walk

From: Christoph Hellwig
Date: Fri Aug 16 2019 - 08:34:17 EST


On Fri, Aug 16, 2019 at 12:30:41PM +0000, Jason Gunthorpe wrote:
>
> For instance, a system may have multiple DEVICE_PRIVATE map's owned by
> the same driver - but multiple physical devices using that driver.
>
> Each physical device's driver should only ever get DEVICE_PRIVATE
> pages for it's own on-device memory. Never a DEVICE_PRIVATE for
> another device's memory.
>
> The dev_pagemap_ops would not be unique enough, right?

True.

>
> Probably also clusters of same-driver struct device can share a
> DEVICE_PRIVATE, at least high end GPU's now have private memory
> coherency busses between their devices.
>
> Since we want to trigger migration to CPU on incompatible
> DEVICE_PRIVATE pages, it seems best to sort this out in the
> hmm_range_fault?
>
> Maybe some sort of unique ID inside the page->pgmap and passed as
> input?

Yes, we'll probably need an owner field. And it's not just
hmm_range_fault, the migrate_vma_* routines as affected in the same
way.