Re: [PATCH 1/3] vfio: Introduce vma ops registration and notifier
From: Alex Williamson <hidden>
Date: 2021-02-19 22:05:08
Also in:
lkml
On Thu, 18 Feb 2021 19:04:04 -0400 Jason Gunthorpe [off-list ref] wrote:
On Thu, Feb 18, 2021 at 02:56:06PM -0700, Alex Williamson wrote:quoted
Looks pretty slick. I won't claim it's fully gelled in my head yet, but AIUI you're creating these inodes on your new pseudo fs and associating it via the actual user fd via the f_mapping pointer, which allows multiple fds to associate and address space back to this inode when you want to call unmap_mapping_range().Yes, from what I can tell all the fs/inode stuff is just mandatory overhead to get a unique address_space pointer, as that is the only thing this is actually using. I have to check the mmap flow more carefully, I recall pointing to a existing race here with Daniel, but the general idea should hold.quoted
That clarifies from the previous email how we'd store the inode on the vfio_device without introducing yet another tracking list for device fds.Right, you can tell from the vma what inode it is for, and the inode can tell you if it is a VFIO VMA or not, so no tracking lists needed at all.
Seems to be a nice cleanup for vfio as well, more testing and analysis required, but here are a few (4) wip commits that re-implement the current vma zapping scheme following your example: https://github.com/awilliam/linux-vfio/commits/vfio-unmap-mapping-range Thanks, Alex