From nobody Mon Sep 21 14:05:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=reject dis=none) header.from=linux.ibm.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784746870929982.3619800748012; Wed, 22 Jul 2026 12:01:10 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B9F5B41835; Wed, 22 Jul 2026 15:01:09 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id D553743E01; Wed, 22 Jul 2026 14:52:59 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E46A941B95; Wed, 22 Jul 2026 14:52:26 -0400 (EDT) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id BC0C54187F for ; Wed, 22 Jul 2026 14:52:24 -0400 (EDT) Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66MICR303021359 for ; Wed, 22 Jul 2026 18:52:23 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fg77akuxp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 22 Jul 2026 18:52:23 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66MIntSg023423 for ; Wed, 22 Jul 2026 18:52:22 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fgm6w8t38-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 22 Jul 2026 18:52:22 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66MIqKf832637440 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 22 Jul 2026 18:52:21 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C737D5806A; Wed, 22 Jul 2026 18:52:20 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5BD325805D; Wed, 22 Jul 2026 18:52:20 +0000 (GMT) Received: from IBM-GLTZVH3.atx-us.ibm.com (unknown [9.16.36.179]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 22 Jul 2026 18:52:20 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=kPy5i5KP/omYRjvEg 5FnjevhDs3w7CtugnsqCD1/8Nw=; b=OPILt02jpGAy/G6g+5QpjRWsSADm8AETQ BCB1G0ra+OZxqwHQoV2nAx99PVEIvDNl3SvXm1TFPyGz52eqAYdjNJx7dEJBlXFO nbvmQEgJ8M61edny959W9s0MS5EBzNefCBnEf9K5VYo+wbfUQBOJO5/R9wv1rDAD msrrZPqLJwxo5ApcRRjDnYdAtg0vXtD3XI7lu/pIy+OtxNgvyg7nsMddMM4dbATc g4xfrUvS5p88QyAknaoD33b2EmDQcfnT0+1yhN/WdHb9usIeTm26z4Ow05M64pQ4 IkoKff5UmeUTF/VmAQE1umUnAMo7/jFeTNoA5fz65bA2zzbTO5JPg== From: Jaehoon Kim To: devel@lists.libvirt.org Subject: [PATCH 3/6] qemu: support iothread poll-weight Date: Wed, 22 Jul 2026 13:52:12 -0500 Message-ID: <20260722185215.743245-4-jhkim@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260722185215.743245-1-jhkim@linux.ibm.com> References: <20260722185215.743245-1-jhkim@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: LED2TEpQrUCLM4MqqaVvHP4uqlMe9JJX X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIyMDE4NCBTYWx0ZWRfXw4towOGGsyJ4 gAjFaCj/F4z2hMpMopfQrSw+a0maKDdjFAyhiWRsFcn/3KtebqDXTJbFdRhHcTIRaDFyETnXApJ Uku+LiUJdWcvQdTk5I3GdE5h5bFwcxU= X-Proofpoint-GUID: LED2TEpQrUCLM4MqqaVvHP4uqlMe9JJX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIyMDE4NCBTYWx0ZWRfX7xLGfjzAK9K/ k85hg9GjEIu1uVxk7q/FoxMA5aZYHLTQO3B4/XFGii0ga0zV80CLt/4Tn0pGRuDuy+W8Osew6zk 8BFB2gJtynyJKhiDhzEQ0opZfX3I61IEQg5J/NkTSw6uQkll2ilEmukL5l4Jl8kAxG0yEh0TAsM I2lylCtunv1SxOu06w5+L+kLMBKPB9uD/yUSqzLUfv42N8itKwLoLbSlhhWm7y3BldriyCRvKLn fuqnRNHMEgViAJtMsYU1x8yq0klkWAPWeYQDFhgvy/krvp2fSimknniAD24G/Wrn3r29nsW6+99 ZWqFEVrUl1Vm+ffEpOsnSK8xIFiP4isX1bV5gWv1Jaj0bz/iqAwYlAXiyWZNOwNd8R4CR5Y+T2D r3THkLDFNkaAjOfsa3LVxYG0gNbOeQs0WsxxfaTKdEoJ6ognRO8tEIUV/r66pKYLM0Nb2WgsNPV bjeVlJBO5nYhIASe+NQ== X-Authority-Analysis: v=2.4 cv=K7AS2SWI c=1 sm=1 tr=0 ts=6a611167 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=rwZ39xYBmleNAV4O5MEA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-22_05,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607220184 Message-ID-Hash: 2JYTIVM5HMJQTW67IJBAHVHOGR32H4IA X-Message-ID-Hash: 2JYTIVM5HMJQTW67IJBAHVHOGR32H4IA X-MailFrom: jhkim@linux.ibm.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: fiuczy@linux.ibm.com, shalini@linux.ibm.com, Jaehoon Kim X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784746871916158500 Content-Type: text/plain; charset="utf-8" Use the configured iothread poll-weight value when interacting with QEMU. This wires the new setting into command line generation, monitor data parsing, driver-side parameter handling, and capability-based validation. Remove the break from the iothread validation loop because the loop now also checks poll-weight on every iothread. Signed-off-by: Jaehoon Kim --- include/libvirt/libvirt-domain.h | 26 +++++++++ src/qemu/qemu_command.c | 18 +++++- src/qemu/qemu_driver.c | 38 ++++++++++++ src/qemu/qemu_monitor.h | 2 + src/qemu/qemu_monitor_json.c | 18 ++++++ src/qemu/qemu_validate.c | 10 +++- ...othreads-ids-poll-weight.x86_64-11.0.0.err | 1 + ...threads-ids-poll-weight.x86_64-latest.args | 40 +++++++++++++ ...othreads-ids-poll-weight.x86_64-latest.xml | 58 +++++++++++++++++++ .../iothreads-ids-poll-weight.xml | 58 +++++++++++++++++++ tests/qemuxmlconftest.c | 2 + 11 files changed, 267 insertions(+), 4 deletions(-) create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-= 11.0.0.err create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-= latest.args create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-= latest.xml create mode 100644 tests/qemuxmlconfdata/iothreads-ids-poll-weight.xml diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 5b67f8f897..f49aa1c136 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -2748,6 +2748,22 @@ int virDomainDelIOThread(virDomainP= tr domain, */ # define VIR_DOMAIN_IOTHREAD_POLL_SHRINK "poll_shrink" =20 +/** + * VIR_DOMAIN_IOTHREAD_POLL_WEIGHT: + * + * This provides a shift value for the adaptive polling algorithm to contr= ol + * how much the most recent event interval affects the next polling durati= on + * calculation. Larger values decrease the weight of the current interval, + * enabling more gradual adjustments. Valid range is [0, 63]. A value of 0 + * lets the hypervisor select a default weight (typically 3, meaning the + * current interval contributes approximately 1/8 to the weighted average). + * + * Accepted type is VIR_TYPED_PARAM_UINT. + * + * Since: 12.6.0 + */ +# define VIR_DOMAIN_IOTHREAD_POLL_WEIGHT "poll_weight" + /** * VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN: * @@ -4330,6 +4346,16 @@ struct _virDomainStatsRecord { */ # define VIR_DOMAIN_STATS_IOTHREAD_SUFFIX_POLL_SHRINK ".poll-shrink" =20 +/** + * VIR_DOMAIN_STATS_IOTHREAD_SUFFIX_POLL_WEIGHT: + * + * Polling weight factor as an unsigned int. This shift value controls how + * much the most recent event interval affects adaptive polling calculatio= ns. + * A 0 (zero) indicates the hypervisor's default weight is used. + * + * Since: 12.6.0 + */ +# define VIR_DOMAIN_STATS_IOTHREAD_SUFFIX_POLL_WEIGHT ".poll-weight" =20 /** * VIR_DOMAIN_STATS_MEMORY_BANDWIDTH_MONITOR_COUNT: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 95e2ea9a6b..b351059fc1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7659,7 +7659,8 @@ qemuBuildMemCommandLine(virCommand *cmd, =20 static int qemuBuildIOThreadCommandLine(virCommand *cmd, - const virDomainDef *def) + const virDomainDef *def, + virQEMUCaps *qemuCaps) { size_t i; =20 @@ -7694,6 +7695,19 @@ qemuBuildIOThreadCommandLine(virCommand *cmd, NULL) < 0) return -1; =20 + if (iothread->set_poll_weight) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_IOTHREAD_POLL_WEIGHT))= { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("poll-weight is not supported by this QEM= U binary")); + return -1; + } + + if (virJSONValueObjectAdd(&props, + "u:poll-weight", iothread->poll_weig= ht, + NULL) < 0) + return -1; + } + if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0) return -1; } @@ -10903,7 +10917,7 @@ qemuBuildCommandLine(virDomainObj *vm, if (qemuBuildSmpCommandLine(cmd, def, qemuCaps) < 0) return NULL; =20 - if (qemuBuildIOThreadCommandLine(cmd, def) < 0) + if (qemuBuildIOThreadCommandLine(cmd, def, qemuCaps) < 0) return NULL; =20 if (qemuBuildThrottleGroupCommandLine(cmd, def) < 0) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index bdc0cff66a..1afd6e83ba 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5261,6 +5261,11 @@ qemuDomainHotplugModIOThreadIDDef(virDomainIOThreadI= DDef *def, def->set_poll_shrink =3D true; } =20 + if (mondef.set_poll_weight) { + def->poll_weight =3D mondef.poll_weight; + def->set_poll_weight =3D true; + } + if (mondef.set_thread_pool_min) def->thread_pool_min =3D mondef.thread_pool_min; =20 @@ -5353,6 +5358,11 @@ qemuDomainHotplugDelIOThread(virDomainObj *vm, * necessary. If a 0 (zero) value is provided, QEMU resets the polling * interval to 0 (zero) allowing the poll-grow to manipulate the time. * + * - "poll-weight" - weight shift value used by the adaptive polling algor= ithm + * to determine how much the most recent event interval influences the + * next interval calculation. Accepted range is [0, 63]. If a 0 (zero) + * value is provided, QEMU uses its default weight. + * * QEMU keeps track of the polling time elapsed and may grow or shrink the * its polling interval based upon its heuristic algorithm. It is possible * that calculations determine that it has found a "sweet spot" and no @@ -5388,6 +5398,20 @@ qemuDomainIOThreadParseParams(virTypedParameterPtr p= arams, if (rc =3D=3D 1) iothread->set_poll_shrink =3D true; =20 + if ((rc =3D virTypedParamsGetUInt(params, nparams, + VIR_DOMAIN_IOTHREAD_POLL_WEIGHT, + &iothread->poll_weight)) < 0) + return -1; + if (rc =3D=3D 1) { + if (iothread->poll_weight > 63) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("poll-weight value %1$u is out of range [0, 6= 3]"), + iothread->poll_weight); + return -1; + } + iothread->set_poll_weight =3D true; + } + if ((rc =3D virTypedParamsGetInt(params, nparams, VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN, &iothread->thread_pool_min)) < 0) @@ -5586,6 +5610,13 @@ qemuDomainChgIOThread(virQEMUDriver *driver, if (qemuDomainIOThreadValidate(iothreaddef, iothread, true) < = 0) goto endjob; =20 + if (iothread.set_poll_weight && + !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_IOTHREAD_POLL_WE= IGHT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("poll-weight is not supported by this QEM= U binary")); + goto endjob; + } + if (qemuDomainHotplugModIOThread(vm, iothread) < 0) goto endjob; =20 @@ -5716,6 +5747,8 @@ qemuDomainSetIOThreadParams(virDomainPtr dom, VIR_TYPED_PARAM_UNSIGNED, VIR_DOMAIN_IOTHREAD_POLL_SHRINK, VIR_TYPED_PARAM_UNSIGNED, + VIR_DOMAIN_IOTHREAD_POLL_WEIGHT, + VIR_TYPED_PARAM_UINT, VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN, VIR_TYPED_PARAM_INT, VIR_DOMAIN_IOTHREAD_THREAD_POOL_MAX, @@ -18380,6 +18413,11 @@ qemuDomainGetStatsIOThread(virQEMUDriver *driver G= _GNUC_UNUSED, VIR_DOMAIN_STATS_IOTHREAD_PREFIX = "%u" VIR_DOMAIN_STATS_IOTHREAD_SUFFIX_POLL_SHRINK, iothreads[i]->iothread_id); } + if (iothreads[i]->set_poll_weight) { + virTypedParamListAddUInt(params, iothreads[i]->poll_weight, + VIR_DOMAIN_STATS_IOTHREAD_PREFIX "%u"= VIR_DOMAIN_STATS_IOTHREAD_SUFFIX_POLL_WEIGHT, + iothreads[i]->iothread_id); + } } =20 for (i =3D 0; i < niothreads; i++) diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index c2afb580e4..e73be4e263 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1583,11 +1583,13 @@ struct _qemuMonitorIOThreadInfo { unsigned long long poll_max_ns; unsigned long long poll_grow; unsigned long long poll_shrink; + unsigned int poll_weight; int thread_pool_min; int thread_pool_max; bool set_poll_max_ns; bool set_poll_grow; bool set_poll_shrink; + bool set_poll_weight; bool set_thread_pool_min; bool set_thread_pool_max; }; diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 21f4d613b7..c88f74c10b 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -7202,6 +7202,11 @@ qemuMonitorJSONGetIOThreads(qemuMonitor *mon, virJSONValueObjectGetNumberUlong(child, "poll-shrink", &info->poll_shrink) =3D=3D 0) info->poll_valid =3D true; + + /* poll-weight is optional, only present on newer QEMU */ + if (virJSONValueObjectGetNumberUint(child, "poll-weight", + &info->poll_weight) =3D=3D 0) + info->set_poll_weight =3D true; } =20 *niothreads =3D n; @@ -7243,6 +7248,19 @@ qemuMonitorJSONSetIOThread(qemuMonitor *mon, =20 #undef VIR_IOTHREAD_SET_PROP_UL =20 +#define VIR_IOTHREAD_SET_PROP_UINT(propName, propVal) \ + if (iothreadInfo->set_##propVal) { \ + memset(&prop, 0, sizeof(prop)); \ + prop.type =3D QEMU_MONITOR_OBJECT_PROPERTY_UINT; \ + prop.val.ui =3D iothreadInfo->propVal; \ + if (qemuMonitorJSONSetObjectProperty(mon, path, propName, &prop) <= 0) \ + return -1; \ + } + + VIR_IOTHREAD_SET_PROP_UINT("poll-weight", poll_weight); + +#undef VIR_IOTHREAD_SET_PROP_UINT + if (iothreadInfo->set_thread_pool_min && iothreadInfo->set_thread_pool_max) { int curr_max =3D -1; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 439d4b1916..5a770a800f 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -500,9 +500,15 @@ qemuValidateDomainDefIOThreads(const virDomainDef *def, for (i =3D 0; i < def->niothreadids; i++) { virDomainIOThreadIDDef *iothread =3D def->iothreadids[i]; =20 - if (iothread->thread_pool_min !=3D -1 || iothread->thread_pool_max= !=3D -1) { + if (iothread->thread_pool_min !=3D -1 || iothread->thread_pool_max= !=3D -1) needsThreadPoolCap =3D true; - break; + + /* poll-weight requires QEMU_CAPS_IOTHREAD_POLL_WEIGHT */ + if (iothread->set_poll_weight && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_IOTHREAD_POLL_WEIGHT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("poll-weight is not supported by this QEMU bi= nary")); + return -1; } } =20 diff --git a/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-11.0.0.= err b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-11.0.0.err new file mode 100644 index 0000000000..1cc4109f27 --- /dev/null +++ b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-11.0.0.err @@ -0,0 +1 @@ +unsupported configuration: poll-weight is not supported by this QEMU binary diff --git a/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.= args b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.args new file mode 100644 index 0000000000..d73060ad46 --- /dev/null +++ b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.args @@ -0,0 +1,40 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine q35,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Doff \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 4,sockets=3D4,cores=3D1,threads=3D1 \ +-object '{"qom-type":"iothread","id":"iothread1","poll-max-ns":123000,"pol= l-grow":456,"poll-shrink":789,"poll-weight":3}' \ +-object '{"qom-type":"iothread","id":"iothread2","poll-weight":0}' \ +-object '{"qom-type":"iothread","id":"iothread3","poll-max-ns":32000,"poll= -weight":63}' \ +-object '{"qom-type":"iothread","id":"iothread4","poll-max-ns":32000,"poll= -grow":2,"poll-shrink":2}' \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D@mon-fd@,server=3Don,wait=3Doff \ +-object '{"qom-type":"monitor-qmp","id":"monitor","chardev":"charmonitor"}= ' \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus= ":"pcie.0","multifunction":true,"addr":"0x1"}' \ +-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus= ":"pcie.0","addr":"0x1.0x1"}' \ +-device '{"driver":"qemu-xhci","id":"usb","bus":"pci.1","addr":"0x0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-global ICH9-LPC.noreboot=3Doff \ +-watchdog-action reset \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.= xml b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.xml new file mode 100644 index 0000000000..1134d9ffdd --- /dev/null +++ b/tests/qemuxmlconfdata/iothreads-ids-poll-weight.x86_64-latest.xml @@ -0,0 +1,58 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 4 + 4 + + + + + + + + + + + + + + + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + +
+ + + + +
+ + +
+ + +
+ + + +