From nobody Wed Feb 11 04:06:08 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1634291520414741.5170913980338; Fri, 15 Oct 2021 02:52:00 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-560-qtPOWV_bMNW4qxh6agucGw-1; Fri, 15 Oct 2021 05:51:55 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1AD8419253C4; Fri, 15 Oct 2021 09:51:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CED445D740; Fri, 15 Oct 2021 09:51:48 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 4CA1A4A703; Fri, 15 Oct 2021 09:51:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 19F9nlr2000635 for ; Fri, 15 Oct 2021 05:49:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id C0331400E410; Fri, 15 Oct 2021 09:49:47 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BB9D340C1256 for ; Fri, 15 Oct 2021 09:49:47 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9F8D4800883 for ; Fri, 15 Oct 2021 09:49:47 +0000 (UTC) Received: from corp-ob08.yahoo-corp.jp (corp-ob08.yahoo-corp.jp [183.79.94.93]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-14-kusa_RajNvqvApmxPXaLbw-1; Fri, 15 Oct 2021 05:49:45 -0400 Received: from JPN01-OS2-obe.outbound.protection.outlook.com (mail-os2jpn01lp2050.outbound.protection.outlook.com [104.47.92.50]) by corp-ob08.yahoo-corp.jp (Postfix) with ESMTPS id BEBCC1A49B07 for ; Fri, 15 Oct 2021 18:49:42 +0900 (JST) Received: from TYCPR01MB7919.jpnprd01.prod.outlook.com (2603:1096:400:186::10) by TYCPR01MB8176.jpnprd01.prod.outlook.com (2603:1096:400:105::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.14; Fri, 15 Oct 2021 09:49:41 +0000 Received: from TYCPR01MB7919.jpnprd01.prod.outlook.com ([fe80::e075:693b:905:bb22]) by TYCPR01MB7919.jpnprd01.prod.outlook.com ([fe80::e075:693b:905:bb22%9]) with mapi id 15.20.4608.017; Fri, 15 Oct 2021 09:49:41 +0000 Received: from R-SUR-LBA-2603.yahoo.co.jp (211.14.8.148) by TY2PR02CA0018.apcprd02.prod.outlook.com (2603:1096:404:56::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.16 via Frontend Transport; Fri, 15 Oct 2021 09:49:41 +0000 X-MC-Unique: qtPOWV_bMNW4qxh6agucGw-1 X-MC-Unique: kusa_RajNvqvApmxPXaLbw-1 From: Hiroki Narukawa To: libvir-list@redhat.com Subject: [PATCH 3/4] qemu_driver: add check for qemu capabilities requirements Date: Fri, 15 Oct 2021 18:49:19 +0900 Message-Id: <20211015094920.3658-4-hnarukaw@yahoo-corp.jp> In-Reply-To: <20211015094920.3658-1-hnarukaw@yahoo-corp.jp> References: <20211015094920.3658-1-hnarukaw@yahoo-corp.jp> X-ClientProxiedBy: TY2PR02CA0018.apcprd02.prod.outlook.com (2603:1096:404:56::30) To TYCPR01MB7919.jpnprd01.prod.outlook.com (2603:1096:400:186::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d8f8a3e6-973d-4f20-5fc0-08d98fc11c68 X-MS-TrafficTypeDiagnostic: TYCPR01MB8176: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:32 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: u4l771yeczTxicPuAnb+oc8bBXY7v0zkGiU5iaB8By1Fs4hpQPWFwPXQYzySvYDzwOmWilZmvC6k2LZG024U3UjcZDEvVuosiyyu+OrXy27tO/0tZo/OsxiaCuxbpM9FVPHr9gw0NJF7Zs74ice9tnu2imE9QiJW/qkWICa2zEP7Rcx+DNx8kKy74Ku0RM4q/Z3hmS5ko+ZHHZw5Q2PqZhME6PoqNZIvB1++DdKVYHUPbTsqJb/+KehazKguSBGn7fqAs9/j3fi3bDpH7j6tfoWbL9FX9jK7O8tEi91CNFtMML3C5rVEYtElf8y7hY9eU5iBjHN/YSGHFzW48lwHM3JQT5dmKynqznarABIKLvnNDVOjiXOw48E/ZbrOAWdg+VKsJMKTl6MQvoYzHlhWN1ieSyyH5u988JIc97jONGjdzGdXwOu6aveSkWyPsJ7HArIgJUsIm1MeBgR9ICwIS2lqXj8ty2uaWQ8ZNV+J5vKNVh8T2YJ51zLgRuWs0dFV3+SkZl0wx9bJMWy1q1sCrMZZBLZpiq9QVx6VsB7PBXSc2iAIjY4fDUE2AmV9yIWEi4ejp7XUjtB424pY4UG033mrReCXo+Ge8TeeKAAWHE/NiND5Oap2hf1FJEzRqtSe4IX8IfIi5aGkThW8dj4sfIatxfFyIVHyA56LLk5Uiop8VAdT/lSd/01EvNxwfxBY6Ot+9xPDY+UctXbCpPInWw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCPR01MB7919.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(26005)(83380400001)(6506007)(6486002)(6512007)(107886003)(52116002)(86362001)(8936002)(36756003)(5660300002)(186003)(4326008)(1076003)(508600001)(956004)(6666004)(38350700002)(66556008)(38100700002)(66476007)(8676002)(2906002)(66946007)(82960400001)(316002)(6916009)(2616005); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?McTWDTpzEhRi7NCk14yBpyFlQTizslQaEWywNZc9WE4/wGkFmdHTttaJ54Gp?= =?us-ascii?Q?NC/OqSs8897gp18exBttANZlJSYllDI8/rJ3RaqZH+6nNEYbi6NlPpqrEkaM?= =?us-ascii?Q?vE+6gOxlQxBld2GYyCPBep1PWIyTju47tBkCJ9Wkv+X15HXiQjc+3tpa0+3L?= =?us-ascii?Q?kaB9lXmNLVmZcEp9RBvpGXBTl7zdbKpCPHVk1IBiBY0qjcpqJ0f/amcsJ0b6?= =?us-ascii?Q?GFyw8PSKJVuA/qGyXHhxgybWv8jtmAS9t9V3eIyUGRpK6A5YZQzQbzShk7C8?= =?us-ascii?Q?gFOqQhQp/WBs9uy8g33H/KTWbe+i2khASo/DUnD4IlkBWY8aUfbThTSnbA9k?= =?us-ascii?Q?CD3n1Ty/a9iJRNHNoB5ZVvFbhLCU1E9i1Pn47PUzvJnP0dK9zF+wWeXtIKoF?= =?us-ascii?Q?7iWMoMaGyneWjI2vZObvMSjusch7fX0Sxz28UVtSOhpZOE4+J3osWG9xKczw?= =?us-ascii?Q?BVXWLLQECTRYqbvOvnnXBqvspkGb40GNxrTwVflnzfH3O4jUpqidyVzSFklE?= =?us-ascii?Q?OAK9pUps/R1kBMVD18O8mknKSv9PqTggt6lN64O+dj9eyR65Y1TWqnoGHRnR?= =?us-ascii?Q?DLDAoZmjbaTK06Ro0Yr7nwLO4te26NQvzQce16Pl9diaIwwB5oiMoHkmdhi4?= =?us-ascii?Q?/AyvW285LrTPD4DdzMTbXK7ppxPWhhmLZ1D2uHDGKTSzzy7QprWSEOZTRPf1?= =?us-ascii?Q?mRN7jC7nxhJnU0Nd4A88qLJFIssx87EN9B3mOlGn/fbH8ZfGaK3m6ojPzTlx?= =?us-ascii?Q?tRSqv8WZoHWd2zZxZiDyzSCJjCCacZ8R0lRA3yKKMEJ1kRlSrPvOWfmNXW90?= =?us-ascii?Q?vDwMdoFRS6iOpuknViprNdvYiSiaviFArRVbQzZd/1sx1XGO4PwJO4XBKVY5?= =?us-ascii?Q?EHEq4LD0wxGla3KYOiKx2EwSTM98plSOr5HGqXkXUj9H7/ZWqNCtQgiL7bHI?= =?us-ascii?Q?2RnkpHeuCFNoO0bUqFqRhOtY24Lkaki7nma8Nnvs1Zv0RIFgvzEMMpKJoEVR?= =?us-ascii?Q?Y2f9x2RGIv1p8YdiF9coS4e6VvYRwws3NuEd5neBEHh5tpRKTYY2RbQaGfim?= =?us-ascii?Q?7PMVdtSypbdvGvaYRGlYsXeJMtEz5BC7tkl75BLcbq52xu0MxaLR4VgPAQEQ?= =?us-ascii?Q?fyhRqWhRA38zuXLik79N3y2W7LvDfymLkjuYKR3IEeAY5Sm+/xDv4F/Oc8EL?= =?us-ascii?Q?6WICb/c4i6R2Iozx5Qrk3cJgdg2zeq/46dk7hrYb6Fn/2aftJO75/x4vcA4b?= =?us-ascii?Q?dQEe7sdBi2Gbh/mb4d+oWfbElm1bgVfv7zD9uw1N6ae1PoOA2GSWV0IW4ENp?= =?us-ascii?Q?zILtEUR+xDTm3zcNBd1/7yzZ?= X-OriginatorOrg: yahoo-corp.jp X-MS-Exchange-CrossTenant-Network-Message-Id: d8f8a3e6-973d-4f20-5fc0-08d98fc11c68 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB7919.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2021 09:49:41.9012 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a208d369-cd4e-4f87-b119-98eaf31df2c3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bgcmXBDvZIL8dMwbDMZm/k9NONto/fu6OadIUSRV6sdym1uoqqw0OC+Znd/WGnlUdW2PVkUzWy1+MpSLU0PGgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB8176 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-loop: libvir-list@redhat.com Cc: aoiwa@yahoo-corp.jp, Hiroki Narukawa X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-ZM-MESSAGEID: 1634291522455100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" query-dirty-rate command is used for virsh domstats by default, but this is available only on qemu >=3D5.2.0. By this commit, qemu domain stats will check capabilities requirements befo= re issuing actual query. Signed-off-by: Hiroki Narukawa --- src/qemu/qemu_driver.c | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ac5eaf139e..9cfd0a6ca5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18714,13 +18714,28 @@ static struct qemuDomainGetStatsWorker qemuDomain= GetStatsWorkers[] =3D { =20 static int qemuDomainGetStatsCheckSupport(unsigned int *stats, - bool enforce) + bool enforce, + virDomainObj *vm) { + qemuDomainObjPrivate *priv =3D vm->privateData; unsigned int supportedstats =3D 0; size_t i; + virQEMUCapsFlags* flagCursor; =20 - for (i =3D 0; qemuDomainGetStatsWorkers[i].func; i++) - supportedstats |=3D qemuDomainGetStatsWorkers[i].stats; + for (i =3D 0; qemuDomainGetStatsWorkers[i].func; i++) { + bool supportedByQemu =3D true; + + for (flagCursor =3D qemuDomainGetStatsWorkers[i].requiredCaps; *fl= agCursor !=3D QEMU_CAPS_LAST; + ++flagCursor) { + if (!virQEMUCapsGet(priv->qemuCaps, *flagCursor)) { + supportedByQemu =3D false; + break; + } + } + if (supportedByQemu) { + supportedstats |=3D qemuDomainGetStatsWorkers[i].stats; + } + } =20 if (*stats =3D=3D 0) { *stats =3D supportedstats; @@ -18791,7 +18806,7 @@ static int qemuConnectGetAllDomainStats(virConnectPtr conn, virDomainPtr *doms, unsigned int ndoms, - unsigned int stats, + unsigned int requestedStats, virDomainStatsRecordPtr **retStats, unsigned int flags) { @@ -18805,11 +18820,12 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, int nstats =3D 0; size_t i; int ret =3D -1; - unsigned int privflags =3D 0; + unsigned int privflags; unsigned int domflags =3D 0; unsigned int lflags =3D flags & (VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTI= VE | VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSIS= TENT | VIR_CONNECT_LIST_DOMAINS_FILTERS_STATE); + unsigned int stats; =20 virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTIVE | VIR_CONNECT_LIST_DOMAINS_FILTERS_PERSISTENT | @@ -18821,9 +18837,6 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, if (virConnectGetAllDomainStatsEnsureACL(conn) < 0) return -1; =20 - if (qemuDomainGetStatsCheckSupport(&stats, enforce) < 0) - return -1; - if (ndoms) { if (virDomainObjListConvert(driver->domains, conn, doms, ndoms, &v= ms, &nvms, virConnectGetAllDomainStatsChec= kACL, @@ -18838,14 +18851,19 @@ qemuConnectGetAllDomainStats(virConnectPtr conn, =20 tmpstats =3D g_new0(virDomainStatsRecordPtr, nvms + 1); =20 - if (qemuDomainGetStatsNeedMonitor(stats)) - privflags |=3D QEMU_DOMAIN_STATS_HAVE_JOB; - for (i =3D 0; i < nvms; i++) { virDomainStatsRecordPtr tmp =3D NULL; domflags =3D 0; + privflags =3D 0; vm =3D vms[i]; =20 + stats =3D requestedStats; + if (qemuDomainGetStatsCheckSupport(&stats, enforce, vm) < 0) + return -1; + + if (qemuDomainGetStatsNeedMonitor(stats)) + privflags |=3D QEMU_DOMAIN_STATS_HAVE_JOB; + virObjectLock(vm); =20 if (HAVE_JOB(privflags)) { --=20 2.17.1