[PATCH 4/4] mm: check the device private page owner in hmm_range_fault
Christoph Hellwig
hch at lst.de
Sat Mar 21 15:18:25 UTC 2020
On Sat, Mar 21, 2020 at 09:38:04AM -0300, Jason Gunthorpe wrote:
> > I don't think there is any specific protection. Let me see if we
> > can throw in a get_dev_pagemap here
>
> The page tables are RCU protected right? could we do something like
>
> if (is_device_private_entry()) {
> rcu_read_lock()
> if (READ_ONCE(*ptep) != pte)
> return -EBUSY;
> hmm_is_device_private_entry()
> rcu_read_unlock()
> }
>
> ?
Are they everywhere? I'd really love to hear from people that really
know this ara..
>
> Then pgmap needs a synchronize_rcu before the struct page's are
> destroyed (possibly gup_fast already requires this?)
>
> I've got some other patches trying to close some of these styles of
> bugs, but
>
> > note that current mainline doesn't even use it for this path..
>
> Don't follow?
If you look at mainline (or any other tree), we only do a
get_dev_pagemap for devmap ptes. But device private pages are encoded
as non-present swap ptes.
More information about the amd-gfx
mailing list