qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] [PATCH 0/2] vl: Drain before (block) job cancel when quitting
Date: Thu, 13 Jun 2019 00:08:37 +0200	[thread overview]
Message-ID: <20190612220839.1374-1-mreitz@redhat.com> (raw)

Quitting qemu should lead to qemu exiting pretty much immediately.  That
means if you have a block job running on a throttled block node, the
node should ignore its throttling and the job should be cancelled
immediately.

Unfortunately, that is not what happens.  Currently, the node will be
drained (with a bdrv_drain_all()), and then again unquiesced (because
bdrv_drain_all() ends).  Then, the block job is cancelled; but at this
point, the node is no longer drained, so it will block, as it befits a
throttling node.

To fix this issue, we have to keep all nodes drained while we cancel all
block jobs when quitting qemu.  This will make the throttle node ignore
its throttling and thus let the block job cancel immediately.


Max Reitz (2):
  vl: Drain before (block) job cancel when quitting
  iotests: Test quitting with job on throttled node

 vl.c                       | 11 ++++++++
 tests/qemu-iotests/218     | 55 ++++++++++++++++++++++++++++++++++++--
 tests/qemu-iotests/218.out |  4 +++
 3 files changed, 68 insertions(+), 2 deletions(-)

-- 
2.21.0



             reply	other threads:[~2019-06-12 22:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-12 22:08 Max Reitz [this message]
2019-06-12 22:08 ` [Qemu-devel] [PATCH 1/2] vl: Drain before (block) job cancel when quitting Max Reitz
     [not found]   ` <b110b753-8546-0d34-f6ef-06c5726766ce@virtuozzo.com>
     [not found]     ` <c1fbf12a-77af-d939-4266-67b822e5a923@redhat.com>
     [not found]       ` <57ae7f82-ae02-a382-74f6-cb96672b2058@virtuozzo.com>
2019-06-13 16:03         ` Max Reitz
2019-06-14  9:22           ` Vladimir Sementsov-Ogievskiy
2019-06-19 19:40             ` Max Reitz
2019-07-16  7:00               ` Philippe Mathieu-Daudé
2019-06-12 22:08 ` [Qemu-devel] [PATCH 2/2] iotests: Test quitting with job on throttled node Max Reitz
2019-06-12 22:31 ` [Qemu-devel] [PATCH 0/2] vl: Drain before (block) job cancel when quitting Max Reitz
2019-07-19 13:26 ` 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=20190612220839.1374-1-mreitz@redhat.com \
    --to=mreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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).