On 05/26/2010 10:40 AM, Aurelien Jarno wrote:
I highly doubt that this is even visible on benchmarks without using
KVM. The improvement on a microbenchmark was relatively small and the
cost from TCG would almost certainly dwarf it.
It is something clearly visible. Before fsync() was not used, and it
happens this syscall can be very expensive (ie a few seconds, especially
with some other i/o load on the system) on ext3 with not so old kernels.
A google search for "firefox fsync" will give you a few pointers.
I'm well aware. I've asked multiple times for benchmark data with ext3
because of this issue. So far, it hasn't been noticable.
Also, remember before KVM, we had single threaded IO and posix-aio
(which is still single threaded). If KVM never happened, block
performance would be far, far worse than it is today with cache=writeback.
io thread is not enable by default in QEMU.
But the thread pool based aio implementation is always enabled
regardless of io thread. I was going to build and run 0.9.1 to do a
benchmark of TCG comparing that to the latest git, but I don't have an
easy way to get a version of gcc-3. I've forgotten how annoying that
used to be :-)
I would be very surprised if TCG + IDE had any observable performance
difference pre/post the ide flush implementation. I'm almost inclined
to suggestion that flush controls should be a qdev property verses a
drive property since that's really where the change happened.
Regards,
Anthony Liguori