From: Paolo Bonzini <pbonzini@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: stefano.stabellini@eu.citrix.com,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Heiko Rommel" <rommel@suse.com>,
qemu-devel@nongnu.org, "Bruce Rogers" <brogers@suse.com>,
"Gonglei (Arei)" <arei.gonglei@huawei.com>,
qemu-stable <qemu-stable@nongnu.org>,
"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH] ide: Set BSY bit during FLUSH
Date: Tue, 28 May 2013 11:48:26 +0200 [thread overview]
Message-ID: <51A47D6A.5040105@redhat.com> (raw)
In-Reply-To: <20130528093602.GB5642@dhcp-200-207.str.redhat.com>
Il 28/05/2013 11:36, Kevin Wolf ha scritto:
> Am 28.05.2013 um 11:24 hat Paolo Bonzini geschrieben:
>> Il 28/05/2013 11:18, Kevin Wolf ha scritto:
>>>>> The other part why I haven't sent a fix yet is that I don't have a test
>>>>> case for it.
>>>>
>>>> Temporarily add a sleep(31) in qemu_fdatasync()?
>>>>
>>>> I was lazy in testing with -snapshot to not corrupt my disk image, which
>>>> would not trigger the same issue since qcow2-backed AFAIU.
>>>>
>>>>> I guess I need to extend blkdebug first before this can be
>>>>> reliably tested by qtest.
>>>>
>>>> It can't, since it's not a pure device emulation issue but depends on
>>>> the relative timing of filesystem operations and subsequent commands.
>>>
>>> That's why you need to take influence on the timing. It's no excuse for
>>> merging without a test case. If we only ever tested devices that have no
>>> relation to the outside world, our testing would be pretty useless and
>>> always stay as bad as it is today in many areas.
>>
>> I don't think the qtest would be timing dependent. The Linux testcase
>> is timing dependent, but for the qtest all you need to check is "is BUSY
>> set during a flush?". This can be done with blkdebug suspend/resume,
>> except that there is no way to call bdrv_debug_resume from QEMU.
>
> That's exactly what I was talking about, suspending a request is taking
> influence on its timing. I'm looking into this right now. (And it's not
> just resume, bdrv_debug_suspend can't be called from QEMU either)
It can be called from the rules file though, can't it?
> In fact, I'm checking whether we can have a monitor command to issue
> qemu-io commands, which will be more generally useful for test cases. We
> just need to make obvious that it doesn't become an ABI. Maybe prefix it
> with "__org.qemu.debug-" or something like that.
Makes sense. I'm not sure why you'd want to read or write from
testcases, but bdrv_drain(_all) can also be useful from testcases.
Paolo
next prev parent reply other threads:[~2013-05-28 9:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-28 8:18 [Qemu-devel] [PATCH] ide: Set BSY bit during FLUSH Andreas Färber
2013-05-28 8:27 ` Kevin Wolf
2013-05-28 8:46 ` Andreas Färber
2013-05-28 9:18 ` Kevin Wolf
2013-05-28 9:24 ` Paolo Bonzini
2013-05-28 9:36 ` Kevin Wolf
2013-05-28 9:48 ` Paolo Bonzini [this message]
2013-05-28 9:59 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51A47D6A.5040105@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=arei.gonglei@huawei.com \
--cc=brogers@suse.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=rommel@suse.com \
--cc=stefanha@gmail.com \
--cc=stefano.stabellini@eu.citrix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.