On Tue, Aug 10, 2021 at 09:51:07AM +0100, Christoph Hellwig wrote: > On Fri, Aug 06, 2021 at 02:17:45PM -0600, Alex Williamson wrote: > > > Now that this is simplified so much, I wonder if we can drop the > > > memory_lock and just use the dev_set->lock? > > > > > > That avoids the whole down_write_trylock thing and makes it much more > > > understandable? > > > > Hmm, that would make this case a lot easier, but using a mutex, > > potentially shared across multiple devices, taken on every non-mmap > > read/write doesn't really feel like a good trade-off when we're > > currently using a per device rwsem to retain concurrency here. Thanks, > > Using a per-set percpu_rw_semaphore might be a good plan here. Probably > makes sense to do that incrementally after this change, though. I'm not sure there is a real performance win to chase here? Doesn't this only protect mmap against reset? The mmap isn't performance sensitive, right? If this really needs extra optimization adding a rwsem to the devset and using that across the whole set would surely be sufficient. Jason