qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Fiona Ebner <f.ebner@proxmox.com>
Cc: qemu-devel@nongnu.org, thuth@redhat.com, lvivier@redhat.com,
	pbonzini@redhat.com, srowe@mose.org.uk, mike.maslenkin@gmail.com,
	qemu-block@nongnu.org, t.lamprecht@proxmox.com,
	a.lauterer@proxmox.com,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [POC 2/2] add test exposing AHCI reset issue
Date: Mon, 4 Sep 2023 11:26:30 +0200	[thread overview]
Message-ID: <ZPWixrdk1z4vHWTm@redhat.com> (raw)
In-Reply-To: <dec39419-cecf-ce7f-2b8c-af47575f80f2@proxmox.com>

Am 25.08.2023 um 12:17 hat Fiona Ebner geschrieben:
> Am 24.08.23 um 15:38 schrieb Fiona Ebner:
> > Fails without the previous commit "hw/ide: reset: cancel async DMA
> > operation before reseting state".
> > 
> > I haven't ever written such a test before, but I wanted something to
> > expose the problem more easily. It hardcodes the behavior that the
> > pending write actually is done during reset, which might not be ideal.
> > It could just check that the first sector is still intact instead.
> > 
> > If I should make this a proper test, I'd be happy about some guidance,
> > but not sure if required for such a specific one-off issue. After all,
> > a different variation of the bug might have written to some other
> > sector not covered by this test.
> > 
> 
> While trying to turn it into a proper test with Philippe's and Thomas's
> suggestions, I wanted to add a comment about the buffer size. So I tried
> figuring out what the "magic" value is. At the very beginning, I had
> tried 4 KiB, but then the callback wouldn't be pending, so I just picked
> 512 KiB for my proof-of-concept. It turns out to be racy though, and
> with a buffer size of 64 KiB, it is flaky whether or not the callback is
> still pending on my system. Should I just pick a large enough buffer
> size (maybe 4 MiB) and hope for the best?

If the problem is that the request may complete too fast, have you tried
using I/O throttling? This is a common approach in qemu-iotests.

Note however that a single big request won't be throttled. If you exceed
the limit, it's only the next request that has to wait until we made up
for the previous one. So you'll want to set the limit below the request
size of a first request (so that we do get some delay), but not much
lower (to avoid having to wait for too long), and then send the second
request that should be delayed for a bit.

Kevin



  reply	other threads:[~2023-09-04  9:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-24 13:38 [PATCH 1/2] hw/ide: reset: cancel async DMA operation before reseting state Fiona Ebner
2023-08-24 13:38 ` [POC 2/2] add test exposing AHCI reset issue Fiona Ebner
2023-08-24 15:09   ` Philippe Mathieu-Daudé
2023-08-24 15:52   ` Thomas Huth
2023-08-25 10:17   ` Fiona Ebner
2023-09-04  9:26     ` Kevin Wolf [this message]
2023-08-24 15:07 ` [PATCH 1/2] hw/ide: reset: cancel async DMA operation before reseting state Philippe Mathieu-Daudé

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=ZPWixrdk1z4vHWTm@redhat.com \
    --to=kwolf@redhat.com \
    --cc=a.lauterer@proxmox.com \
    --cc=f.ebner@proxmox.com \
    --cc=lvivier@redhat.com \
    --cc=mike.maslenkin@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=srowe@mose.org.uk \
    --cc=t.lamprecht@proxmox.com \
    --cc=thuth@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).