Messages in this thread | | | Date | Sat, 28 Aug 2004 12:45:19 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] Speed up the cdrw packet writing driver |
| |
Peter Osterlund <petero2@telia.com> wrote: > > Is this a general VM limitation? Has anyone been able to saturate the > write bandwidth of two different block devices at the same time, when > they operate at vastly different speeds (45MB/s vs 5MB/s), and when > the writes are large enough to cause memory pressure?
I haven't explicitly tested the pdflush code in a while, and I never tested on devices with such disparate bandwidth. But it _should_ work.
The basic deign of the pdflush writeback path is:
for ( ; ; ) { for (each superblock) { if (no pdflush thread is working this sb's queue && the superblock's backingdev is not congested) { do some writeout, up to congestion, trying to not block on request queue exhaustion } } blk_congestion_wait() }
So it basically spins around all the queues keeping them full in a non-blocking manner.
There _are_ times when pdflush will accidentally block. Say, doing a metadata read. In that case other pdflush instances will keep other queues busy.
I tested it up to 12 disks. Works OK. - 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/
| |