Re: [PATCHSET] Add support for simplified async direct-io
From: Jens Axboe <axboe@kernel.dk>
Date: 2016-11-17 03:44:35
On 11/16/2016 01:51 PM, Jens Axboe wrote:
On 11/16/2016 01:36 PM, Jens Axboe wrote:quoted
On 11/16/2016 01:02 PM, Jens Axboe wrote:quoted
On 11/16/2016 10:16 AM, Christoph Hellwig wrote:quoted
I've pushed out a new version of my code that avoids atomic ops for the single bio case: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/new-dio I think we should take your extension of the existing __blkdev_direct_IO_simple to kmalloc up to BIO_MAX_PAGES and then use the above implementation for AIO and large synchronous I/O. I think I can also kill of blkdev_dio_pool by simply using bio_kmalloc as we're only doing the allocation at the beginning of the call, but I'd like to agree on an approach before spending too much time on it.I'm fine with this approach, but I would still REALLY like to see blkdev_bio_end_io() split in two, once for sync and once for async. That would be a lot cleaner, imho. Let me know how you want to do it. I added SYNC support for mine here, the branch is here: http://git.kernel.dk/cgit/linux-block/log/?h=for-4.10/dioAttaching two patches here that add the BIO_MAX_PAGES extension, and the SYNC support for your branch. Latter is untested... You can add my reviewed-by to: 7bed5be4f28cc86e3929c0c0fbba24ca0344f36c 57c2cf5c2595c0054855d7402d3796b5924fd05c I'd like to get this in for 4.10.Tested the cache flush part, seems to work fine as well for both sync and async O_DIRECT.
Updated the last patch, since it had both a typo in the subject line and some duplicated code after I added the dio_should_flush_cache() helper. Top two patches here: http://git.kernel.dk/cgit/linux-block/log/?h=for-4.10/hch-dio which is on top of your dio branch. -- Jens Axboe