We know, at I/O submission time, whether a write is to be waited upon.
That's in writeback_control.sync_mode.
That, combined with an assumption that "all reads are synchronous" would
allow the outgoing BIOs to be appropriately tagged.
It's still approximate. An exact solution would involve only marking I/O as
synchronous when some process actually waits on its completion. I do not
believe that all the extra lookup and locking infrastructure and storage
which this would require is justified. Certainly not in a first iteration.
The Rice Uni researchers did implement controls which attempted to learn IO
submission patterns on a per-process basis, and I believe these were also
used to avoid undesirable starvations. We have only briefly played with
process-aware logic.
The first thing to do is to get the anticipatory scheduler working properly.
Nick has been tied down for a week chasing generic bugs in the request layer.
He seems to have nailed the important ones now.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/