Yup. I think the problem here is that sorting only goes on inside the
request queue (at least, it did last time I looked).
With a sync, it'll start at the beginning of the dirty block list, and
start adding things to the request queue. It'll collese and sorts
where possible.
When there are 64 items queued up, it will _stop_ adding until the
disk hardware has cleared a request. This means if you have..
1, 10001, 11000, ..... 64000, 2, 65000, ...., 128000, 3, ...
in the dirty block list, the 1, 2, 3 won't be collesed together
because they're spaced too fair apart.
The 'obvious' solution is to sort the dirty block list, but you'll
need to do it carefully to avoid starvation.
Michael.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/