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 -- 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