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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/