Eh, no I didn't.
At least on the work load I'm interest in, SpecFS v2.0 over NFSv3,
removing the KM_BOUNCE_WRITE results in a performance drop (confirmed
today).
It is often the case that when it comes time to write a page out it has
lost any mapping it had when it was made dirty via a write(), so there is
no side benefit of using a straight kmap().
By having KM_BOUNCE_WRITE we don't run through the "normal" mapping
space on I/O. Not having KM_BOUNCE_WRITE causing extra shootdowns, which
_are_ expensive, as the code needs to busy-wait for all the other engines
(while the kmap_lock held - and on a 4-way there is a good chance one of
the processors is running with interrupts disabled).
KM_BOUNCE_WRITE may waste virtual address-space, but it saves on
expensive shootdowns.
Mark
-
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/