Bug 1025138

Summary: Read/Randread/Randrw performance regression
Product: Red Hat Enterprise Linux 7 Reporter: Xiaomei Gao <xigao>
Component: qemu-kvmAssignee: Fam Zheng <famz>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: high    
Version: 7.0CC: acathrow, areis, bsarathy, hhuang, juzhang, kwolf, michen, mkenneth, qzhang, stefanha, virt-maint, wquan, xigao
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.3-20.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1022548 Environment:
Last Closed: 2014-06-13 13:07:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1022548    
Bug Blocks: 1028252    

Comment 1 Xiaomei Gao 2013-10-31 06:07:03 UTC
The issue can be reproduced on RHEL7 version. Downgrade my qemu-kvm version and found the regression was introduced on qemu-kvm-1.5.3-7.el7 which has the following patch:
- kvm-block-Produce-zeros-when-protocols-reading-beyond-en.patch [bz#1007226]

Test Steps:
1.Create a data disk on Netapp NFS server
   # mount -t nfs -o rw,bg,hard,nointr,rsize=65536,wsize=65536,tcp,noac,vers=3,timeo=600  192.168.0.113:/vol/s2wquan116171nfs /home/kvm_autotest_root/images
   # qemu-img create -f raw /home/kvm_autotest_root/images/storage2.raw 40G

2.Boot guest with data disk
  /usr/libexec/qemu-kvm  \
    -name 'virt-tests-vm1' \
    -nodefaults \
    -drive file='/home/kvm_autotest_root/images/RHEL-Server-6.5-64.raw',index=0,if=none,id=drive-virtio-disk1,media=disk,cache=none,snapshot=off,format=raw,aio=threads \
    -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,bootindex=0 \
    -drive file='/home/kvm_autotest_root/images/storage2.raw',index=2,if=none,id=drive-virtio-disk2,media=disk,cache=none,snapshot=off,format=raw,aio=threads \
    -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,bootindex=1 \
    -device virtio-net-pci,netdev=idqUIcQC,mac='9a:37:37:37:37:9e',bus=pci.0,addr=0x6,id='idT1SAVS' \
    -netdev tap,id=idqUIcQC,vhost=on \
    -m 4096 \
    -smp 2,maxcpus=2,cores=1,threads=1,sockets=2 \
    -cpu 'Westmere' \
    -M rhel6.5.0 \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
    -vnc :0 \
    -vga cirrus \
    -rtc base=utc,clock=host,driftfix=slew  \
    -boot order=cdn,once=c,menu=off   \
    -no-kvm-pit-reinjection \
    -device sga \
    -enable-kvm

3. In guest
   # i=`/bin/ls /dev/[vs]db` &&  mkfs.ext4 $i -F > /dev/null; partprobe; umount /mnt; mount $i /mnt && echo 3 > /proc/sys/vm/drop_caches && sleep 3
   # fio --rw=read --bs=4k --iodepth=1 --runtime=1m --direct=1 --filename=/mnt/read_4k_1 --name=job1 --ioengine=libaio --thread --group_reporting --numjobs=16 --size=512MB --time_based --ioscheduler=deadline 

4. Test Results:
qemu-kvm-1.5.3-10.el7 --- bad
bw=24247KB/s, iops=6061

qemu-kvm-1.5.3-6.el7  --- good
bw=60174KB/s, iops=15043

qemu-kvm-1.5.3-7.el7  --- bad
bw=20697KB/s, iops=5174

Comment 4 Miroslav Rezanina 2013-11-28 07:35:32 UTC
Fix included in qemu-kvm-1.5.3-20.el7

Comment 8 Ludek Smid 2014-06-13 13:07:02 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.