Re: per-cpu blk_plug_list

From: Andrew Morton
Date: Mon Mar 01 2004 - 17:32:08 EST


Andrew Morton <akpm@xxxxxxxx> wrote:
>
> @@ -1251,6 +1251,9 @@ void blk_run_queues(void)
> {
> LIST_HEAD(local_plug_list);
>
> + if (list_empty(&blk_plug_list))
> + return;
> +

hmm, no, that won't help. There will always be at least one plugged disk.

Perhaps what we need here is a per-task container of "queues which I have
plugged". Or, more accurately, "queues which need to be unplugged so that
I can complete". It'll get tricky because in some situations a task can
need unplugging of a queue which it did not plug, and even a queue to which
it did not submit any I/O.

You should try just nuking the whole plugging scheme, btw. Stick a bunch
of `return' statements at the top of all the plugging functions. I bet
that would run nicely...

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