Re: block CFQ: avoid moving request to different queue

From: Jens Axboe
Date: Tue Nov 06 2012 - 06:39:36 EST


On 2012-11-06 12:34, Shaohua Li wrote:
> request is queued in cfqq->fifo list. Looks it's possible we are
> moving a request from one cfqq to another in request merge case. In
> such case, adjusting the fifo list order doesn't make sense and is
> impossible if we don't iterate the whole fifo list.
>
> My test does hit one case the two cfqq are different, but didn't cause
> kernel crash, maybe it's because fifo list isn't used frequently.
> Anyway, from the code logic, this is buggy.

Good find!! Usually we never merge between cfqq's as our lookup basis is
the cfqq. And yes, the fifo generally isn't used a lot, it's only a
fallback measure to prevent inter-cfqq unfairness.

Applied to for-3.8/core.

And lets re-enable the recursive merging, please do send a patch for
that too.

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