On 3/15/19 7:34 PM, Linus Torvalds wrote: > On Fri, Mar 15, 2019 at 9:27 AM Jens Axboe <axboe@xxxxxxxxx> wrote: >> >> Linus, curious on your opinion on this one. I had this as part of the >> original series, but removed it from the pull request due to the >> mincore etc discussions. > > I'd rather not have new ways to leak cache information, and in fact > already the IOCB_NOWAIT is a bit questionable for that. But afaik, the > non-O_DIRECT paths don't even support it to begin with for some > filesystems. For the most popular it works fine, though. For buffered async IO it'd be nice to have it be fully reliable, so we can ensure we punt when we have to. Currently for writes, we just ignore it and punt to async, since it doesn't work at all there. The latter should be fixable. On the hint, I hear ya, that's what I figured. I'll drop the patch for now. > Wasn't the whole point of this io_ring that we'd move *away* from > direct block access and O_DIRECT? > > I'm seeing a lot of stuff that looks like just "more of the same old > O_DIRECT garbage" that seems to be all about thinking that IO doesn't > cache. > > Haven't we gotten over that already? It was one of the arguments you > used for io_ring to begin with. There are still folks that use it, even if O_DIRECT is nasty. If you want to get peak performance, there's no way around it. That doesn't mean that io_uring is in any way centered around O_DIRECT at all, it isn't. At its core, it's "just" an efficient delivery mechanism for submissions and completions. Not sure what "stuff" you are referring to, the patches in this short series? That's not centered around block devices at all, works just fine for files. The bvec iterator is what io_uring uses for fixed buffers, it's not exclusive to block devices at all. -- Jens Axboe