On Mon, Nov 2, 2020 at 8:29 AM Christoph Hellwig hch@infradead.org wrote:
Ok I looked at the mmu notifier locking again and noticed that mm->subscriptions has its own spinlock. Since there usually shouldn't be a huge pile of these I think it's feasible to check for the mmu notifier in follow_pfn. And that would stuff this gap for good. I'll throw that on top as a final patch and see what people think. -Daniel
On Mon, Nov 2, 2020 at 2:01 PM Jason Gunthorpe jgg@ziepe.ca wrote:
lockdep feels wrong, was locking more at CONFIG_DEBUG_VM. And since generally you only have 1 mmu notifier (especially for kvm) I think we can also pay the 2nd cacheline miss and actually check the right mmu notifier is registered. -Daniel
On Mon, Nov 02, 2020 at 02:23:58PM +0100, Daniel Vetter wrote:
Need to hold the lock to check that and there are two ways to register notifiers these days, so it feels to expensive to me.
CH's 'export symbol only for kvm' really does seem the most robust way to handle this though.
Jason
On Mon, Nov 2, 2020 at 4:52 PM Jason Gunthorpe jgg@ziepe.ca wrote:
Uh I mixed stuff up all along, struct mmu_notifier *subcription that all the mmu notifier users use has the ->mm pointer we want right there. That's good enough I think.
Now I'm kinda lost in kvm code trying to wire it through, but it's looking ok-ish thus far :-) -Daniel
dri-devel@lists.freedesktop.org