On 11/16/2016 01:36 PM, Jens Axboe wrote:
On 11/16/2016 01:02 PM, Jens Axboe wrote:
On 11/16/2016 10:16 AM, Christoph Hellwig wrote:
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/dio
Attaching 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.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html