[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/18] ide: Turn debug messages into assertions
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 05/18] ide: Turn debug messages into assertions |
Date: |
Mon, 06 Jun 2011 17:54:53 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 |
Am 01.06.2011 15:44, schrieb Luiz Capitulino:
> On Thu, 26 May 2011 18:12:08 -0300
> Luiz Capitulino <address@hidden> wrote:
>
>> On Thu, 19 May 2011 14:33:19 +0200
>> Kevin Wolf <address@hidden> wrote:
>>
>>> These printfs aren't really debug messages, but clearly indicate a bug if
>>> they
>>> ever become effective.
>>
>> Then we have a bug somewhere, starting a VM with:
>>
>> # qemu -hda disks/test.img -enable-kvm -m 1G -cdrom /dev/sr0
>>
>> Where the host's CDROM is empty, triggers one of these asserts:
>>
>> qmp-unstable/hw/ide/pci.c:299: bmdma_cmd_writeb: Assertion
>> `bm->bus->dma->aiocb == ((void *)0)'
>
> I found out why this is happening. I'm passing '-snapshot' to the
> command-line,
> sorry for not mentioning it (I forgot I was using my devel alias).
Okay, so I think we have at least two problems here:
* qcow2 doesn't implement bdrv_is_inserted, so the IDE emulation thinks
there is a medium when there isn't. Reading produces only errors.
* This seems to be an error case where bdrv_aio_readv fails
immediately. In this case, qcow2 calls the callback directly, but it
should use a bottom half. This leads to an unexpected state in IDE
and lets the assertion fail.
I think we must fix the latter. Not sure what to do about the former,
it's probably similar to forwarding bdrv_eject().
Kevin
Re: [Qemu-devel] [PATCH 05/18] ide: Turn debug messages into assertions,
Kevin Wolf <=