On Tue, Dec 15, 2020 at 8:08 AM Jens Axboe <axboe@xxxxxxxxx> wrote: > > OK, ran some numbers. The test app benchmarks opening X files, I just > used /usr on my test box. That's 182677 files. To mimic real worldy > kind of setups, 33% of the files can be looked up hot, so LOOKUP_NONBLOCK > will succeed. Perhaps more interestingly, what's the difference between the patchset as posted for just io_uring? IOW, does the synchronous LOOKUP_NONBLOCK actually help? I'm obviously a big believer in the whole "avoid thread setup costs if not necessary", so I'd _expect_ it to help, but maybe the possible extra parallelism is enough to overcome the thread setup and synchronization costs even for a fast cached RCU lookup. (I also suspect the reality is often much closer to 100% cached lookups than just 33%, but who knows - there are things like just concurrent renames that can cause the RCU lookup to fail even if it _was_ cached, so it's not purely about whether things are in the dcache or not). Linus