From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AD3FC31E46 for ; Wed, 12 Jun 2019 22:11:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7106720896 for ; Wed, 12 Jun 2019 22:11:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7106720896 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35384 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbBTJ-00086V-MA for qemu-devel@archiver.kernel.org; Wed, 12 Jun 2019 18:11:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44725) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbBQT-0005nP-PH for qemu-devel@nongnu.org; Wed, 12 Jun 2019 18:09:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hbBQR-0006Xx-Ln for qemu-devel@nongnu.org; Wed, 12 Jun 2019 18:09:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44928) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hbBQL-0006R3-PD; Wed, 12 Jun 2019 18:08:53 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7BC4E6EB81; Wed, 12 Jun 2019 22:08:41 +0000 (UTC) Received: from localhost (unknown [10.40.205.72]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0CD41608A6; Wed, 12 Jun 2019 22:08:40 +0000 (UTC) From: Max Reitz To: qemu-block@nongnu.org Date: Thu, 13 Jun 2019 00:08:37 +0200 Message-Id: <20190612220839.1374-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 12 Jun 2019 22:08:41 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 0/2] vl: Drain before (block) job cancel when quitting X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Paolo Bonzini , qemu-devel@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" 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(-) --=20 2.21.0