From nobody Thu Nov 6 12:31:53 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=virtuozzo.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1540986025294411.7150980468183; Wed, 31 Oct 2018 04:40:25 -0700 (PDT) Received: from localhost ([::1]:58749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHorI-0008OI-3E for importer@patchew.org; Wed, 31 Oct 2018 07:40:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34606) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHom2-0003Lm-Dl for qemu-devel@nongnu.org; Wed, 31 Oct 2018 07:35:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHolw-0001HZ-9K for qemu-devel@nongnu.org; Wed, 31 Oct 2018 07:34:56 -0400 Received: from mail-he1eur01on0135.outbound.protection.outlook.com ([104.47.0.135]:32158 helo=EUR01-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gHolv-0001F2-Pz; Wed, 31 Oct 2018 07:34:52 -0400 Received: from VI1PR08MB3358.eurprd08.prod.outlook.com (52.134.31.145) by VI1PR08MB3534.eurprd08.prod.outlook.com (20.177.61.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1273.21; Wed, 31 Oct 2018 11:34:48 +0000 Received: from VI1PR08MB3358.eurprd08.prod.outlook.com ([fe80::614e:e2cd:51e1:a19c]) by VI1PR08MB3358.eurprd08.prod.outlook.com ([fe80::614e:e2cd:51e1:a19c%4]) with mapi id 15.20.1273.027; Wed, 31 Oct 2018 11:34:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2+vFrm6AXUDrCekGtpAUWHx9rIQjjDaEjqAAd+aUYsI=; b=RtMCTtXiP5TU7oitrtuqtuMIpUjHTgurUB3czAutsZdlkHNxOl3NfTIe6+guQ+zewVPlGjXrMvZUpqYxLoRMTI//6btTqgPlaX9oZZ/Ki1ojpx+M7CStNRaNCBBlI2Ti4vSDXlUvfOZ8zkQ/RJ/Wm6stpjPJRwOsk4LEAKoFF24= From: Anton Nefedov To: "qemu-devel@nongnu.org" Thread-Topic: [PATCH v5 3/9] block: add empty account cookie type Thread-Index: AQHUcQ26Cth7yg1IKE6Sub97fEUTsQ== Date: Wed, 31 Oct 2018 11:34:48 +0000 Message-ID: <20181031113418.29796-4-anton.nefedov@virtuozzo.com> References: <20181031113418.29796-1-anton.nefedov@virtuozzo.com> In-Reply-To: <20181031113418.29796-1-anton.nefedov@virtuozzo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR05CA0028.eurprd05.prod.outlook.com (2603:10a6:20b:2e::41) To VI1PR08MB3358.eurprd08.prod.outlook.com (2603:10a6:803:3f::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [185.231.240.5] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR08MB3534; 20:UTE/m6yT0IVfer0GHPr3tjYWYFrB91ebXQaBkJno4SE+0luUu+Cj4tMZP/Ah6/P897j3q2nyCTS/jXVBYN/rG7uDwzXbFWzLxxDGsqlntlmyGikgJ4gpEecmqlMNJQy8aeHT+/U9kVNXkEQHsgzz4Hu2Zv5PdJ9vmEwCukeC9RQ= x-ms-office365-filtering-correlation-id: 52100fc9-ab01-431f-80f3-08d63f24db93 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB3534; x-ms-traffictypediagnostic: VI1PR08MB3534: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231382)(944501410)(52105095)(148016)(149066)(150057)(6041310)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:VI1PR08MB3534; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB3534; x-forefront-prvs: 084285FC5C x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(376002)(366004)(396003)(39850400004)(136003)(199004)(189003)(3846002)(99286004)(386003)(52116002)(107886003)(6436002)(6486002)(14444005)(4326008)(186003)(26005)(6506007)(54906003)(2906002)(102836004)(15650500001)(2501003)(5250100002)(14454004)(478600001)(316002)(1076002)(76176011)(256004)(6116002)(7416002)(97736004)(86362001)(25786009)(11346002)(5660300001)(2616005)(36756003)(66066001)(8936002)(81166006)(476003)(44832011)(8676002)(68736007)(6916009)(5640700003)(7736002)(6512007)(305945005)(71200400001)(446003)(71190400001)(2900100001)(2351001)(53936002)(105586002)(106356001)(81156014)(486006); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB3534; H:VI1PR08MB3358.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; received-spf: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: dj//pML/suAil76CJGtEEt7cefm9HLaYIPsrxmfv6Wjc2Sh+xbhNqu3z6w8PIB3c5dhtDDFpP/mxzFzMk9sNshTu0jILbVAOtB1i6V7ne2AbauMJ429AuurzCkYH4AxDpPUDs6c68aymr9EdJ2+r+6t6+VhOUF0CNbiRQraLwtIoxyibNWxg1elvv8Iigsnr7GgHJgpxY8gbSh1H1Fhnf0cmkHaUn+rZM4Hf0UIRkxAbagIfo7IXE+YwQQl47fKJH8/Cl2YSGaWs8Iyrbfs2fGX+a7kGDRjv9o1VeEs8IgWIqrUsZLTPs2/ZllqPMBTheulgpXZibO3Y4m08rs8KCAGF5jyZ38FADuxUTL0aa7Q= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52100fc9-ab01-431f-80f3-08d63f24db93 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2018 11:34:48.0991 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3534 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.0.135 Subject: [Qemu-devel] [PATCH v5 3/9] block: add empty account cookie type X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "kwolf@redhat.com" , Vladimir Sementsov-Ogievskiy , "famz@redhat.com" , Denis Lunev , "qemu-block@nongnu.org" , "armbru@redhat.com" , "mreitz@redhat.com" , "berto@igalia.com" , Anton Nefedov , "pbonzini@redhat.com" , "jsnow@redhat.com" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This adds some protection from accounting unitialized cookie. That is, block_acct_failed/done without previous block_acct_start; in that case, cookie probably holds values from previous operation. (Note: it might also be unitialized holding garbage value and there is still "< BLOCK_MAX_IOTYPE" assertion for that. So block_acct_failed/done without previous block_acct_start should be used with caution.) Currently this is particularly useful in ide code where it's hard to keep track whether the request started accounting or not. For example, trim requests do the accounting separately. Signed-off-by: Anton Nefedov --- include/block/accounting.h | 1 + block/accounting.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/block/accounting.h b/include/block/accounting.h index ba8b04d572..878b4c3581 100644 --- a/include/block/accounting.h +++ b/include/block/accounting.h @@ -33,6 +33,7 @@ typedef struct BlockAcctTimedStats BlockAcctTimedStats; typedef struct BlockAcctStats BlockAcctStats; =20 enum BlockAcctType { + BLOCK_ACCT_NONE =3D 0, BLOCK_ACCT_READ, BLOCK_ACCT_WRITE, BLOCK_ACCT_FLUSH, diff --git a/block/accounting.c b/block/accounting.c index 70a3d9a426..8d41c8a83a 100644 --- a/block/accounting.c +++ b/block/accounting.c @@ -195,6 +195,10 @@ static void block_account_one_io(BlockAcctStats *stats= , BlockAcctCookie *cookie, =20 assert(cookie->type < BLOCK_MAX_IOTYPE); =20 + if (cookie->type =3D=3D BLOCK_ACCT_NONE) { + return; + } + qemu_mutex_lock(&stats->lock); =20 if (failed) { @@ -217,6 +221,8 @@ static void block_account_one_io(BlockAcctStats *stats,= BlockAcctCookie *cookie, } =20 qemu_mutex_unlock(&stats->lock); + + cookie->type =3D BLOCK_ACCT_NONE; } =20 void block_acct_done(BlockAcctStats *stats, BlockAcctCookie *cookie) --=20 2.17.1