[PATCH RFC 0/2] Convert from bio-based to blk-mq

From: Matias BjÃrling
Date: Tue Oct 08 2013 - 05:35:21 EST


These patches are against the "new-queue" branch in Axboe's repo:

git://git.kernel.dk/linux-block.git

The nvme driver implements itself as a bio-based driver. This primarily because
of high lock congestion for high-performance nvm devices. To remove the
congestion, a multi-queue block layer is being implemented.

These patches enable mq within the nvme driver. The first patch is a simple
blkmq fix. While the second implements the beginning of the nvme mq support.

Outstanding work:

* Use reserved tags for admin queue. Should this be implemented as an admin
queue within mq?
* Move cmdid into blk mq and use request tagging.
* Notify mq of nvme device stripe size.
* Let mq know and handle BIOVEC_NOT_VIRT_MERGEABLE.

I crave some feedback on whether it's on the right path, before I break the bio
path apart and put it together again.

Matias BjÃrling (2):
blk-mq: call exit_hctx on hw queue teardown
NVMe: rfc blk-mq support

block/blk-mq.c | 2 +
drivers/block/nvme-core.c | 404 +++++++++++++++++-----------------------------
include/linux/nvme.h | 3 +-
3 files changed, 155 insertions(+), 254 deletions(-)

--
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/