Re: [Regression x2, 3.13-git] virtio block mq hang, iostat busted onvirtio devices

From: Christoph Hellwig
Date: Tue Nov 19 2013 - 05:36:41 EST


On Tue, Nov 19, 2013 at 07:02:18PM +1100, Dave Chinner wrote:
> I have no idea if it's related to the above hang, but either way
> breaking iostat is a major regression....

Both of them are most likely due to the conversion of virtio_blk
to the blk-mq code.

I've not seen the hang in my heavy xfstests testing, but that was a
slightly different codebase than what finally got in, so I'll try
to reproduce it once I get some spare QA cycles.

The missing stats should be solved by something like the patch below
(untested so far):


diff --git a/block/blk-mq.c b/block/blk-mq.c
index 862f458..41e3b85 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -175,7 +175,7 @@ static void blk_mq_rq_ctx_init(struct blk_mq_ctx *ctx, struct request *rq,
unsigned int rw_flags)
{
rq->mq_ctx = ctx;
- rq->cmd_flags = rw_flags;
+ rq->cmd_flags = rw_flags | REQ_IO_STAT;
ctx->rq_dispatched[rw_is_sync(rw_flags)]++;
}

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