On 12/11/18 11:53 AM, Matthew Wilcox wrote: > On Tue, Dec 11, 2018 at 11:46:53AM -0700, Jens Axboe wrote: >> On 12/11/18 11:45 AM, Matthew Wilcox wrote: >>> I think we need the rcu read lock here to prevent ctx from being freed >>> under us by free_ioctx(). >> >> Then that begs the question, how about __xa_load() that is already called >> under RCU read lock? > > I've been considering adding it to the API, yes. I was under the > impression that nested rcu_read_lock() calls were not expensive, even > with CONFIG_PREEMPT. They are not expensive, but they are not free either. And if we know we are already under a rcu read lock, it seems pretty pointless. For the two cases (memremap and aio), the rcu read lock is right there, before the call. Easy to verify that it's safe. -- Jens Axboe