I have tried your qemu cammand line but got no luck (the embedded os have no virtio support but this is not the problem i think). The problem probably lies in the host kernel version as it is the only difference for my tests. I traced the guest kernel and found the ATA drivers always used non-DMA mode (CentOS 7 and CentOS 6.5 are the same at this point). Yi
-- 发自我的网易邮箱手机智能版 在 2015-06-16 21:05:39,"Stefan Hajnoczi" <stefa...@gmail.com> 写道: >On Mon, Jun 15, 2015 at 09:14:52PM +0800, cauchy-love wrote: >> I am running a embedded OS on Qemu-2.3.0. However I found that the I/O >> performance was quite different for different CentOS release (CentOS 6.5 and >> CentOS 7.0). The CentOS 6.5 uses linux-2.6.32 while the CentOS 7.0 uses >> linux-3.10.0. The I/O throughput (write) of the former (CentOS 6.5) is about >> ten times of that on the latter (CentOS 7.0). All configurations are the >> same except the kernel version. And the command line is as following: >> # qemu-kvm -m 2G -smp 4 -enable-kvm -hda guest.img ... >> The I/O throughput of the host is almost the same for these two different >> kernels, as tested by Iozone tool. Actually, I found that the IO throughput >> degraded significantly since the 3.4 or later kernel version. I also tried >> different qemu versions such as qemu-1.5.3, qemu-2.1.3 but got no >> improvements. > >Please post the iozone command-line you are using and the output. > >Your QEMU command-line uses the IDE storage controller, which is not >optimized for performance. Usually virtio-blk is used when good >performance is required: > > -drive if=virtio,cache=none,format=raw,aio=native,file=guest.img > >The guest OS needs virtio-blk device drivers in order for this to work. > >Stefan
ATT00002.bin
Description: PGP signature