qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] New Guess OS Creation Problem


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] New Guess OS Creation Problem
Date: Mon, 12 Dec 2011 15:33:35 +0000

On Mon, Dec 12, 2011 at 3:19 PM, takizo <address@hidden> wrote:
>
> On Dec 12, 2011, at 11:08 PM, Stefan Hajnoczi wrote:
>
>> On Mon, Dec 12, 2011 at 2:50 PM, takizo <address@hidden> wrote:
>>>
>>> On Dec 12, 2011, at 6:56 PM, Stefan Hajnoczi wrote:
>>>
>>>> On Sun, Dec 11, 2011 at 4:40 PM, takizo <address@hidden> wrote:
>>>>> LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none 
>>>>> /usr/libexec/qemu-kvm -S -M rhel6.1.0 -enable-kvm -m 4096 -smp 
>>>>> 1,sockets=1,cores=1,threads=1 -name database -uuid 
>>>>> f3e9f320-7826-7e50-94bb-1833f7fd9dfb -nodefconfig -nodefaults -chardev 
>>>>> socket,id=charmonitor,path=/var/lib/libvirt/qemu/database.monitor,server,nowait
>>>>>  -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc 
>>>>> -no-reboot -drive 
>>>>> file=/opt/cibai/database,if=none,id=drive-ide0-0-0,format=raw,cache=none,aio=threads
>>>>>  -device 
>>>>> ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 
>>>>> -drive 
>>>>> file=/opt/ISO-Download/FreeBSD-8.2-RELEASE-amd64-disc1.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,aio=threads
>>>>>  -device 
>>>>> ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 
>>>>> -netdev tap,fd=22,id=hostnet0 -device 
>>>>> e1000,netdev=hostnet0,id=net0,mac=52:54:00:77:a5:a6,bus=pci.0,addr=0x3 
>>>>> -chardev pty,id=charserial0 -device 
>>>>> isa-serial,chardev=charserial0,id=serial0 -usb -vnc 127.0.0.1:2,password 
>>>>> -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
>>>>> char device redirected to /dev/pts/6
>>>>> Using CPU model "cpu64-rhel6"
>>>>>
>>>>> block I/O error in device 'drive-ide0-0-0': Invalid argument (22)
>>>>
>>>> Is /opt/cibai/database on a special filesystem or exotic storage setup?
>>>>
>>>> Please check dmesg on the host for any kernel messages regarding I/O 
>>>> errors.
>>>>
>>>> Please try reading the file on the host to check whether the I/O error
>>>> is happening on the host and not related to KVM:
>>>>
>>>> $ dd if=/opt/cibai/database of=/dev/null iflag=direct
>>>>
>>>> Stefan
>>>
>>> Hi Stefan,
>>>
>>> When I quit the installation, further see the error messages
>>>
>>> ide_dma_cancel: aiocb still pendingide_dma_cancel: BM_STATUS_DMAING still 
>>> pendingide_dma_cancel: aiocb still pendingide_dma_cancel: BM_STATUS_DMAING 
>>> still pendingide_dma_cancel: aiocb still pendingide_dma_cancel: 
>>> BM_STATUS_DMAING still pendingide_dma_cancel: aiocb still 
>>> pendingide_dma_cancel: BM_STATUS_DMAING still pendingide_dma_cancel: aiocb 
>>> still pendingide_dma_cancel: BM_STATUS_DMAING still pendingide_dma_cancel: 
>>> aiocb still pendingide_dma_cancel: BM_STATUS_DMAING still pending2011-12-12 
>>> 22:47:51.427: shutting down
>>>
>
> Hi Stefan
>
>> Okay, so if I understand correctly you have CentOS 6.1 host running
>> FreeBSD and CentOS guest installs to emulated IDE drives.  You're
>> getting failed I/O requests with EINVAL (22).  You have verified that
>> dd if=/opt/vm/database.img of=/dev/null iflag=direct reads the image
>> file without errors.
>
> That is right, both also emulated on IDE drive
>
>>
>> Can you please try the CentOS guest install with a virtio-blk drive
>> instead of IDE?  This should show whether this problem is related to
>> IDE or a general issue in how QEMU accesses the host file.
>
> Took your advice installed Centos on VirtIO drive and it's ok.
>
> Does it means it's IDE problem on the OS itself?

The physical drive in your machine is probably fine.  QEMU emulates an
IDE controller and disks for the guest.  It looks like there is a bug
in the IDE emulation code inside QEMU which leads to these errors.

In general virtio-blk is the recommended storage interface because it
delivers better performance.  I'm not up-to-speed on how stable the
FreeBSD virtio drivers are but I think they are available if you
search.

> 2011-12-12 23:15:06.759: starting up
> LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none 
> /usr/libexec/qemu-kvm -S -M rhel6.1.0 -enable-kvm -m 1024 -smp 
> 1,sockets=1,cores=1,threads=1 -name centos -uuid 
> 0752c74e-1d51-d529-f66f-8df9a28670ed -nodefconfig -nodefaults -chardev 
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/centos.monitor,server,nowait 
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot 
> -drive 
> file=/opt/vm/centos.img,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=threads
>  -device 
> virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2
>  -drive 
> file=/opt/ISO-Download/CentOS-6.0-x86_64-minimal.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,aio=threads
>  -device 
> ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 
> -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=26 -device 
> virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:10:bc:5d,bus=pci.0,addr=0x3
>  -chardev pty,id=charserial0 -device 
> isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 
> -vnc 127.0.0.1:3,password -vga cirrus -device 
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> char device redirected to /dev/pts/9
> Using CPU model "cpu64-rhel6"

At this stage of debugging I would try enabling SystemTap probes in
QEMU related to block I/O.  This produces a detailed log of what is
happening inside QEMU.

strace -f -p $PID_OF_QEMU might also reveal how the I/O is failing.

Finally, gdb could be of use.

I'm not sure how familiar or easy it is for you to try these so let's
see if Kevin or someone else has other ideas before getting into the
nitty-gritty of finding out why you get EINVAL (22).

Stefan



reply via email to

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