qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Important] Query regarding bdrv_co_discard


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [Important] Query regarding bdrv_co_discard
Date: Wed, 17 Sep 2014 12:20:19 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

On Thu, Sep 11, 2014 at 01:53:49AM -0700, Sanjay Kumar2 wrote:
> 1.  With my new network based disk protocol, if I use 'raw' format, then it 
> is working perfectly. But, when I am using 'qcow2' format, then is it causing 
> issue. After debugging I found that it is returning because 
> bdrv_get_geometry() is returning 0 in case of format='qcow2'. Below is the 
> qemu args for the same. Please let me know what I am missing here.
> 
> LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none 
> /usr/libexec/qemu-kvm -name centos-6.5-vm1 -S -M rhel6.5.0 -enable-kvm -m 
> 2048 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 
> daec3cd9-d8b1-f01c-ba84-352da7f691f1 -nodefconfig -nodefaults -chardev 
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/centos-6.5-vm1.monitor,server,nowait
>  -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown 
> -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive 
> file=/tmp/centos-6.5.qcow2-vm1,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native
>  -device 
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
>  -drive 
> file=oflame://192.168.122.77:5678/openflame/vDisk001,if=none,id=drive-virtio-disk1,format=qcow2,cache=none,aio=native
>  -device 
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk1,id=virtio-disk1
>  -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device 
> ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev 
> tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device 
> virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:0f:f4:34,bus=pci.0,addr=0x3
>  -chardev pty,id=charserial0 -device 
> isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 
> 0.0.0.0:0 -vga cirrus -device 
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

The following test works with qemu.git:

  # Serve pre-installed qcow2 disk image over NBD.  Note that we tell
  # qemu-nbd it is a raw file so that qemu-nbd does not interpret the
  # file contents.
  qemu-nbd -t -p 1234 -f raw test.qcow2

  $ qemu-system-x86_64 -enable-kvm -cpu host -m 1024 \
        -drive if=none,cache=none,file=nbd://localhost:1234,\
               format=qcow2,id=drive0 \
        -device virtio-blk-pci,drive=drive0

The guest boots up successfully.

This suggests either your block driver is buggy or you need to rebase
onto qemu.git/master for it to work.

If you would like help debugging then please rebase onto qemu.git/master
and post a git URL where we can see the code.

> 2. The qemu-kvm is starting with below arguments with virtio-scsi. I am not 
> able to see the TRIM in hdparm output of the device. Also, this is working 
> with raw format only, not with qcow2 format.
> 
> LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none 
> /usr/libexec/qemu-kvm -name centos-6.5-vm1 -S -M rhel6.5.0 -enable-kvm -m 
> 2048 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 
> daec3cd9-d8b1-f01c-ba84-352da7f691f1 -nodefconfig -nodefaults -chardev 
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/centos-6.5-vm1.monitor,server,nowait
>  -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown 
> -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device 
> virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6 -device 
> virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x7 -drive 
> file=/tmp/centos-6.5.qcow2-vm1,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native
>  -device 
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
>  -drive 
> file=oflame://10.209.133.163:5678/openflame/vDisk001,if=none,id=drive-scsi1-0-0-0,format=raw,cache=none,aio=native
>  -device 
> scsi-hd,bus=scsi1.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi1-0-0-0,id=scsi1-0-0-0
>  -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device 
> ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev 
> tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device 
> virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:0f:f4:34,bus=pci.0,addr=0x3
>  -chardev pty,id=charserial0 -device 
> isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 
> 0.0.0.0:0 -vga cirrus -device 
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

Try again with qemu.git/master.  Note this command-line is missing
-drive ...,discard=unmap so it will not pass discard requests to the
host.

I'm also not sure whether hdparm is the right tool.  This is a SCSI disk
whereas hdparm is intended for ATA disks.  Perhaps the ioctls are wired
up so it works fine for SCSI disks but you should use sdparm for
SCSI-specific stuff.

Attachment: pgpaHjtKUiBHE.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]