Re: cgq vs bdi names, was "cfq-iosched: fix a kernel OOPs when usbkey is inserted"

From: Jens Axboe
Date: Mon Sep 20 2010 - 09:12:45 EST


On 2010-09-20 15:03, Christoph Hellwig wrote:
> Hi Vivek, hi Jens,
>
> where was http://git.kernel.dk/?p=linux-2.6-block.git;a=commitdiff_plain;h=44c74d6292e97f8bd9adfa6b0df3cb4f3c42a6dc posted on the mailinglist?
>
> I can't find it in my lkml or fsdevel inboxes. Either way I don't think
> just papering over the underlying issue like this is a good idea.
>
> The big issue is that cfq tries to scanf the textual representation of
> the dev_t from the request_queue by abusing the bdi. But the reason why
> we don't have a dev_t in the request_queue is that it's still not
> unique. If it was we could easily add a dev_t into the request_queue
> and be done with it.
>
> So the fix is either to get rid of the last remaining users of shared
> request_queues (IIRC the various floppy drivers) and just add a dev_t
> in the request_queue for the bdi, tracing and cfq, or add a dev_t into
> the request_queue and add a flag for shared request queues that the
> floppy driver and whoever needs it set and let the bdi sysfs code, cfq
> and blocktrace ignore theis request_queue. This will also allow to
> get rid of the crap about ignoring failures due to already register
> or prematurely unregistered bdis and actually add real error handling
> to that code.

I did this one 15 months ago (according to git), but I never got it
tested:

http://git.kernel.dk/?p=linux-2.6-block.git;a=commitdiff;h=7a0ebc7ea1db42a71841df6a15be9fd420fae980

IIRC, the mtd stuff also uses a shared queue. But I think that is it.
Would indeed be VERY nice to finally get rid of that crap, it has
technically been outlawed since 2.5.1.

--
Jens Axboe

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