From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692314; cv=none; d=zohomail.com; s=zohoarc; b=NX9zjHsZ5ED+tG91uARnJ7MUIdJAJdWRrNmI8Si016RBVaUns9qkOFyx6ZnPtXr6Sn3jnhxvlHGRxOIMW0Rkdu/N1HcSXFx55fcDwyTLYOXTMc+JCZQ6/pMUAGiASq0ZjnJCHF7JKmYrBj16vMSUwLFX1EBQdvgfsRmTGsHGw8U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692314; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nNveWDQz0FCogrjD064nWKBC+L1SAA+uIV/D3+xA3ak=; b=RjVjJ0+vtm9CpDocmYKAU0jMuX5qHHnEJOUzAEBYBHVjNPxNddfoKNSDdaeWnnvhDHMnily5jcD+nKITqzeTxx2iNsYvt8D4+i/DFD41c9TICD8e6oZVv4FaP9HT6BT8qdAogDgX2NUikYVxhUNSJhmlV522pwN+DytgkOVLqhY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692313852756.1288050374112; Mon, 9 Feb 2026 18:58:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxI-00061I-LP; Mon, 09 Feb 2026 21:58:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxG-00060p-Ne for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:22 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxF-000463-5c for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:22 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:20 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:14 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692301; x=1802228301; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CWUHty8oWVEh0GsmmVaaCPC+SG+FQrP8WKByiVj3sqs=; b=NkKOd1hZqxEZO2d0VPi7bLdvM3AG9pCxEj/LkxBjXkIJtJM2L4koy3p7 uah3yT+2cLJOldd4lHMDTb6Wl88AGJAg8TnOGTzoA45loPUj2bfjha5t5 9f5RSKRqJb/K8U93ftz51cNTnluNlHAORDAEV/+pKICkYkiA35ik0aicT 6Mk11WbkYE88yiHhqbuQSozdCyzruAfl2Z7tObW3Sc7bhHw0CJEISOvuM aYvL3zfV30lD3oyDyITSq3MSZXMRER2bYRMOxSu7TpNNipH50mt7tHmgT Oexcve2wUYfnO9NDHNypi3ay3KkjYFyNwS0PX2DKY0cJhszkajZdWNr47 w==; X-CSE-ConnectionGUID: 7bIDi00/QAiQJ7NyvtbLSA== X-CSE-MsgGUID: Dvh454NER0Cnu3cmPtsRGA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854221" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854221" X-CSE-ConnectionGUID: ormuF/qsTyyK52BYmVAydA== X-CSE-MsgGUID: QoEjIvx8S4KQ4LtJq64cbA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800416" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 01/21] qom/object: use BIT macro for ObjectPropertyFlags Date: Tue, 10 Feb 2026 11:23:28 +0800 Message-Id: <20260210032348.987549-2-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692318190158500 Content-Type: text/plain; charset="utf-8" Standardize the definition of ObjectPropertyFlags by using the BIT() macro instead of manual bit shifts to improve readability. Suggested-by: Igor Mammedov Signed-off-by: Zhao Liu --- include/qom/object.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 26df6137b911..6226b88c1eda 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -16,6 +16,7 @@ =20 #include "qapi/qapi-builtin-types.h" #include "qemu/module.h" +#include "qemu/bitops.h" =20 struct TypeImpl; typedef struct TypeImpl *Type; @@ -1841,9 +1842,9 @@ ObjectProperty *object_class_property_add_tm(ObjectCl= ass *klass, =20 typedef enum { /* Automatically add a getter to the property */ - OBJ_PROP_FLAG_READ =3D 1 << 0, + OBJ_PROP_FLAG_READ =3D BIT(0), /* Automatically add a setter to the property */ - OBJ_PROP_FLAG_WRITE =3D 1 << 1, + OBJ_PROP_FLAG_WRITE =3D BIT(1), /* Automatically add a getter and a setter to the property */ OBJ_PROP_FLAG_READWRITE =3D (OBJ_PROP_FLAG_READ | OBJ_PROP_FLAG_WRITE), } ObjectPropertyFlags; --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692343; cv=none; d=zohomail.com; s=zohoarc; b=MmPelBJ4A175R/GeKtJqD5za0sXqGivOPn0qI2yrV8twl/qIjSS3Y3a5bQd8heLZZH4iwYhcK+aEvoxCncDytbTePkdTrPshDqlrY9iowpCxrcodgeGTdEBMhAkB85RD0DP60i1++udk9qjrUu5GeOKIJVJ6aJbIE4HMyz+PP0g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692343; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SKzzBt3VWSreE2CygljN90FG+G54tYzwhrhwURpmul0=; b=m4ndzpiKoQxbadk+7lqlUxKrGYVvn9gx7eq8R9bYx/VfMt947bl4AfNyXXS2l3zTjKKwzQwtBfE/PTeN7Wo0r2lHPSQjPYrzEEmPbOiWD3UAMoJJVyg+3h148RaPjJZsYMSs4pTgjrJVy1XeLw05kElacFu08sPmmpw0FzANWrQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177069234371836.96822858998405; Mon, 9 Feb 2026 18:59:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxO-00062J-8W; Mon, 09 Feb 2026 21:58:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxM-00061w-Cj for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:28 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxK-00046a-Ig for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:28 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:25 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:19 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692307; x=1802228307; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3N/SwZLpsJhPnT1hj2JLd5OJ+UF0eDFP2x5yKTQlPEg=; b=DCZfstVpGBvqzrv1qmMkUOnqzHdJZS58ttK3ChBT2cfRbMhYCtkv/6D4 lWW3rWngkT/Eu8OuXzreOaibHW+SFyT7jzoz212xuX0tmT8d5gtgVaSjc WlYUU+xVlXhRk5Y4WYSqrM9RF6cubU4tj/0igtj/7aeK8njICo5hLTjNb wcHGPp71mZiE7HsN+ek8gKog37tn0+A4dtc0Vj9vl+f1h5572a2AJ37gY BOXKS1nHOmQRMFHmjsDzA6yeFOUJdyr2uIL69SVp2PwbJEh4NzwSGQAJn GRFkHAi05LAyuaqXJeMFwiGd1jPZSQAWmFgl5QFJzr+lC1eg7+RVs8BlX g==; X-CSE-ConnectionGUID: cUrpRaNqQaKM2OdUVEd37g== X-CSE-MsgGUID: l6MibZx7RzyEikh+S5jfFg== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854237" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854237" X-CSE-ConnectionGUID: Kh4wfJ2nRp2esYlklM4GwA== X-CSE-MsgGUID: zoSKirtdQNSWvFThDGGnHg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800442" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 02/21] qom/object: cache ObjectPropertyFlags in ObjectProperty Date: Tue, 10 Feb 2026 11:23:29 +0800 Message-Id: <20260210032348.987549-3-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692345536154100 Content-Type: text/plain; charset="utf-8" Introduce a 'flags' field in the ObjectProperty structure to store property-specific behavior modifiers. Currently, ObjectPropertyFlags (READ/WRITE) are only used for property creation (e.g., initialize accessors for pointer properties). By caching these flags directly in ObjectProperty, we can: 1. Preserve the initial access intent (read/write) of the property. * the READ/WRITE flags cached in ObjectProperty have no effect for now, but they may be useful for cases need write-once, if needed. 2. Reuse existing ObjectPropertyFlags and provide a foundation for future flags (e.g., to track if a property was explicitly set by external user). To avoid "incomplete type" error, move ObjectPropertyFlags before ObjectProperty definition, and polish the comment of ObjectPropertyFlags to clarify how READ/WRITE flags work for general properties. Suggested-by: Igor Mammedov Signed-off-by: Zhao Liu --- include/qom/object.h | 34 +++++++++++++++++++++++++--------- qom/object.c | 16 +++++++++++++++- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 6226b88c1eda..05706d4d7e3a 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -87,6 +87,30 @@ typedef void (ObjectPropertyRelease)(Object *obj, */ typedef void (ObjectPropertyInit)(Object *obj, ObjectProperty *prop); =20 +typedef enum { + /* + * The property is readable and has a getter. + * + * For pointer property, this flag (set in object_{class_}property_add= _*_ptr()) + * will automatically add a getter to this property. + */ + OBJ_PROP_FLAG_READ =3D BIT(0), + /* + * The property is writable and has a setter. + * + * For pointer property, this flag (set in object_{class_}property_add= _*_ptr()) + * will automatically add a setter to this property. + */ + OBJ_PROP_FLAG_WRITE =3D BIT(1), + /* + * The property is readable and writable, as well as has a getter and = a setter. + * + * For pointer property, this flag (set in object_{class_}property_add= _*_ptr()) + * will automatically add a getter and a setter to this property. + */ + OBJ_PROP_FLAG_READWRITE =3D (OBJ_PROP_FLAG_READ | OBJ_PROP_FLAG_WRITE), +} ObjectPropertyFlags; + struct ObjectProperty { char *name; @@ -99,6 +123,7 @@ struct ObjectProperty ObjectPropertyInit *init; void *opaque; QObject *defval; + ObjectPropertyFlags flags; }; =20 /** @@ -1840,15 +1865,6 @@ ObjectProperty *object_class_property_add_tm(ObjectC= lass *klass, const char *name, void (*get)(Object *, struct tm *, Error **)); =20 -typedef enum { - /* Automatically add a getter to the property */ - OBJ_PROP_FLAG_READ =3D BIT(0), - /* Automatically add a setter to the property */ - OBJ_PROP_FLAG_WRITE =3D BIT(1), - /* Automatically add a getter and a setter to the property */ - OBJ_PROP_FLAG_READWRITE =3D (OBJ_PROP_FLAG_READ | OBJ_PROP_FLAG_WRITE), -} ObjectPropertyFlags; - /** * object_property_add_uint8_ptr: * @obj: the object to add a property to diff --git a/qom/object.c b/qom/object.c index ff8ede8a328e..f5801f4624c8 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1233,6 +1233,19 @@ void object_unref(void *objptr) } } =20 +static inline void object_property_flags_init(ObjectProperty *prop) +{ + uint8_t flags =3D 0; + + if (prop->set) { + flags |=3D OBJ_PROP_FLAG_WRITE; + } + if (prop->get) { + flags |=3D OBJ_PROP_FLAG_READ; + } + prop->flags |=3D flags; +} + ObjectProperty * object_property_try_add(Object *obj, const char *name, const char *type, ObjectPropertyAccessor *get, @@ -1279,6 +1292,7 @@ object_property_try_add(Object *obj, const char *name= , const char *type, prop->set =3D set; prop->release =3D release; prop->opaque =3D opaque; + object_property_flags_init(prop); =20 g_hash_table_insert(obj->properties, prop->name, prop); return prop; @@ -1317,9 +1331,9 @@ object_class_property_add(ObjectClass *klass, prop->set =3D set; prop->release =3D release; prop->opaque =3D opaque; + object_property_flags_init(prop); =20 g_hash_table_insert(klass->properties, prop->name, prop); - return prop; } =20 --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692318; cv=none; d=zohomail.com; s=zohoarc; b=lK9Fg7R2PX2GPa/xj/hiprtS2thSi3Zpvh8zWDI4+jrU15laHmWrxjL9qa0DWsw28YhjzZCShFT9PmE1g95KkNeKdUSS+MitPJrIgDcdDD0SQ+L8DURI7na1FqJvIucrQhOndJFve+aRSLwjMSpu4kKGdZFFT8Z7fzGFbBRNI3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692318; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hfkL9dI1MHIXHMiiXgK+a5hpZLONGsXXvA6Mw42d1gE=; b=BI75VWetW0IrJ7dQshj3vAtqTaLbk1+/J9pStof3A93zbGWJ6aqWkoNDHIn8RAos6bY7nm0z+QPtQQUWuEAlcUpVaGQ3hOx64vsEkYuB1VS2+nOkXaVmplBQsvTgS/DwVV6ihTFo/RrnQbUJVWNRRnV4RjREpo0y6dz3w+5S1zk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692318689963.9804707159315; Mon, 9 Feb 2026 18:58:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxR-00064t-PZ; Mon, 09 Feb 2026 21:58:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxQ-00063G-Hm for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:32 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxO-00046a-6J for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:32 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:30 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:24 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692310; x=1802228310; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=s/JlYnxjXvIrGB6oJxc/D12Kh0TiBPjCTqhRHSqsD3A=; b=G4qMGfIZIZp3jfSRQFS98glvRTFdBp8QmCdccNfMjpvF/H6jeWjUpeCX aRRrfNOZ0rmU1Ns0vuhoOuXr8djJPFTy6jxR4D8UCJLw9e2Ht4IHkRh+E 9PMkobyfauf9eQn7MdlZUY2IsXjDLJdNHAuZgL3MLdok0addHZ9hj1Uzq EyCQx5R4Dof9/qWpqxZkYehYRxwa+ldXI2qIym4bLJoUxU6UFVXy0IvNO yhc/5xiw3lxsBPq3mlT8yHpvXoQBTSsV7L0J0QZU44fX+BD65e0f4DHXy 23bp51+e8tPuxuPCJoU42iUOjaJuKa3Nlut3cJ8srYk2xsRlHA6W5Qjf1 A==; X-CSE-ConnectionGUID: +lwqZmhjTFuotFOWmovjEQ== X-CSE-MsgGUID: zulYyosESueEYcFGPlZ50A== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854249" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854249" X-CSE-ConnectionGUID: ayAaCdiVSB2REoX++RGXJw== X-CSE-MsgGUID: XikgiVXbTQyXeA48f7Z3eQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800457" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 03/21] qom/object: factor out object_class_property_try_add() Date: Tue, 10 Feb 2026 11:23:30 +0800 Message-Id: <20260210032348.987549-4-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692320957158500 Content-Type: text/plain; charset="utf-8" Similar to object_property_try_add(), factor out object_class_property_try_add(). This allows adding more arguments to the core implementation without changing the signature of object_class_property_add(), avoiding the need to modify the extensive number of callers distributed throughout the code tree. While at it, add documentation for these functions. Signed-off-by: Zhao Liu --- include/qom/object.h | 56 ++++++++++++++++++++++++++++++++++++++++++++ qom/object.c | 34 ++++++++++++++++++++------- 2 files changed, 82 insertions(+), 8 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 05706d4d7e3a..060db136988b 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1147,6 +1147,62 @@ ObjectProperty *object_property_add(Object *obj, con= st char *name, =20 void object_property_del(Object *obj, const char *name); =20 +/** + * object_class_property_try_add: + * @klass: the object class to add a property to + * @name: the name of the property. This can contain any character except= for + * a forward slash. In general, you should use hyphens '-' instead of + * underscores '_' when naming properties. + * @type: the type name of the property. This namespace is pretty loosely + * defined. Sub namespaces are constructed by using a prefix and then + * to angle brackets. For instance, the type 'virtio-net-pci' in the + * 'link' namespace would be 'link'. + * @get: The getter to be called to read a property. If this is NULL, then + * the property cannot be read. + * @set: the setter to be called to write a property. If this is NULL, + * then the property cannot be written. + * @release: called when the property is removed from the object. This is + * meant to allow a property to free its opaque upon object + * destruction. This may be NULL. + * @opaque: an opaque pointer to pass to the callbacks for the property + * @errp: pointer to error object + * + * Returns: The #ObjectProperty; this can be used to set the @resolve + * callback for child and link properties. + */ +ObjectProperty *object_class_property_try_add(ObjectClass *klass, const ch= ar *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *relea= se, + void *opaque, Error **errp); + + +/** + * object_class_property_add: + * Same as object_class_property_try_add() with @errp hardcoded to + * &error_abort. + * + * @klass: the object class to add a property to + * @name: the name of the property. This can contain any character except= for + * a forward slash. In general, you should use hyphens '-' instead of + * underscores '_' when naming properties. + * @type: the type name of the property. This namespace is pretty loosely + * defined. Sub namespaces are constructed by using a prefix and then + * to angle brackets. For instance, the type 'virtio-net-pci' in the + * 'link' namespace would be 'link'. + * @get: The getter to be called to read a property. If this is NULL, then + * the property cannot be read. + * @set: the setter to be called to write a property. If this is NULL, + * then the property cannot be written. + * @release: called when the property is removed from the object. This is + * meant to allow a property to free its opaque upon object + * destruction. This may be NULL. + * @opaque: an opaque pointer to pass to the callbacks for the property + * + * Returns: The #ObjectProperty; this can be used to set the @resolve + * callback for child and link properties. + */ ObjectProperty *object_class_property_add(ObjectClass *klass, const char *= name, const char *type, ObjectPropertyAccessor *get, diff --git a/qom/object.c b/qom/object.c index f5801f4624c8..f101b48154d1 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1310,17 +1310,22 @@ object_property_add(Object *obj, const char *name, = const char *type, } =20 ObjectProperty * -object_class_property_add(ObjectClass *klass, - const char *name, - const char *type, - ObjectPropertyAccessor *get, - ObjectPropertyAccessor *set, - ObjectPropertyRelease *release, - void *opaque) +object_class_property_try_add(ObjectClass *klass, + const char *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + void *opaque, Error **errp) { ObjectProperty *prop; =20 - assert(!object_class_property_find(klass, name)); + if (object_class_property_find(klass, name) !=3D NULL) { + error_setg(errp, "attempt to add duplicate property '%s'" + " to object class (type '%s')", + name, object_class_get_name(klass)); + return NULL; + } =20 prop =3D g_malloc0(sizeof(*prop)); =20 @@ -1337,6 +1342,19 @@ object_class_property_add(ObjectClass *klass, return prop; } =20 +ObjectProperty * +object_class_property_add(ObjectClass *klass, + const char *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + void *opaque) +{ + return object_class_property_try_add(klass, name, type, get, set, rele= ase, + opaque, &error_abort); +} + ObjectProperty *object_property_find(Object *obj, const char *name) { ObjectProperty *prop; --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692408; cv=none; d=zohomail.com; s=zohoarc; b=KYq6Lt1Ea9Wklg3CQtKwJYHh7D3S/5xKZioMcW25I5uRy4DvGyAjQ1kUnH1/52SoQOHe6WvZlrYgFyI18P6WFMKaQSh4842o0PdZdqGuxIGJf/5UyM/fZc8VFalYB9wBNp4KrBtJwSenJH/xZT9RqGyrFKEp3p3m+anr5/OEa5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692408; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=r0AWfh+jY5MheNqKJBdQE2Qsm/7rdLvTl4fjB54Lkjo=; b=jA5AoQ6FlwmMqiIJZjfZBA8nqCIa0Nhfj1s1yQxm6UTkvROC+iAzCnxKVy5tQGKwzOSoLpYujzTwo4wBvtKT/OmAuHPWsto2aPrviuIz6Lolq0oIiIm9LZCJGfXAzXA99HBOYWr9151Uf4e28WPfCazoNxxcQpuB4/mzVgCpK4U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692408512351.4689435919249; Mon, 9 Feb 2026 19:00:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxV-00067w-6D; Mon, 09 Feb 2026 21:58:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxT-00066P-UV for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:35 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxS-00046a-7T for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:35 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:34 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:29 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692314; x=1802228314; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dBgoK4B2qNgQOD7PnKDbnz8gI+dd9KzHU6YXtY8BNFU=; b=f4DiK29jP1p+sodHTw4+a37xfF7cb9He/nx5756zKTklViV2OuYShkxN do+RNPXfvzB5lHgRzxyyPoLt0IzPVbTit6HkwKKfG+voE4xtML7mYEElV 85B+5d9TEg17Z9EPUq64yNO/L/9ql9wF/ljUmIjugoLpRFIqHJgo5goN0 ZPZxtZj+Xj7ydF/5j5pbMkIrAe0n9KUaHqjqmTSBKawVBNESKo9ay1pMS hJStXqE99dgmjSkE3lpUkHNYp5b0O+XmXngaZ+ZOBzpa7OjPOxVmCdsRp TaZZRXPYoYjSkxcgWdtwNdbCZgiGah5ATujT0oJTAwt0YLAAAf3wZ+0+d A==; X-CSE-ConnectionGUID: C/cWd2dKSWu0lm4o5GnFXA== X-CSE-MsgGUID: O++zCyM2R/qTkdA6bHFtQg== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854263" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854263" X-CSE-ConnectionGUID: ANdU9nG2SqOGNaBxJup4ag== X-CSE-MsgGUID: Ra8qE3gHTAe9OmdAvdxF0Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800474" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 04/21] qom/object: add flags argument in object_{class_}property_try_add() Date: Tue, 10 Feb 2026 11:23:31 +0800 Message-Id: <20260210032348.987549-5-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692409262158500 Content-Type: text/plain; charset="utf-8" Add the flags argument in object_property_try_add() and object_class_property_try_add(), allowing callers to explicitly specify the property flags during creation. This will be helpful to extend qdev property definition to support marking as deprecated or internal-only. Signed-off-by: Zhao Liu --- include/qom/object.h | 21 ++++++++++++++++----- qom/object.c | 19 ++++++++++--------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 060db136988b..7d8a7be1bad3 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1103,6 +1103,11 @@ void object_unref(void *obj); * @release: called when the property is removed from the object. This is * meant to allow a property to free its opaque upon object * destruction. This may be NULL. + * @flags: property flags used to control property uses. The + * OBJ_PROP_FLAG_READ and OBJ_PROP_FLAG_WRITE flags are automatically + * set based on the presence of the @get and @set callbacks. The value + * passed here is bitwise-ORed with those automatic flags. Pass 0 if no + * other flags are needed. * @opaque: an opaque pointer to pass to the callbacks for the property * @errp: pointer to error object * @@ -1114,12 +1119,13 @@ ObjectProperty *object_property_try_add(Object *obj= , const char *name, ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *release, + ObjectPropertyFlags flags, void *opaque, Error **errp); =20 /** * object_property_add: - * Same as object_property_try_add() with @errp hardcoded to - * &error_abort. + * Same as object_property_try_add() with @flags hardcoded to 0 and @errp + * hardcoded to &error_abort. * * @obj: the object to add a property to * @name: the name of the property. This can contain any character except= for @@ -1164,6 +1170,11 @@ void object_property_del(Object *obj, const char *na= me); * @release: called when the property is removed from the object. This is * meant to allow a property to free its opaque upon object * destruction. This may be NULL. + * @flags: property flags used to control property uses. The + * OBJ_PROP_FLAG_READ and OBJ_PROP_FLAG_WRITE flags are automatically + * set based on the presence of the @get and @set callbacks. The value + * passed here is bitwise-ORed with those automatic flags. Pass 0 if no + * other flags are needed. * @opaque: an opaque pointer to pass to the callbacks for the property * @errp: pointer to error object * @@ -1175,13 +1186,13 @@ ObjectProperty *object_class_property_try_add(Objec= tClass *klass, const char *na ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *relea= se, + ObjectPropertyFlags flags, void *opaque, Error **errp); =20 - /** * object_class_property_add: - * Same as object_class_property_try_add() with @errp hardcoded to - * &error_abort. + * Same as object_class_property_try_add() with @flags hardcoded to 0 and = @errp + * hardcoded to &error_abort. * * @klass: the object class to add a property to * @name: the name of the property. This can contain any character except= for diff --git a/qom/object.c b/qom/object.c index f101b48154d1..543e42cd6f16 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1233,10 +1233,9 @@ void object_unref(void *objptr) } } =20 -static inline void object_property_flags_init(ObjectProperty *prop) +static inline void object_property_flags_init(ObjectProperty *prop, + ObjectPropertyFlags flags) { - uint8_t flags =3D 0; - if (prop->set) { flags |=3D OBJ_PROP_FLAG_WRITE; } @@ -1251,6 +1250,7 @@ object_property_try_add(Object *obj, const char *name= , const char *type, ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *release, + ObjectPropertyFlags flags, void *opaque, Error **errp) { ObjectProperty *prop; @@ -1266,7 +1266,7 @@ object_property_try_add(Object *obj, const char *name= , const char *type, char *full_name =3D g_strdup_printf("%s[%d]", name_no_array, i= ); =20 ret =3D object_property_try_add(obj, full_name, type, get, set, - release, opaque, NULL); + release, flags, opaque, NULL); g_free(full_name); if (ret) { break; @@ -1292,7 +1292,7 @@ object_property_try_add(Object *obj, const char *name= , const char *type, prop->set =3D set; prop->release =3D release; prop->opaque =3D opaque; - object_property_flags_init(prop); + object_property_flags_init(prop, flags); =20 g_hash_table_insert(obj->properties, prop->name, prop); return prop; @@ -1306,7 +1306,7 @@ object_property_add(Object *obj, const char *name, co= nst char *type, void *opaque) { return object_property_try_add(obj, name, type, get, set, release, - opaque, &error_abort); + 0, opaque, &error_abort); } =20 ObjectProperty * @@ -1316,6 +1316,7 @@ object_class_property_try_add(ObjectClass *klass, ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *release, + ObjectPropertyFlags flags, void *opaque, Error **errp) { ObjectProperty *prop; @@ -1336,7 +1337,7 @@ object_class_property_try_add(ObjectClass *klass, prop->set =3D set; prop->release =3D release; prop->opaque =3D opaque; - object_property_flags_init(prop); + object_property_flags_init(prop, flags); =20 g_hash_table_insert(klass->properties, prop->name, prop); return prop; @@ -1352,7 +1353,7 @@ object_class_property_add(ObjectClass *klass, void *opaque) { return object_class_property_try_add(klass, name, type, get, set, rele= ase, - opaque, &error_abort); + 0, opaque, &error_abort); } =20 ObjectProperty *object_property_find(Object *obj, const char *name) @@ -1863,7 +1864,7 @@ object_property_try_add_child(Object *obj, const char= *name, type =3D g_strdup_printf("child<%s>", object_get_typename(child)); =20 op =3D object_property_try_add(obj, name, type, object_get_child_prope= rty, - NULL, object_finalize_child_property, + NULL, object_finalize_child_property, 0, child, errp); if (!op) { return NULL; --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692342; cv=none; d=zohomail.com; s=zohoarc; b=l1r+ZRveQiSbatGOAVmBMO/ceywgKcTSTwC6TLtCrPWAKJQbONVcmGZ/sm6lRdii5xa2SesCiSUq75xs0s1t8UOZBYmdmdz26wcVHhODiwk6VIjWmBXtyk6pCI4xJsdGRSeFcaOWgtsGu//x/CvW0xWKURaKFctFBM0TdnAsH9w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692342; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=z2ij8nYB3Lc3oXkc9nU7LF2B7I6D4dQ3LjS+/9ZhI2Q=; b=DFX9ai2sv4nLWqG1hruxtpX9uha03F3J9qLGGZH9usEJuW28OvwFeN265m2gmj6ZBT+J8PjgfQ1iu6cXfgyWMkraUl69yjkH5Emr9Hl7/7AMrHAp69KZVH9F1Oq3gSpdDLIK0aJmt2W1tc9Q+cz8BLGkqWve1zY09LpHW6nRnaU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692342105240.09071330511654; Mon, 9 Feb 2026 18:59:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxb-0006Nw-C8; Mon, 09 Feb 2026 21:58:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxa-0006JK-4s for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:42 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxX-00046a-Mo for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:41 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:38 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:34 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692320; x=1802228320; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=w3wF2PJ2NmfCFav9tehjq5GSJZrLiro42nNm6SLBWjc=; b=WP6ieVZTcBi+ZhccvDbLLThyjBqacuVkjWxZmis+VmJ/iG4AB2Zsx58F +KnzrqN8xnQm/JYg100hLs9XkvEud51SxCT0h3Z9zx9EkT4xqI7hV16gL zm40qE9vH6LW7bI1KPlhGMP5XAqNcFKfZiCCtyDHsEcS7cV2OWeY9+sXO nQdKdiZhQEYNStCtDEQ+Ri4tJBRBVL5NUcWFypsngDXD1nVIXt+RqOeTK SU9NLIYCnFNDdGK/QvB3QqMxXXTzedp5c/x5lXJF+WZL0WwUEwFnl65ay 1Q+z6BvXjAd73Uxzhm720PahisVlIVBMRzNI8FAML3CPOBk/LCOeNmFy5 A==; X-CSE-ConnectionGUID: hg/zOwx0RhORvWnPNr/+yA== X-CSE-MsgGUID: zE8iLhVPQYOmChsqCFdw3g== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854274" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854274" X-CSE-ConnectionGUID: A2FODYfKTBuQIL6DWiuJ1Q== X-CSE-MsgGUID: 3/j2jgLfR66TOH3rhBEdYw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800508" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 05/21] qom/object: rename object_{class_}property_try_add() to object_{class_}property_add_full() Date: Tue, 10 Feb 2026 11:23:32 +0800 Message-Id: <20260210032348.987549-6-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692345567154100 Content-Type: text/plain; charset="utf-8" The suffixes "_try_add" and "_add" typically distinguish functions based solely on their error-handling behavior. However, the object_{class_}property_try_add() variants now support the additional 'flags' argument. Consequently, naming them based only on error handling no longer accurately reflects the distinction between the two interface variants. Rename object_{class_}property_try_add() to object_{class_}property_add_full() to indicate that these interfaces offer comprehensive argument support, including the new flags. Signed-off-by: Zhao Liu --- include/qom/object.h | 38 ++++++++++++++++++------------------ qom/object.c | 46 ++++++++++++++++++++++---------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 7d8a7be1bad3..30c9f20b1d18 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1087,7 +1087,7 @@ Object *object_ref(void *obj); void object_unref(void *obj); =20 /** - * object_property_try_add: + * object_property_add_full: * @obj: the object to add a property to * @name: the name of the property. This can contain any character except= for * a forward slash. In general, you should use hyphens '-' instead of @@ -1114,17 +1114,17 @@ void object_unref(void *obj); * Returns: The #ObjectProperty; this can be used to set the @resolve * callback for child and link properties. */ -ObjectProperty *object_property_try_add(Object *obj, const char *name, - const char *type, - ObjectPropertyAccessor *get, - ObjectPropertyAccessor *set, - ObjectPropertyRelease *release, - ObjectPropertyFlags flags, - void *opaque, Error **errp); +ObjectProperty *object_property_add_full(Object *obj, const char *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + ObjectPropertyFlags flags, + void *opaque, Error **errp); =20 /** * object_property_add: - * Same as object_property_try_add() with @flags hardcoded to 0 and @errp + * Same as object_property_add_full() with @flags hardcoded to 0 and @errp * hardcoded to &error_abort. * * @obj: the object to add a property to @@ -1154,7 +1154,7 @@ ObjectProperty *object_property_add(Object *obj, cons= t char *name, void object_property_del(Object *obj, const char *name); =20 /** - * object_class_property_try_add: + * object_class_property_add_full: * @klass: the object class to add a property to * @name: the name of the property. This can contain any character except= for * a forward slash. In general, you should use hyphens '-' instead of @@ -1181,18 +1181,18 @@ void object_property_del(Object *obj, const char *n= ame); * Returns: The #ObjectProperty; this can be used to set the @resolve * callback for child and link properties. */ -ObjectProperty *object_class_property_try_add(ObjectClass *klass, const ch= ar *name, - const char *type, - ObjectPropertyAccessor *get, - ObjectPropertyAccessor *set, - ObjectPropertyRelease *relea= se, - ObjectPropertyFlags flags, - void *opaque, Error **errp); +ObjectProperty *object_class_property_add_full(ObjectClass *klass, const c= har *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *rele= ase, + ObjectPropertyFlags flags, + void *opaque, Error **errp); =20 /** * object_class_property_add: - * Same as object_class_property_try_add() with @flags hardcoded to 0 and = @errp - * hardcoded to &error_abort. + * Same as object_class_property_add_full() with @flags hardcoded to 0 and + * @errp hardcoded to &error_abort. * * @klass: the object class to add a property to * @name: the name of the property. This can contain any character except= for diff --git a/qom/object.c b/qom/object.c index 543e42cd6f16..c1a1e5ff3fbe 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1246,12 +1246,12 @@ static inline void object_property_flags_init(Objec= tProperty *prop, } =20 ObjectProperty * -object_property_try_add(Object *obj, const char *name, const char *type, - ObjectPropertyAccessor *get, - ObjectPropertyAccessor *set, - ObjectPropertyRelease *release, - ObjectPropertyFlags flags, - void *opaque, Error **errp) +object_property_add_full(Object *obj, const char *name, const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + ObjectPropertyFlags flags, + void *opaque, Error **errp) { ObjectProperty *prop; size_t name_len =3D strlen(name); @@ -1265,8 +1265,8 @@ object_property_try_add(Object *obj, const char *name= , const char *type, for (i =3D 0; i < INT16_MAX; ++i) { char *full_name =3D g_strdup_printf("%s[%d]", name_no_array, i= ); =20 - ret =3D object_property_try_add(obj, full_name, type, get, set, - release, flags, opaque, NULL); + ret =3D object_property_add_full(obj, full_name, type, get, se= t, + release, flags, opaque, NULL); g_free(full_name); if (ret) { break; @@ -1305,19 +1305,19 @@ object_property_add(Object *obj, const char *name, = const char *type, ObjectPropertyRelease *release, void *opaque) { - return object_property_try_add(obj, name, type, get, set, release, - 0, opaque, &error_abort); + return object_property_add_full(obj, name, type, get, set, release, + 0, opaque, &error_abort); } =20 ObjectProperty * -object_class_property_try_add(ObjectClass *klass, - const char *name, - const char *type, - ObjectPropertyAccessor *get, - ObjectPropertyAccessor *set, - ObjectPropertyRelease *release, - ObjectPropertyFlags flags, - void *opaque, Error **errp) +object_class_property_add_full(ObjectClass *klass, + const char *name, + const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + ObjectPropertyFlags flags, + void *opaque, Error **errp) { ObjectProperty *prop; =20 @@ -1352,8 +1352,8 @@ object_class_property_add(ObjectClass *klass, ObjectPropertyRelease *release, void *opaque) { - return object_class_property_try_add(klass, name, type, get, set, rele= ase, - 0, opaque, &error_abort); + return object_class_property_add_full(klass, name, type, get, set, rel= ease, + 0, opaque, &error_abort); } =20 ObjectProperty *object_property_find(Object *obj, const char *name) @@ -1863,9 +1863,9 @@ object_property_try_add_child(Object *obj, const char= *name, =20 type =3D g_strdup_printf("child<%s>", object_get_typename(child)); =20 - op =3D object_property_try_add(obj, name, type, object_get_child_prope= rty, - NULL, object_finalize_child_property, 0, - child, errp); + op =3D object_property_add_full(obj, name, type, object_get_child_prop= erty, + NULL, object_finalize_child_property, 0, + child, errp); if (!op) { return NULL; } --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692377; cv=none; d=zohomail.com; s=zohoarc; b=JvgJcWX3tB+Lo+NOUaztyDjKNkkBhOFGvXK179/3zg62i2Cqxw1hruEam3HmB0L+8Y8npGYQFuwMWEcA/LL5LaGG3JaAUALEcPFu9ivETKojfG7wBvczKVZUjPZ2CqANog1XRFhRmlOjgCRSA9NtYUs5nWvnQAndjiEZ5JmX2Xg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692377; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N/Tpt6gIOK4Ye+3j46aquKI3wlx6MqbpDihPltSZ6dg=; b=SXArzFNkSUthr856YJlFXU/hMELYidG5tXICf2Ka3Z3M6jb93yrONNNgQB6W5dI7RxP8Y9cg/iQcsLQgDr+9lxd+sXNtfN8A4imVLSFvdmx9xPyY4NcOhedhdneNxvd3BkshshVkKP1S3tynWnJMzrg6IlRqD4wYTeTRb1VfSOE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177069237731140.25808655805247; Mon, 9 Feb 2026 18:59:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxg-0006ae-R3; Mon, 09 Feb 2026 21:58:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxf-0006VC-AY for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:47 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxd-00046a-5I for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:47 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:44 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:38 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692325; x=1802228325; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Cn71uR3nTCNArFKWH13gLj0SrrAGpnRKcH4TTQALhvw=; b=C6wL2jnbaeHrzPKAVm77osNFlSo3qRp0qqTjCB/6x2+NrKymv+cXuZws M9hHdCTG6PQW9ReorvxPjGm114PtgbPpx/8r7IHsw5nqqEIgIJLzHMyzE 7ZDB+t8PpxCgvjAblsJuKnPQVOlFJE1LGxEbNOWo5KFEk4F3M/T+5kKIO I5o6Q03kIxdA3+cjov0QurWPAbQil0BlJH+n6ab4kjSk/mbCIfumVye+W wL1q/qPzD26ioxDPq44IwLuk68KvTiGHy+cewnjuZRKk8RhWNdlV/HD5e /Lfjv/ma6ohkpafK+mMZwVcNn9Vv/J4Qbv2zAHgIzj/Tab5u32Pi663qQ w==; X-CSE-ConnectionGUID: gt+a51iGT4uSZGEz8OpotA== X-CSE-MsgGUID: Rw0VesatS0yqp2QHGDTe/g== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854288" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854288" X-CSE-ConnectionGUID: F7BhuGCCQSq1hrHdVoI2Yw== X-CSE-MsgGUID: gjiw+kI7SyqQLCZQ2c+vJA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800527" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 06/21] qom/object: add helpers to set/get/clear property flags Date: Tue, 10 Feb 2026 11:23:33 +0800 Message-Id: <20260210032348.987549-7-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692379841154100 Content-Type: text/plain; charset="utf-8" Introduce four helper functions to operate object property flags: object_property_set_flags(), object_property_get_flags(), object_property_check_flags() and object_property_clear_flags(). Among them, object_property_check_flags() is a complement to object_property_get_flags(), because sometimes it's needed to check whether certain flags are set without returning all flags. This encapsulates and separates the flag management logic, avoiding direct access to ObjectProperty internals in call sites. Suggested-by: Igor Mammedov Signed-off-by: Zhao Liu --- include/qom/object.h | 64 ++++++++++++++++++++++++++++++++++++++++++++ qom/object.c | 63 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 30c9f20b1d18..856b12e7289c 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1086,6 +1086,70 @@ Object *object_ref(void *obj); */ void object_unref(void *obj); =20 +/** + * object_property_set_flags: + * @obj: the object. + * @name: the name of the property. + * @flags: the flags to be set for the property. + * @errp: pointer to error object. + * + * Set the @flags to the property. Existing flags are preserved. + * + * Returns: %true on success, %false on failure. + */ +bool object_property_set_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp); + +/** + * object_property_get_flags: + * @obj: the object. + * @name: the name of the property. + * @flags: pointer to a location to store the retrieved flags. Must not be + * NULL. + * @errp: pointer to error object. + * + * Get the current flags of the specified property. + * + * Returns: %true on success, %false on failure. + */ +bool object_property_get_flags(Object *obj, const char *name, + ObjectPropertyFlags *flags, + Error **errp); + +/** + * object_property_check_flags: + * @obj: the object. + * @name: the name of the property. + * @flags: the flags to check for on the property. + * @errp: pointer to error object. + * + * Check whether the specified property has all bits in @flags set. + * This is useful for detecting if a property has been explicitly set + * by the user (e.g. with %OBJ_PROP_FLAG_USER_SET). + * + * Returns: 1 if all @flags are set, 0 if not all @flags are set, + * or -1 on failure (property not found). + */ +int object_property_check_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp); + +/** + * object_property_clear_flags: + * @obj: the object. + * @name: the name of the property. + * @flags: the flags to be removed from the property. + * @errp: pointer to error object + * + * Clear the @flags from the property. Other flags remain unchanged. + * + * Returns: %true on success, %false on failure. + */ +bool object_property_clear_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp); + /** * object_property_add_full: * @obj: the object to add a property to diff --git a/qom/object.c b/qom/object.c index c1a1e5ff3fbe..49ef99a299b6 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1233,6 +1233,69 @@ void object_unref(void *objptr) } } =20 +bool object_property_set_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp) +{ + ObjectProperty *prop =3D object_property_find_err(obj, name, errp); + if (!prop) { + return false; + } + + prop->flags |=3D flags; + return true; +} + +bool object_property_get_flags(Object *obj, const char *name, + ObjectPropertyFlags *flags, + Error **errp) +{ + ObjectProperty *prop; + + if (!flags) { + error_setg(errp, "invalid argument: flags is NULL"); + return false; + } + + prop =3D object_property_find_err(obj, name, errp); + if (!prop) { + return false; + } + + *flags =3D prop->flags; + return true; +} + +int object_property_check_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp) +{ + ObjectPropertyFlags prop_flags; + + if (!object_property_get_flags(obj, name, &prop_flags, errp)) { + return -1; + } + + if ((prop_flags & flags) =3D=3D flags) { + return 1; + } + + return 0; +} + +bool object_property_clear_flags(Object *obj, const char *name, + ObjectPropertyFlags flags, + Error **errp) +{ + ObjectProperty *prop =3D object_property_find_err(obj, name, errp); + if (!prop) { + return false; + } + + prop->flags &=3D ~flags; + return true; +} + static inline void object_property_flags_init(ObjectProperty *prop, ObjectPropertyFlags flags) { --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692364; cv=none; d=zohomail.com; s=zohoarc; b=XFfk1ZxfIQP513DLJUELahi8dDH4L2kTibc6pvT4JAEzyRp2nqQjAOrw34atRJ5VjioJISW5yWd3r9tj5Wj5gRfBmDjoVEdjHH52an4t3pzWzGEQ7M1NJXTPvPllFABiDaFG3V1Sy8xH0DBoEMjX8bdj9WVlpbyiJRdYm2LNm2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692364; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=c5vqj3hv+edab9q+dbH9tq000dfwH3lIihz0fGTQgAc=; b=k8ou81QF6oqMegcKMY8L7uD8PFi5X6bFv3Boj4ufRukvGQDPsqAh7roDIOkwM/wyutAd/ER8vGv+bo5WfNg3WemrwqWy5PuRzMioL9d5EJt3oZER8DEBEg7b7dgQvU+VWCF0v2diZFCpUiPNekUrRDsQJlGGCSrpPeaukNOH6P4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692364946249.60622063671826; Mon, 9 Feb 2026 18:59:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxm-0006vD-Q4; Mon, 09 Feb 2026 21:58:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxj-0006fw-Tp for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:51 -0500 Received: from mgamail.intel.com ([198.175.65.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxh-00046a-UR for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:51 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:48 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:44 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692330; x=1802228330; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=i55Q4QB2ibnxrMseEXlw3g+DVhPWxOo/yFApxpM82Oc=; b=nVUR/lGOL23Uy8kNaTwICKEXDIXfieBNVvfr3eSefuAWczn6BqRKFOdL CzgA90Em4DDWZQeHNlOxXu3OAxiGHgNwrEhO7xU7PtQne9m1XtS7K2q3w F+aWeMHlc5noH2nG0AxE3g9xpdl4O33FhGXHG9bBrNWz3Z1xh8NIf3gVj 29KcR+0R8ls0nsDFCRyEb65FFt6sQ5f0d0exZLDsraoWpOXHOPBi+uRTS 6Wbb7K58T4slqwIVEYNygKEaD8GCEo118PBl/sA6IqV1M5j5TRBKeBySb 5ttN0QaeBbDt/tljn1yLhY5SqsoIU1Rq+65MWWd7nfuoMxJ5wfczFmXgG g==; X-CSE-ConnectionGUID: 37q8+VF4Ry+ZaETbRW0QXA== X-CSE-MsgGUID: amzovffiTSGS56SP0cNBAg== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="71854301" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="71854301" X-CSE-ConnectionGUID: 9Pzac1INTRSQBKFIMMGYZw== X-CSE-MsgGUID: ZBz3h4RZQVSRCNFh5NqpAw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800555" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 07/21] qom/object: introduce user interaction flags for properties Date: Tue, 10 Feb 2026 11:23:34 +0800 Message-Id: <20260210032348.987549-8-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.18; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692367068158500 Content-Type: text/plain; charset="utf-8" Introduce three new flags to `ObjectPropertyFlags` to better manage property interactions with external users (CLI, QMP, HMP): 1. OBJ_PROP_FLAG_USER_SET: Marks a property as having been modified by an external user. This flag is designed to be "sticky": once set, it persists even if the property value is subsequently overwritten by internal logic. It allows the QEMU system to distinguish user intent. The advantage of this design is that it is not needed to manually clear the USER_SET flag on every internal write. This simplifies the logic and decouples flag management from the current property setting path (object_property_set()). This is chosen over a strict "current origin" approach (where internal writes would clear the flag) for a practical reason: QEMU code often modifies underlying struct fields (which are defined as properties) directly, bypassing the property API entirely. This makes it impossible to "accurately" track whether the *current* value truly comes from the user. Therefore, a sticky "user touched this" flag is the only meaningful and robust solution. 2. OBJ_PROP_FLAG_DEPRECATED: Marks a property as deprecated. 3. OBJ_PROP_FLAG_INTERNAL: Marks a property as internal-only, disallowing external user access. Additionally, update object_property_set_flags() to implement the enforcement logic. When a property is flagged with OBJ_PROP_FLAG_USER_SET: - If the property is also marked OBJ_PROP_FLAG_DEPRECATED, report a warning. - If the property is also marked OBJ_PROP_FLAG_INTERNAL, raise an error and stop the operation. Suggested-by: Igor Mammedov Signed-off-by: Zhao Liu --- include/qom/object.h | 24 ++++++++++++++++++++++++ qom/object.c | 15 +++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 856b12e7289c..1b77429aa28b 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -109,6 +109,30 @@ typedef enum { * will automatically add a getter and a setter to this property. */ OBJ_PROP_FLAG_READWRITE =3D (OBJ_PROP_FLAG_READ | OBJ_PROP_FLAG_WRITE), + /* + * The property was explicitly set by an external user. + * + * This flag is set whenever the property is modified via external int= erfaces + * (CLI, QMP, HMP). It allows internal code to distinguish whether the + * property has been modified by the user. + * + * Once set, this flag persists even if the property value is subseque= ntly + * overwritten by internal logic. It is NOT automatically cleared and = must + * be explicitly cleared using object_property_clear_flags(). + */ + OBJ_PROP_FLAG_USER_SET =3D BIT(2), + /* + * The property is deprecated and will be removed in the future versio= n. + * + * Any setting to this property by the user will raise a deprecation w= arning. + */ + OBJ_PROP_FLAG_DEPRECATED =3D BIT(3), + /* + * The property is internal only and cannot be set by the user. + * + * Any setting to this property by the user will raise an error. + */ + OBJ_PROP_FLAG_INTERNAL =3D BIT(4), } ObjectPropertyFlags; =20 struct ObjectProperty diff --git a/qom/object.c b/qom/object.c index 49ef99a299b6..75a1fe7ea1d3 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1242,6 +1242,21 @@ bool object_property_set_flags(Object *obj, const ch= ar *name, return false; } =20 + if ((flags & OBJ_PROP_FLAG_USER_SET)) { + if (prop->flags & OBJ_PROP_FLAG_DEPRECATED) { + warn_report("Property '%s.%s' has been deprecated. " + "Please do not use it.", + object_get_typename(obj), name); + } + + if (prop->flags & OBJ_PROP_FLAG_INTERNAL) { + error_setg(errp, "Property '%s.%s' is internal only. " + "It can't be set by external user", + object_get_typename(obj), name); + return false; + } + } + prop->flags |=3D flags; return true; } --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692430; cv=none; d=zohomail.com; s=zohoarc; b=gwIq33TKg6GF4x2KcwfBD6aC/GnB0RJaBxAQu0QfsLKhwbBihTi8fRq78XV2F31M7T7nzmodqLFv85aWl064Nvj3V34JvcwDmjYHxAq9uHk7WzLKiiXck9ihLYF65cj2mkmjoZ8jHXykE7PV9XicrUo+WlU0gtkbc6W7m9AavhY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692430; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ebfbHUYVeixhiBbjWRqUJRiVpGIifD9K1apjDFSuCLg=; b=hD1kAPb8pxtQMvhLzVdltLSEQRADwgrbMaweCBp043VshvfNyY69HwkdqVu3XN0o1RzAJQilLb5uF76eumOIQPyWhAKo7PCh8H4z27wfBFEPhTCqVta0fhF8Lbrt78tQWxt3ZraL/kYtdD0tsIfLY+964Fbkf7p7514E825n+o8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692430945528.3295693006239; Mon, 9 Feb 2026 19:00:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxs-000708-5K; Mon, 09 Feb 2026 21:59:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxq-0006xL-0Y for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:58 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxo-00049n-7i for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:58:57 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:53 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:48 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692336; x=1802228336; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YNyb/e63nn9O7NosP48x3bb0jJDEX6gcU+lAI5zDmV0=; b=f1xZ6l/uqN5juZVhnGP93MSYObXwtABIA0TNQ3pQntJMU40FrRZKi/5q XmTSglYH/KjgYfsvPn1pdCJxnzwCTxcMcYCU49ZZb1Xub4fe1ZCyaLIrq Wlvk0H7+PmM/hd/zcYoZXfSwwL81TPX0kYtW3XLtUrG7YIyeevOsaxo81 bvFF+jg4QCpQOB7ewl6BEI/Q7nuJsXvkYoq+GaFN4BdAt4lddBl3Wo60H wUh6OjMANPeaEfgEx8yYdjeAj8j0kpQf4eQbLgruLG4vBcvTvvWtYapxP vVQG2UowbbiBt8F78U2fiozhxAGQIsQ1M7FaIaRz7fYAKEqITc2xZXPxB Q==; X-CSE-ConnectionGUID: 6nQEATuuQgO4X4bAqojWOQ== X-CSE-MsgGUID: WRqUruB7RVWKSr7Den66tg== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659874" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659874" X-CSE-ConnectionGUID: oO+KYwW8RCqr4J9DDEk/fA== X-CSE-MsgGUID: sW9euM07SAeKSoWUTl8kcw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800570" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 08/21] qom/object: add from_user argument in object_property_parse() Date: Tue, 10 Feb 2026 11:23:35 +0800 Message-Id: <20260210032348.987549-9-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692432445154100 Content-Type: text/plain; charset="utf-8" Currently, object_property_parse() is used for both internal property settings and external user configurations (e.g., via HMP or global properties). To properly manage property flags (specifically OBJ_PROP_FLAG_USER_SET), it is necessary to identify the source of the property setting. Update object_property_parse() to accept a 'from_user' argument and set the USER_SET flag for the property if 'from_user=3Dtrue'. As a first step, all existing callers are updated to have 'from_user=3D false'. Next the cases set by specific external user will be identified (like HMP and global properties) and will update 'from_user' argument to 'true'. Signed-off-by: Zhao Liu --- hw/i386/sgx.c | 2 +- include/qom/object.h | 5 +++-- qom/object.c | 20 +++++++++++++++----- qom/qom-hmp-cmds.c | 2 +- system/vl.c | 2 +- target/i386/cpu.c | 4 ++-- 6 files changed, 23 insertions(+), 12 deletions(-) diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 5e792e8e6e96..8cb71be689ff 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -316,7 +316,7 @@ void pc_machine_init_sgx_epc(PCMachineState *pcms) =20 /* set the memdev link with memory backend */ object_property_parse(OBJECT(dev), SGX_EPC_MEMDEV_PROP, - list->value->memdev, &error_fatal); + list->value->memdev, false, &error_fatal); /* set the numa node property for sgx epc object */ object_property_set_uint(OBJECT(dev), SGX_EPC_NUMA_NODE_PROP, list->value->node, &error_fatal); diff --git a/include/qom/object.h b/include/qom/object.h index 1b77429aa28b..c78e1c03a106 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1655,14 +1655,15 @@ bool object_property_set(Object *obj, const char *n= ame, Visitor *v, * @obj: the object * @name: the name of the property * @string: the string that will be used to parse the property value. + * @from_user: whether the property is being set by a external user. * @errp: returns an error if this function fails * * Parses a string and writes the result into a property of an object. * * Returns: %true on success, %false on failure. */ -bool object_property_parse(Object *obj, const char *name, - const char *string, Error **errp); +bool object_property_parse(Object *obj, const char *name, const char *stri= ng, + bool from_user, Error **errp); =20 /** * object_property_print: diff --git a/qom/object.c b/qom/object.c index 75a1fe7ea1d3..7140e3f629aa 100644 --- a/qom/object.c +++ b/qom/object.c @@ -460,7 +460,7 @@ bool object_apply_global_props(Object *obj, const GPtrA= rray *props, continue; } p->used =3D true; - if (!object_property_parse(obj, p->property, p->value, &err)) { + if (!object_property_parse(obj, p->property, p->value, false, &err= )) { error_prepend(&err, "can't apply global %s.%s=3D%s: ", p->driver, p->property, p->value); /* @@ -882,7 +882,7 @@ bool object_set_propv(Object *obj, const char *value =3D va_arg(vargs, char *); =20 g_assert(value !=3D NULL); - if (!object_property_parse(obj, propname, value, errp)) { + if (!object_property_parse(obj, propname, value, false, errp)) { return false; } propname =3D va_arg(vargs, char *); @@ -1802,13 +1802,23 @@ int object_property_get_enum(Object *obj, const cha= r *name, return ret; } =20 -bool object_property_parse(Object *obj, const char *name, - const char *string, Error **errp) +bool object_property_parse(Object *obj, const char *name, const char *stri= ng, + bool from_user, Error **errp) { Visitor *v =3D string_input_visitor_new(string); - bool ok =3D object_property_set(obj, name, v, errp); + bool ok; =20 + ok =3D object_property_set(obj, name, v, errp); visit_free(v); + + if (!ok) { + return false; + } + + if (from_user) { + ok =3D object_property_set_flags(obj, name, + OBJ_PROP_FLAG_USER_SET, errp); + } return ok; } =20 diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index 32e40630c96a..6bdb241e54bd 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -58,7 +58,7 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict) error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found", path); } else { - object_property_parse(obj, property, value, &err); + object_property_parse(obj, property, value, false, &err); } } else { QObject *obj =3D qobject_from_json(value, &err); diff --git a/system/vl.c b/system/vl.c index aa9a15504174..6d8167a50006 100644 --- a/system/vl.c +++ b/system/vl.c @@ -1708,7 +1708,7 @@ static int object_parse_property_opt(Object *obj, return 0; } =20 - if (!object_property_parse(obj, name, value, errp)) { + if (!object_property_parse(obj, name, value, false, errp)) { return -1; } =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 0a7b884528ea..94a9dcde1eb1 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -8089,7 +8089,7 @@ void x86_cpu_apply_props(X86CPU *cpu, PropValue *prop= s) continue; } object_property_parse(OBJECT(cpu), pv->prop, pv->value, - &error_abort); + false, &error_abort); } } =20 @@ -8112,7 +8112,7 @@ static void x86_cpu_apply_version_props(X86CPU *cpu, = const X86CPUModel *model) =20 for (p =3D vdef->props; p && p->prop; p++) { object_property_parse(OBJECT(cpu), p->prop, p->value, - &error_abort); + false, &error_abort); } =20 if (vdef->version =3D=3D version) { --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692356; cv=none; d=zohomail.com; s=zohoarc; b=d+zSFZsq6eL1UcSHI/kYjy80YLROdFqDPXVZ3waHl7zbuIyYg4qQ9R29LCOkWz9VtfeWWP/SQYgnTYkOXUX89wcgkIZk2V7I8dazEI5fQ74DlcyV2itSMR0aMBwzqxc5jZUYvXuDfoErR0+/sz0UAox1O3EIkyhj6dtpDw6tDFs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692356; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Rm8nKR01sMS71flr12Jv/HAacCX5XJ9XqP/Ev60PWqM=; b=XFdArKnfhwaV5N4b7q1H9kRKooY7plKQ/0xLI/8+2/yTAIrSvNgT9TZ7WVf6THVSrtwsd9wdov/mXhfFnCm2VebTQl3r1bT0b7UpwPyapq87QwvTI77PumFOO2RazQvcnLCawSsx9YJCtlWhBjGdmfHOhn+tBFjmA7vTiSFZzuw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692356444244.05553982039567; Mon, 9 Feb 2026 18:59:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdxw-0007Ax-I8; Mon, 09 Feb 2026 21:59:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxs-00071G-PF for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:01 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxr-00049n-3T for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:00 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:58:57 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:53 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692339; x=1802228339; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FxBUkSvbGuB1vBs3AIUiH7+IqEBydGey1Vi/I25uNSQ=; b=RKky6QJDefmPLZ7thBp3fxMwI+G4gUWFOESdZBzmjs9VME1nmBYscOji +T2uHKYA5DXeBFlgMEOwXAR1cTSazXMXTLeRsCMrDvXKWG3uj7y3xBEHa 4nBX7Py/fZ832K5hkGRyavh7gtEoUyb/U0ySdEmdjMOBlX/3blAvNQV4g N90mJlop23/Qdf8v9Nx9+d1sj9SXhdiLtuBZc8eTPGr+WQfEXE+mFSgTj BWhvmP5dFucS1fxdGk2D4eCOLqAVLLL14qecETSD3KrRPS63PMsJeLyGB 5dJjg2FJ9O1G8czR5irOTmILWQZAFiP2EBxfj6fr9jqMkS25ZvGhW6VuX w==; X-CSE-ConnectionGUID: BlND7lESTjqhScfVeWapag== X-CSE-MsgGUID: GeT9GQeCQIuhocU3J7VDfg== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659892" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659892" X-CSE-ConnectionGUID: c5czF4V8Qa6Xe0gLHud71Q== X-CSE-MsgGUID: 5FPuJl0BQQy1SPmrXlAIPQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800584" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 09/21] qom/object: mark global property set from CLI as USER_SET Date: Tue, 10 Feb 2026 11:23:36 +0800 Message-Id: <20260210032348.987549-10-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692357122158500 Content-Type: text/plain; charset="utf-8" There are now two major categories of global properties: One category consists of true global properties collected in global_props(), sourced from CLI options like `-global` and CPU features like `-cpu`. The other category comprises compat properties derived from object_compat_props[]. Within this, object_compat_props[0] and object_compat_props[1] represent compat properties for accelerators and machines, respectively. Meanwhile, object_compat_props[2] collects sugar properties from the CLI. Although sugar properties are also applied for legacy machine options (MachineClass::default_machine_opts), considerring those hardcoded defaults simulate CLI arguments, so treating them as USER_SET is acceptable as they emulate user behavior. Therefore, among all global properties, only those in global_props() and object_compat_props[2] originate from external users. Consequently, when applying global properties via object_apply_global_props(), these two categories of user-provided properties are marked as USER_SET by passing "from_user=3Dtrue" to object_property_parse(). Signed-off-by: Zhao Liu --- hw/core/qdev-properties.c | 2 +- include/qom/object.h | 2 +- qom/object.c | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index c96ccfb26353..696dc5f201d6 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1017,7 +1017,7 @@ int qdev_prop_check_globals(void) =20 void qdev_prop_set_globals(DeviceState *dev) { - object_apply_global_props(OBJECT(dev), global_props(), + object_apply_global_props(OBJECT(dev), global_props(), true, dev->hotplugged ? NULL : &error_fatal); } =20 diff --git a/include/qom/object.h b/include/qom/object.h index c78e1c03a106..b621803f61bb 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -751,7 +751,7 @@ Object *object_new_with_propv(const char *typename, va_list vargs); =20 bool object_apply_global_props(Object *obj, const GPtrArray *props, - Error **errp); + bool from_user, Error **errp); void object_set_machine_compat_props(GPtrArray *compat_props); void object_set_accelerator_compat_props(GPtrArray *compat_props); void object_register_sugar_prop(const char *driver, const char *prop, diff --git a/qom/object.c b/qom/object.c index 7140e3f629aa..4ead0befb351 100644 --- a/qom/object.c +++ b/qom/object.c @@ -441,7 +441,7 @@ static void object_post_init_with_type(Object *obj, Typ= eImpl *ti) } =20 bool object_apply_global_props(Object *obj, const GPtrArray *props, - Error **errp) + bool from_user, Error **errp) { int i; =20 @@ -460,7 +460,8 @@ bool object_apply_global_props(Object *obj, const GPtrA= rray *props, continue; } p->used =3D true; - if (!object_property_parse(obj, p->property, p->value, false, &err= )) { + if (!object_property_parse(obj, p->property, p->value, + from_user, &err)) { error_prepend(&err, "can't apply global %s.%s=3D%s: ", p->driver, p->property, p->value); /* @@ -536,6 +537,7 @@ void object_apply_compat_props(Object *obj) =20 for (i =3D 0; i < ARRAY_SIZE(object_compat_props); i++) { object_apply_global_props(obj, object_compat_props[i], + i =3D=3D 2 ? true : false, i =3D=3D 2 ? &error_fatal : &error_abort= ); } } --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692377; cv=none; d=zohomail.com; s=zohoarc; b=Lc+i233MAxo1g35RapWmhxBR3XP/4fdY/lv1OI1e24ECKMxMPKoWmZoSeeJiSy36Bltf7ugB2GjJK7aMs8tEFGNpcXkVgoADlxWroXiKOhnf1cLfejC+qzCx3f106LpPZaCnnGM3kwcaUTD9Obp2v56G3kL0jsqxWiBFxIXk+SQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692377; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MRM6BdSzBIhN55kG502thc82iRaQQYySDyu5hbqI3Zk=; b=ODftWgo9Uc3Q2qRk0dgo/L6pd7G/yC//CyfUaF6akDs9VqVouM80o9I3DjhsJdiXtpQFZRf1wvjnjA+EG9UXBkPx+0CNO1NZs0YQ5LHyXwW1JnOWtauGtIqx4Qmj1KiCxG46Ov3snM2LOVfPaZb45iGusB2iavZTMBJ5eJEDCjE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692377333550.3692004041042; Mon, 9 Feb 2026 18:59:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdy3-0007J6-3P; Mon, 09 Feb 2026 21:59:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxy-0007Dq-LO for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:07 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdxv-00049n-Oo for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:06 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:02 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:58:58 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692343; x=1802228343; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=kTZTKkz5OV0MVWMUfNYdoNWRrLoBYW4IVLk26W7htvw=; b=NXPiR431Pr+SIUjp0kfps7kTEkYy+MyGDkqzwUFp5GXRv3Sj7YlkXITf 3kfhh+UbaFw4nwEZ21P+d5ZYX7pRoveEy386w8Od2Rba2qgF8PMrx0kBr 7quoiWWStx8zTAB6w4peckVygzG+iRpeEGEHJjbPJUI9VUrDH74/qP6dV QIski4+EHS2p0zVNGrvkpNpStZRrSYcqP8gTAnYJoaKT7Rr6DTsHWhnZF mcmHuR3snW5svLLrLZG7w/J2W4FHYb+rVQYqIYBI+6r/YLRXatxyO2pUf mAX51O+DIXGo6fV41etDWsjm0994ChBZ5vyTHfDV11yFbhOuIrQGfGJCY g==; X-CSE-ConnectionGUID: BWxJcyxTQ2ybCo40TOWe0A== X-CSE-MsgGUID: TMQwLH5RT1Ohwev64DAlnA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659906" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659906" X-CSE-ConnectionGUID: R/ui5AxRQu2dwqso2S/esA== X-CSE-MsgGUID: /pZSTZ93T52r1bwGh6F/Vg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800600" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 10/21] qom/qom-hmp-cmd: mark properties set from HMP (non-JSON) "qom-set" as USER_SET Date: Tue, 10 Feb 2026 11:23:37 +0800 Message-Id: <20260210032348.987549-11-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692379786154100 Content-Type: text/plain; charset="utf-8" The HMP command - "qom-set" is be used to set object property by external users, and object_property_parse() is used to parse and handle property setting for non-JSON case. Since the property setting is from user, pass "from_user=3Dtrue" to object_property_parse() and mark properties set in this case as USER_SET. Signed-off-by: Zhao Liu --- qom/qom-hmp-cmds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index 6bdb241e54bd..175091694f5f 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -58,7 +58,7 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict) error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found", path); } else { - object_property_parse(obj, property, value, false, &err); + object_property_parse(obj, property, value, true, &err); } } else { QObject *obj =3D qobject_from_json(value, &err); --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692428; cv=none; d=zohomail.com; s=zohoarc; b=GEvvw2w19rvgTYRuxCnO8+s8GAw84yDpQB5g1zBdF+Fbv6xmUmwO0CZxT/Me2erioQPUwru1S2NGbWG0eRNh5aasBU4z02LljQTr5iFAs6olpA21mxuAJZqmxHvHewY4J2odnjUqvWtI4J07YLo+aLCOw5QViIuRb5qXrcTNFdg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692428; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=re0zOmAnNwloWa7cf3+WqmFA11ohkNqLEsj/2BsByYI=; b=PjNlTP1CeLfT7DPuXWUoFkxSzSQX88mZ7zQqBPPH8tE7qHfornjrE8IM3xcm1EFtcBl2Vuy4oOkt/QGOQ+vSYhSIbITtpBFjNId4hP647l1gWWKb5ibc2p3BY9m6Y8hoRoosi9P3dzbK7D6LugZpZGtONjZhv6S6HeYIP/+ZvFQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177069242860116.12439542222228; Mon, 9 Feb 2026 19:00:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdy6-0007Pe-9P; Mon, 09 Feb 2026 21:59:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdy4-0007Je-6Y for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:12 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdy2-00049n-2I for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:11 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:08 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:02 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692350; x=1802228350; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ur3cP7AdR8VrQnIvQ0EdVQ5za3tvkhFVl8axcCzeabY=; b=dJarETUDtp+nof+cblgbR84K8jhKCP6mDeS8r1eLMwBd9pYLuCXVKF7o mtZVV68c98YUvS0H+cv9IRdod8eUVkCrwT9DmS1i4oX6Xus6E9Ukj+35O Hjm0uA4BTNNKUWydQWEUVuyCLiKNM9ecUcOBn+GLP6VYnGzoGWfocVAee khJECA3Iiu6uj0wpr/9n3egsSyAg4Fpu+dFimzsmfrExTX/r0nXoVB5n1 zZVm4h/lJhewBCYy7+u+MmPgOaaIE+ijy0HMDRfhJgv1kMetR+4qzPmSC SKo8p02eWeP2JfyqZRUybSD4fCCj7OBmJ/vlf4cLUaBYKpcHb1j0d/cpY A==; X-CSE-ConnectionGUID: SnBwJP2iTu6VLEaMjZ/qog== X-CSE-MsgGUID: A3toLx1PTLCdFXbE0zkiew== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659921" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659921" X-CSE-ConnectionGUID: HHl1rtJiQKCIo1glINaQuA== X-CSE-MsgGUID: KMlXl724Rea8r68Mkmdn9w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800645" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 11/21] qom/qom-qmp-cmd: mark properties set from QMP/HMP (JSON) "qom-set" as USER_SET Date: Tue, 10 Feb 2026 11:23:38 +0800 Message-Id: <20260210032348.987549-12-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692429535158500 Content-Type: text/plain; charset="utf-8" The QMP/HMP (JSON) command - "qom-set" is be used to set object property by external users, so it's from user and should be marked as USER_SET. Semantically, object_property_set_qobject() is used to convert a QObject into a property value, rather than directly parsing user input. Therefore, it is not suitable for adding a "from_user" argument like object_property_parse() does. Instead, use object_property_set_flags() to set USER_SET flag immediately after object_property_set_qobject(). Signed-off-by: Zhao Liu --- qom/qom-qmp-cmds.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index 48b38d2b7f73..5a98ea276da2 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -134,7 +134,12 @@ void qmp_qom_set(const char *path, const char *propert= y, QObject *value, return; } =20 - object_property_set_qobject(obj, property, value, errp); + if (!object_property_set_qobject(obj, property, value, errp)) { + return; + } + + object_property_set_flags(obj, property, + OBJ_PROP_FLAG_USER_SET, errp); } =20 QObject *qmp_qom_get(const char *path, const char *property, Error **errp) --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692438; cv=none; d=zohomail.com; s=zohoarc; b=j0GKTRAetb6PMB017laSavvdRnLb7e/Ikc9qNvmVXDFg1rqDNTHUzbU5s4T3y3247MN16OyrTnhwi/sV9LGKKaJyAvzJEuVJwTKx96JOZqkod2jzwPO4HXGk+MkFKWASyvS1vU+bj9YvSA73ckOq+JrQyylscep4kcyCY+NKE2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692438; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zNqr2xaGaB2IYnCeuGu1XvpkJlqWESFSaO0s3fZHIac=; b=dbWN9klyQiSg7wcrYbzFcEqAs17BoDT+VmOtRx9zDZrYJlHpGLQi5em0X0oXDmXA8s2WsOD7fUH3ucc62Ls0h2/2At9nJMGSpxAhSpVYFikwKzt8erbPH3fKK1xs+giFjnqXKLsB0V3ZR7wcq68Ggmq7vwYd2MWjxjaAGs/sjfg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692438528488.1212039842877; Mon, 9 Feb 2026 19:00:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyV-0008Ap-LL; Mon, 09 Feb 2026 21:59:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyC-0007cW-78 for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:23 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdy4-00049n-HP for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:14 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:11 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:07 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692352; x=1802228352; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rAeHvQ95Jt0xFH0E5qmmEaDICDO2TzPR3PyWD5EoqLc=; b=fm3vlcMfkhZU9o6NQkuzhrTyTK00+1ocnP7MyEIfBydKoEMgj4XRVJoi KQMQkc3POfKcLvzgPFIyAFqZ5B9cXGzWd72N17pza8UkQWXeosaKndnuV 9mphdnaUna4HTjFRd4/zYQIbNDwEqo6atPUx2GOGHTB0q6CW67X8rXJNd idtfXoCxALwsAyNqsSUZD7SMcYRlH8d/lrPAJrO54eXLZ3TOIZJofL+/+ odL2x7U1kdEr+s3DphoK8Fk/NdGMXaizyn1dGCwGr3cfkU0amPDNyFVoI GxP9BRDMTpg9plm7c9JuoqaD/gGEnSoDKaXyEe7wF2FZIHJTx20nBWEY9 g==; X-CSE-ConnectionGUID: 2F4fN9u8QaOkbmtk43reYw== X-CSE-MsgGUID: aoMPVT5GTwytirNpUde92Q== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659928" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659928" X-CSE-ConnectionGUID: mPc096nsQw6f2k2CIWWXkg== X-CSE-MsgGUID: uPjqpBA5TT2tIveyVnwgwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800661" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 12/21] qom/object_interfaces: mark properties set from qdict & keyval as USER_SET Date: Tue, 10 Feb 2026 11:23:39 +0800 Message-Id: <20260210032348.987549-13-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692439404158500 Content-Type: text/plain; charset="utf-8" object_set_properties_from_qdict() serves as the common entry point for parsing and setting properties from qdict (and keyval). This function is primarily utilized for external user configuration: 1. User Creatable Objects (via user_creatable_add_type()): - QMP: object-add - HMP: object_add - CLI: -object (qemu), --object (qemu-img * / qemu-io / qemu-nbd / qemu-storage-daemon) - Authz list files ("authz-list-file") 2. Device and Machine creation (keyval-based): - CLI: -machine / -device - QMP/HMP: device_add - Failover devices: virtio_net parses user's "qdict" in failover_add_primary(). 3. Built-in default machine options (MachineClass::default_machine_opts): - These hardcoded defaults simulate CLI arguments and are parsed via sugar property way or keyval. Treating them as USER_SET is acceptable as they emulate user behavior. There are a few internal corner cases where devices are created using an internal qdict: - Xen USB (usbback_portid_add()) - Intel HDA (intel_hda_and_codec_init()) Creating devices via internal qdict should be considered as legacy technical debt and this should be refactored in future work. For these cases, applying the USER_SET flag is a temporary and acceptable side effect. Therefor, update object_set_properties_from_qdict() to explicitly mark properties as USER_SET. Signed-off-by: Zhao Liu --- qom/object_interfaces.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index 415cbee8c5cf..f0d5f9d84300 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -56,6 +56,11 @@ static void object_set_properties_from_qdict(Object *obj= , const QDict *qdict, if (!object_property_set(obj, e->key, v, errp)) { goto out; } + + if (!object_property_set_flags(obj, e->key, + OBJ_PROP_FLAG_USER_SET, errp)) { + goto out; + } } visit_check_struct(v, errp); out: --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692384; cv=none; d=zohomail.com; s=zohoarc; b=CH8HNx74ai9fn8Yaos3//HAPY6WWlV5FedqnQJCf0PQ00atd1AH+7yOEd+skUmVLisnH4cniA230UMW77KWLgCpbefN+ZOPL+v0wM0VtuZQWiRqcucjxslEYgWe1No1mXlKJMxLCYL3Mrhrv0WgqjrEBiPLecI23xwssl41hwXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692384; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bRGvtSde0Xs+WSfOkEaFM7GVQejxfdFLSfBP1icHCeE=; b=IlsOAmNu3nHdUiRtfvBbaEF9xT2CGnStvlQqYXgugvUQ0+gIBm/rQruPBhVlOmrDyDeRg3ywQAh5SfAhtajgAspfDbzvZg3ndXr5x82cGuYteeqFI1oBmpzKzJgsfOeb/9R0jpSL+yKFICyAiSGCkbsmlKCT103WDRyPpwus8qM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692384794566.5959214780601; Mon, 9 Feb 2026 18:59:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyY-0000FD-CV; Mon, 09 Feb 2026 21:59:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyF-0007cf-1U for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:24 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyC-0004Bd-5C for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:22 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:15 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:11 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692360; x=1802228360; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RZOWK3iyK/6cs1o3p+O8+EgG5X+lzDVxBDR9rbRf94k=; b=GP+qhLOmlDcYBG3vtog1FcBvKqZ+byx9azxG0waUaoEmczi2l4QYLGvF EkxWxOZE41LqgJm6s9FEdxAA1PIP6kLXz6NeEXZd3cam4aARjhaHhToqi k7hGo0afpEAybvdNQSLEHoNYKu6oFybVfKJ9Rlq5Pw9erpwKCxfVUTycu 7ShT+iNa9MraMNPE4+c5LCeWxMl+hQyEGb1gCmyYZGmG/3J/yjNK3V/16 ZI4mgmOVmvpKF6WesuAyNCFHAAevtGP2sjqpEUErrg1lXKq/dTvlL0PdD bbdQBhjTV7pR/OiXjrKcXpWlhLfwYb/IipGU+/QZslddghqesYGcFfvlY A==; X-CSE-ConnectionGUID: vKawBHpLTnyPWCuBI3mtXg== X-CSE-MsgGUID: 1cUIJ90OTMe6d5B80tC6cQ== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659940" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659940" X-CSE-ConnectionGUID: 1/i1p0QARLuY05jaVlS/BQ== X-CSE-MsgGUID: r7CzNyLVRo2uuCCNN7ET7g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800677" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 13/21] system/vl: mark property set in object_parse_property_opt() as USER_SET Date: Tue, 10 Feb 2026 11:23:40 +0800 Message-Id: <20260210032348.987549-14-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692393765158500 Content-Type: text/plain; charset="utf-8" At present, object_parse_property_opt() is only used for -accel, which handles user configurations from CLI. So, mark the property as USER_SET in object_property_parse(). Also, add a comment to the function to clarify this specific usage context, and it can serve as a reminder to future callers that utilizing this function implies the property setting originates from the external user. Signed-off-by: Zhao Liu --- system/vl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/system/vl.c b/system/vl.c index 6d8167a50006..ef1d4e5d96af 100644 --- a/system/vl.c +++ b/system/vl.c @@ -1700,6 +1700,10 @@ static MachineClass *select_machine(QDict *qdict, Er= ror **errp) return machine_class; } =20 +/* + * object_parse_property_opt() is only used for -accel, so mark the + * property as USER_SET in object_property_parse(). + */ static int object_parse_property_opt(Object *obj, const char *name, const char *value, const char *skip, Error **errp) @@ -1708,7 +1712,7 @@ static int object_parse_property_opt(Object *obj, return 0; } =20 - if (!object_property_parse(obj, name, value, false, errp)) { + if (!object_property_parse(obj, name, value, true, errp)) { return -1; } =20 --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692387; cv=none; d=zohomail.com; s=zohoarc; b=Sl7J/Na1c422zFhEm3yqFFi3HJe+ll35BKkx935SXfgxudmV+Nm9RxUrNYsHj2x4SHnpXfq4YMEpHFlhbtvYk7oVZ3n5LPmzZ6iuJFCha/HZVlDLkriIOGt3ykFArkL4L9WIn1HW2Ij26s0LeOTdUMZSRjiBRuUYSV7wIL8I3FA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692387; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zFillHrxw4/nG5od8qoLJLHuI6ziUW5DMF+3HQNC+hU=; b=BbWki8c61vC/VO+64XECjv1soVkzRI3IpYNWRVxEGbArycG0t2gUkVAV4M1vUltUrtukf9CKJBuMgwMmG3X5jyra2337qQznFONhec1DR06WPe4ccSW4Wef3EjJg1aJK5qbkvbWHkDImy8ripXIxz8o+PF73GVAIt+47ZfNGtrw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692387371588.6359790541071; Mon, 9 Feb 2026 18:59:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyW-0008RD-Lw; Mon, 09 Feb 2026 21:59:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyF-0007cg-7v for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:24 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyD-00049n-5S for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:22 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:20 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:16 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692361; x=1802228361; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yalC0/aqWFr4iSafee5JGmouLwexJcSFVL+H5tixrSc=; b=WXoJ2Mv55mX2hWRf+e+PmNPqNuJfxndLHOK4z3icsfsnTqxOzb9+is5V q+i7h+YmSu4B1b4J9kjsxh186EBFH3viSAgXIzPTCDyYuHecwZKsFfA4N m3FIXvKuCRYox4DYWUPb0vlqFZ4JdqhLZu43FjM4ZNdbG3RtcoOxa+i60 9ljkzSwLtpP4WmWdLQ5FpECit+Cg6G4s5V563UtQuGfpXPRTxlS+o2Exe o6mvkhsjyI5zpUdZ9bkfA5OhmQe7JObdm6MEo2NwMKXmqXanIcWJAiXGc rDR2UAambunowWIb+6UhLi0OVWH/UA5U27/2vnbLP/5wZQmI/eXJFQM+O w==; X-CSE-ConnectionGUID: 75px56qeRoG6y9FpJo2Pag== X-CSE-MsgGUID: dUp9vm1/TqGtdHHA9yBudw== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659951" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659951" X-CSE-ConnectionGUID: 2oZcElVlRq2Nr5RMhkLzSw== X-CSE-MsgGUID: xM69DtmVS4mG5gcpkoBh9A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800693" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 14/21] hw/core/qdev-properties: allow qdev properties accept flags Date: Tue, 10 Feb 2026 11:23:41 +0800 Message-Id: <20260210032348.987549-15-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692389807154100 Content-Type: text/plain; charset="utf-8" Update qdev property interfaces (qdev_property_add_static() and qdev_class_add_property()) to accept and pass 'ObjectPropertyFlags'. This enables marking qdev properties with flags such as DEPRECATED or INTERNAL. To facilitate this at the definition level, extend the boolean and uint8_t property macros (as the examples) to accept variable arguments (VA_ARGS). This allows callers to optionally specify flags in the property definition. Example: DEFINE_PROP_UINT8("version", IOAPICCommonState, version, IOAPIC_VER_DEF, .flags =3D OBJECT_PROPERTY_DEPRECATED), Signed-off-by: Zhao Liu --- hw/core/qdev-properties.c | 26 +++++++++++++++----------- include/hw/core/qdev-properties.h | 24 ++++++++++++++---------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 696dc5f201d6..91c4010e7dc9 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1071,11 +1071,13 @@ void qdev_property_add_static(DeviceState *dev, con= st Property *prop) =20 assert(!prop->info->create); =20 - op =3D object_property_add(obj, prop->name, prop->info->type, - field_prop_getter(prop->info), - field_prop_setter(prop->info), - prop->info->release, - (Property *)prop); + op =3D object_property_add_full(obj, prop->name, prop->info->type, + field_prop_getter(prop->info), + field_prop_setter(prop->info), + prop->info->release, + prop->flags, + (Property *)prop, + &error_abort); =20 object_property_set_description(obj, prop->name, prop->info->description); @@ -1097,12 +1099,14 @@ static void qdev_class_add_property(DeviceClass *kl= ass, const char *name, if (prop->info->create) { op =3D prop->info->create(oc, name, prop); } else { - op =3D object_class_property_add(oc, - name, prop->info->type, - field_prop_getter(prop->info), - field_prop_setter(prop->info), - prop->info->release, - (Property *)prop); + op =3D object_class_property_add_full(oc, + name, prop->info->type, + field_prop_getter(prop->info), + field_prop_setter(prop->info), + prop->info->release, + prop->flags, + (Property *)prop, + &error_abort); } if (prop->set_default) { prop->info->set_default_value(op, prop); diff --git a/include/hw/core/qdev-properties.h b/include/hw/core/qdev-prope= rties.h index d8745d4c65f1..c06de37b1e9d 100644 --- a/include/hw/core/qdev-properties.h +++ b/include/hw/core/qdev-properties.h @@ -11,6 +11,7 @@ * and the field retains whatever value it was given by instance_init). * @defval: default value for the property. This is used only if @set_defa= ult * is true. + * @flags: property flags to control uses. */ struct Property { const char *name; @@ -27,6 +28,7 @@ struct Property { int arrayfieldsize; uint8_t bitnr; bool set_default; + uint8_t flags; }; =20 struct PropertyInfo { @@ -97,10 +99,11 @@ extern const PropertyInfo qdev_prop_link; .set_default =3D true, \ .defval.u =3D (bool)_defval) =20 -#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= \ - DEFINE_PROP(_name, _state, _field, _prop, _type, = \ - .set_default =3D true, = \ - .defval.u =3D (_type)_defval) +#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type,= ...) \ + DEFINE_PROP(_name, _state, _field, _prop, _type, = \ + .set_default =3D true, = \ + .defval.u =3D (_type)_defval, = \ + ##__VA_ARGS__) =20 #define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) \ DEFINE_PROP(_name, _state, _field, _prop, _type) @@ -118,10 +121,11 @@ extern const PropertyInfo qdev_prop_link; .set_default =3D true, = \ .defval.i =3D (OnOffAuto)_defval) =20 -#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_bool, bool, \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval) +#define DEFINE_PROP_BOOL(_name, _state, _field, _defval, ...) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_bool, bool, \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval, \ + ##__VA_ARGS__) =20 /** * The DEFINE_PROP_UINT64_CHECKMASK macro checks a user-supplied value @@ -168,8 +172,8 @@ extern const PropertyInfo qdev_prop_link; DEFINE_PROP(_name, _state, _field, qdev_prop_link, _ptr_type, \ .link_type =3D _type) =20 -#define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) +#define DEFINE_PROP_UINT8(_n, _s, _f, _d, ...) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t, ##__VA_= ARGS__) #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) #define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692427; cv=none; d=zohomail.com; s=zohoarc; b=UajQG2v81PJ5dShLU8rpG9IgJ26+Vv80QYpl9Jf0oVM80aLK8sswEfFZi7n6PfAb2EmkbAzfU9xlbDoJHu0czY54b3801UjjgJoSCAiNVb8q/3Wsr7n9WziBJUth3DMqjvW1CA36sKm8y7WfjJXpwKOP+ARsxVTodcftw54q4qM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692427; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Cv71z/N9hyoaouUjYxE9MO1QCdTLKDUTpQ9HFeg71aA=; b=ZjS7Hu28KC0VwAswL8KYbsP/OUYE7kf2O6hdnpQ/xDYGhn+4w4l8oZx/n9kmfgtRYDskfNV5N1JIj6BoLWfwUEUVUjK0/0Ls/uAp0ZVDfLbbGpGi83WKV+nrOn+i7392TDmWiBX4y8YvXjfQ1jY0r59qmCY/iW2Hi/3QMZOMrHI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692427545423.238731464725; Mon, 9 Feb 2026 19:00:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyX-0008Vl-4y; Mon, 09 Feb 2026 21:59:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyK-00086v-Rs for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:31 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyJ-0004En-25 for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:28 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:24 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:21 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692367; x=1802228367; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FzssT/Ir75O6xe5arR/QxgvvLYXw6aFHUgJgDoyi+Mw=; b=O2C/5h6L+J/xCyZbIKXZ7ScV78DmXuEBqnUullBNb8JiyJLS28G1geeN C0y3nwtsbrsrn/SCa1W7j3q7kfUNuznwA4lg5GkNajAWYkaNfhgT5mcF4 IsAQFAlPXtkz8xcHT3LjsHJVqs25wxgt9rUU9hfsxSD/pvz/iQdznYJd6 5WVlj+nVgAiXid/lvMmzAPj+UgItuyPNLJW+zRAzeTyjocgcQ/W06XfGQ 3x7FXU/qD0rXts8CXoXOEdI9I9fPP0akGqg4s2KX9hIzSc0WnqV27ZGWz h++B0xiNnqTCfsbPuQ6J5XdJlJKuO7Gzxz0xsOy8D/878VkRopj2nv13k w==; X-CSE-ConnectionGUID: WShSdb0fRPO/GcVe2YxasA== X-CSE-MsgGUID: S8tzyPE+SDKdCRQl3iFlFQ== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659961" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659961" X-CSE-ConnectionGUID: s6QsOcZURWusmf9pAMQlXA== X-CSE-MsgGUID: mYGrl1f/SqmV4GCjCAv9nQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800711" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 15/21] target/i386: deprecate fill-mtrr-mask property Date: Tue, 10 Feb 2026 11:23:42 +0800 Message-Id: <20260210032348.987549-16-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692429536158500 Content-Type: text/plain; charset="utf-8" "fill-mtee-mask" was previously disabled only on PC-Q35-2.6 and PC-I440FX-2.6 machines, but PC v2.6 machines have been deprecated and will be removed. Considerring it may have external use, so deprecate it before removal. Signed-off-by: Zhao Liu --- docs/about/deprecated.rst | 8 ++++++++ target/i386/cpu.c | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 1d5c4f3707cb..0e8a25e37414 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -448,6 +448,14 @@ Backend ``memory`` (since 9.0) CPU device properties ''''''''''''''''''''' =20 +``fill-mtrr-mask`` on x86 (since 11.0) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``fill-mtrr-mask=3Dtrue`` fill the bits between 51..number-of-physical= -address +-bits in the MTRR_PHYSMASKn variable range mtrr masks. It was previously s= et to +false only on PC-Q35-2.6 and PC-I440FX-2.6 machines, but PC v2.6 machines = have +been removed. Deprecate this property to stop external use. + ``pmu-num=3Dn`` on RISC-V CPUs (since 8.2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 94a9dcde1eb1..13ccb1702d32 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -10510,7 +10510,8 @@ static const Property x86_cpu_properties[] =3D { DEFINE_PROP_UINT32("guest-phys-bits", X86CPU, guest_phys_bits, -1), DEFINE_PROP_BOOL("host-phys-bits", X86CPU, host_phys_bits, false), DEFINE_PROP_UINT8("host-phys-bits-limit", X86CPU, host_phys_bits_limit= , 0), - DEFINE_PROP_BOOL("fill-mtrr-mask", X86CPU, fill_mtrr_mask, true), + DEFINE_PROP_BOOL("fill-mtrr-mask", X86CPU, fill_mtrr_mask, true, + .flags =3D OBJ_PROP_FLAG_DEPRECATED), DEFINE_PROP_UINT32("level-func7", X86CPU, env.cpuid_level_func7, UINT32_MAX), DEFINE_PROP_UINT32("level", X86CPU, env.cpuid_level, UINT32_MAX), --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692403; cv=none; d=zohomail.com; s=zohoarc; b=VD8Y2G984m3Zi2caz5mADHbFqSBIfNp8jGgdss0JsEp4Di8bstetF7yTvokz2lDDcNDBfez1pLDsCJ0VKYGXzaxsyu05+Rxe+tBH//PjfNMhYE3/rP16hGhdSk3lGwjrwNKkvgfjbeIwU3bqB9gAmlXjWB83pDBzuhdG+4R7Ocs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692403; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YmCnqMGafFkY23VmWGBEvgABK+NUq06+cwb/hSKDXOc=; b=kihtfJEvTKNavbM3b6fNeeYA/4CRRNclzrFvqKD+zAiBjzXCoNNkWhxqqXRnzryvUcx7xi97zZvhg4lqk7c2YYg+BzQ9fnU2fArD9bj2NUO1n3qzzHHaDzwzK3AZWf2BVrGHZa2F5p/BcUabH5vpjwzrhXPz/SHm6e4FVFlVyOw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692402798299.78352834227576; Mon, 9 Feb 2026 19:00:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyY-0000FE-Hx; Mon, 09 Feb 2026 21:59:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyN-0008AK-Sn for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:35 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyM-0004En-7G for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:31 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:29 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:25 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692370; x=1802228370; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LigRHQwWAD31PQTypxiGTImF+tjLtIXfRGIv8W1lHg8=; b=DwHXpFh0GhbX5HZ0hXff4LCTgLmPKJdtsQdN/wNrRRmxetfbCDvC6T9v G/MKu4Hdrcu8xGclRX2YpOgp4o3D+YXQTj7TDQwON+T9kURLSC59ldxOd OC8Zh0pWFYKN4FpUHCDb6tH1Iiboj/6HbsJjm8lHYMUfwlCFCCTBnIoC8 +8gK5BT7jy/Xem8LJWytC3q1p7Zd2EfBcmz8nnsGFmuxOSSq3fDnGXN+u bBMdVl2/yLoDu/V+4tWat/RdEPMQE70lv/2I7rOFxKVvxMTb0BGKkdMN0 gQlMrR2K8S7jhkia/QmNZ3CIzmonRHkC6Kp3OxZnWYpB/85Y3PWI06ixG Q==; X-CSE-ConnectionGUID: VuSjy6bARjGi7ElDw2IqfQ== X-CSE-MsgGUID: GkTlID+gQWqnR2q9eStaBA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659971" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659971" X-CSE-ConnectionGUID: 5rPKbzLYRgSPUbhIJMODbg== X-CSE-MsgGUID: 0StkaQtEQEq/BR7OB0dJ2g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800723" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 16/21] target/i386: deprecate cpuid-0xb property Date: Tue, 10 Feb 2026 11:23:43 +0800 Message-Id: <20260210032348.987549-17-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692404122154100 Content-Type: text/plain; charset="utf-8" "cpuid-0xb" was previously disabled only on PC-Q35-2.6 and PC-I440FX-2.6 machines, but PC v2.6 machines have been deprecated and will be removed. Considerring it may have external use, so deprecate it before removal. Signed-off-by: Zhao Liu --- docs/about/deprecated.rst | 10 ++++++++++ target/i386/cpu.c | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 0e8a25e37414..fed939b7f042 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -456,6 +456,16 @@ The ``fill-mtrr-mask=3Dtrue`` fill the bits between 51= ..number-of-physical-address false only on PC-Q35-2.6 and PC-I440FX-2.6 machines, but PC v2.6 machines = have been removed. Deprecate this property to stop external use. =20 +``cpuid-0xb`` on x86 (since 11.0) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``cpuid-0xb`` is used to control whether to encode CPUID 0xB leaf or n= ot. +Only legacy x86 CPUs didn't have 0xB leaf, and the ```level``` property can +control whether CPUID exposes the 0xB leaf and emulate legacy CPUs. This +property was previously set to false only on PC-Q35-2.6 and PC-I440FX-2.6 +machines, but PC v2.6 machines have been removed. Deprecate this property = to +stop external use. + ``pmu-num=3Dn`` on RISC-V CPUs (since 8.2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 13ccb1702d32..3766d453157b 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -10523,7 +10523,8 @@ static const Property x86_cpu_properties[] =3D { DEFINE_PROP_UINT64("ucode-rev", X86CPU, ucode_rev, 0), DEFINE_PROP_BOOL("full-cpuid-auto-level", X86CPU, full_cpuid_auto_leve= l, true), DEFINE_PROP_STRING("hv-vendor-id", X86CPU, hyperv_vendor), - DEFINE_PROP_BOOL("cpuid-0xb", X86CPU, enable_cpuid_0xb, true), + DEFINE_PROP_BOOL("cpuid-0xb", X86CPU, enable_cpuid_0xb, true, + .flags =3D OBJ_PROP_FLAG_DEPRECATED), DEFINE_PROP_BOOL("x-vendor-cpuid-only", X86CPU, vendor_cpuid_only, tru= e), DEFINE_PROP_BOOL("x-vendor-cpuid-only-v2", X86CPU, vendor_cpuid_only_v= 2, true), DEFINE_PROP_BOOL("x-amd-topoext-features-only", X86CPU, amd_topoext_fe= atures_only, true), --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692407; cv=none; d=zohomail.com; s=zohoarc; b=hTn9beidFpGwoN2K8ec6OklqvN+ih68lm2qCV74CgBtIjltu4wFiCoCS0DfFb/jsN5nIuaccVcEp4ul3k7gwGNgErbNEcy/8haPSGrfdLsV037R1yJ89BsI2s4ziZOwde26PL/NP86rFUECURyQakw/R47Q8avCi3l3Jg04V+yQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692407; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UsmGbyo8Kby8z4q1Oh8Lh6cM25hKC3+obij9gqIy6Tg=; b=ewTitlkHxpx566V8pi/BC2EXwlw9NM+DgN0yMaVyzXKyoHMxqoYcJ7BOdkHD43mJd3bitdQUs9xwFwpz5sdonA795pOD5AP/AWUWGyeuOP2SvZbgBnIwl7cStBUUxnZgJrpocDnaPBH1Qkha+ci+H2kY0DUDhA78u0IZk820POs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692407817255.49854352278635; Mon, 9 Feb 2026 19:00:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyZ-0000Qi-F6; Mon, 09 Feb 2026 21:59:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyS-0008CQ-0s for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:39 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyQ-0004En-Cm for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:35 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:33 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:30 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692374; x=1802228374; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9LTRFVx1MfhNyW7FER5k/YNTnETyxDx/pDfTCZ5rO5U=; b=M9h5yRoKs/g9ti0RY+ugkQMt7LEpIvNribS92GNBvgkDfk9VgR3mtPx8 xMgCM8q5ZxccGEkGLZiFN2yCugZm/2HDI40A7o9Z7ANQAaPmtySxmMzd3 E2dI39E63rBVA5EhXmlV6VAb8EsysPfaog/W1lELSODonsmWABxNxCVFD 3ySvBZf5YbLamVdExpW7fY1aeQZOarXVLZYkSJhLtELCBh8cReqFDF+CB 5/f/npN+Jm2AzWi6Y/CRAgSVu+P4o0SskoZ973Q3z3ojP8PFjcWjNpA2B z085p9XW3Q36XusIi7tW1gjlq87iB9rCH7VpSY0qx4Tpjuf33gb00Ke5g g==; X-CSE-ConnectionGUID: l5vZ55brTf+gzS0uA4AlvQ== X-CSE-MsgGUID: iKcqusXbTEihyEj6iXxwLA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659982" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659982" X-CSE-ConnectionGUID: 2mxHVZ+lTdGgR7ljJFKiYg== X-CSE-MsgGUID: 8aDixjShRO22WY9VDJIhhg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800737" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 17/21] hw/intc/ioapic: deprecate version property Date: Tue, 10 Feb 2026 11:23:44 +0800 Message-Id: <20260210032348.987549-18-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692409205158500 Content-Type: text/plain; charset="utf-8" "version" was previously set to "0x11" for v2.7 x86 machines, but v2.7 machines have been deprecated and will be removed. And since v2.8, all x86 machines are using IOAPIC with "0x20" version. So it should be not needed to configure the version back to "0x11" again. Considerring it may have external use, so deprecate it before removal. Signed-off-by: Zhao Liu --- docs/about/deprecated.rst | 13 +++++++++++++ hw/intc/ioapic.c | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index fed939b7f042..dac1940636a6 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -483,6 +483,19 @@ It was implemented as a no-op instruction in TCG up to= QEMU 9.0, but only with ``-cpu max`` (which does not guarantee migration compatibility across versions). =20 + +Global options +-------------- + +``-global ioapic.version=3Dversion_id`` (since 11.0) +'''''''''''''''''''''''''''''''''''''''''''''''''' + +The ``version`` configures IOAPIC version for x86 machines. It was previou= sly +set to ``0x11`` for v2.7 machines, and since v2.8, the default version is +bumped up to ``0x20``. The v2.7 machines have been removed, and ``0x11`` +version should be not needed. Deprecate this property to stop external use. + + Backwards compatibility ----------------------- =20 diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c index 98de6ca8108f..3bf21f421a71 100644 --- a/hw/intc/ioapic.c +++ b/hw/intc/ioapic.c @@ -483,7 +483,8 @@ static void ioapic_unrealize(DeviceState *dev) } =20 static const Property ioapic_properties[] =3D { - DEFINE_PROP_UINT8("version", IOAPICCommonState, version, IOAPIC_VER_DE= F), + DEFINE_PROP_UINT8("version", IOAPICCommonState, version, IOAPIC_VER_DE= F, + .flags =3D OBJ_PROP_FLAG_DEPRECATED), }; =20 static void ioapic_class_init(ObjectClass *klass, const void *data) --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692407; cv=none; d=zohomail.com; s=zohoarc; b=cLG4Ihvq+49+LPILZnXyaWeoKDhAkg3GcJ/ovjwNWMd1QCmQVJPwkOlbxNupLtMRSsHD6kdTaBDU9JFCQgoRNKunHIF7fS8XaNSWW2zPHbiS8mGaudljHswvozNSZAy3F+h/hyiUalJPKeZi/RsAViyh7shVoxJrVouIjcoS7cU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692407; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=M5KG3iaG2aJT+NSmUmMa+YrGLNEbRF6O52lzPrTr7ts=; b=S63aTVtc9Q9D75afc879A9Zj9TgYFd47mz9BDyMeH3iVAgzfOtQPfYj2pL4kE6iGFQcka4MNRq7D7bll4OPNgCjz2D/pLSqgWc7F9d3bQRBdkXgU6byWG89rqbOz3JWvu1TYVJADuMCe+AIa3+LwFFp9kGztP7Z+VjOwT1bmyeo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692407327860.0874244309698; Mon, 9 Feb 2026 19:00:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdyf-0000qU-F1; Mon, 09 Feb 2026 21:59:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyX-00009z-HJ for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:41 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyV-0004En-Tu for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:41 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:39 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:34 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692379; x=1802228379; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Gbu5Q9ZD3mjjaunJEzsqqpo2xtfMXEg1RIkHam+uUew=; b=i8mapXvkmtQCxes2mGytcxTN0rTWPfh7yzymf69VomHGJ6Hun6YvQEX9 mcTakQEIrOKoY8J64ot6S2QCPzuuthnNc8SHJZQ+nrrUNLh7dCd5hUMqU HKoXZ4F9LGZsZcBl6RZjz0RIFW6qLbV6XMZgDqN2kTezLT4u7D/m1+RCF uLaLfS8gmlScbrLYJ2XvVgOKEbecjVViAH8rlmp+bBAw7YICwAapD3JcN bZEsQqvhTQEiq0PD2FdBId95IpNks1xFtZQuOx7myrtlTzt3TYOyQ7ghy qv+GTMpy7vpyhP68iW7rjJANzLqYu/zTM0D1gjDO7ofuOi33n2o+Wy507 A==; X-CSE-ConnectionGUID: YKnK+DlcSDij65MT1DYbDg== X-CSE-MsgGUID: 7dKDmAxqTXWb+DhJlXHRHw== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75659991" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75659991" X-CSE-ConnectionGUID: E4aMS0lPRXqF3lI4A2EYlA== X-CSE-MsgGUID: kzxe8lcBTXOkgnyCNxwFmw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800756" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 18/21] target/i386: mark x-consistent-cache property as internal-only Date: Tue, 10 Feb 2026 11:23:45 +0800 Message-Id: <20260210032348.987549-19-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692407954154100 Content-Type: text/plain; charset="utf-8" x-consistent-cache property is a compatibility option that defaults to "true". For old machines, it is set to "false" to maintain the (legacy) inconsistent cache model for Intel CPUs. In fact, such wrong and inconsistent cache model should be treated as buggy "hardware", so that there is no valid use case for users to manually disable this property. Therefore, mark it as internal-only via OBJ_PROP_FLAG_INTERNAL flag, and prohibit all external settings. Signed-off-by: Zhao Liu --- target/i386/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 3766d453157b..c2f99b98014a 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -10541,7 +10541,8 @@ static const Property x86_cpu_properties[] =3D { * own cache information (see x86_cpu_load_def()). */ DEFINE_PROP_BOOL("legacy-cache", X86CPU, legacy_cache, true), - DEFINE_PROP_BOOL("x-consistent-cache", X86CPU, consistent_cache, true), + DEFINE_PROP_BOOL("x-consistent-cache", X86CPU, consistent_cache, true, + .flags =3D OBJ_PROP_FLAG_INTERNAL), DEFINE_PROP_BOOL("legacy-multi-node", X86CPU, legacy_multi_node, false= ), DEFINE_PROP_BOOL("xen-vapic", X86CPU, xen_vapic, false), =20 --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692432; cv=none; d=zohomail.com; s=zohoarc; b=nRUF5HbVJDQNZ08n+Mx4E/Md4MjTnffJpJBfNrcj093BLg9IUiWNdoef2vWAJE7gqSltyY+eEbeZP8DsEdab/deZTRIsp5DQrlRRDhmhKULfDW2qDVYg7z1w66gMODGXab2kYZbAvig3/3zTj8tgauYiUgZ/rDDRiVmomG8YA6E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692432; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=U/VVt3f48h62xJh6obLpEYmGhB6WHom4oUW3/fCWdtk=; b=OJBvpFznpHALkfGDpOoOfgXgUbAxrsT7SvdVl6dCzVSwGxGCLUJ4mi5ATH/keC0LwsyjmWiD3D1kROp8qEfOyIJN5pTSDGGrSalqLCqwmIaPDU0M+7aZbudoxax0HGX7gP27AGAdu5yD0ZEjysSiofQgAf8ngSWrT53sCmMFVXA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692432082513.5416332076234; Mon, 9 Feb 2026 19:00:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdz7-0001dG-Lj; Mon, 09 Feb 2026 22:00:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyi-00015v-NP for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:53 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyZ-0004En-Hs for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:44 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:42 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:39 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692383; x=1802228383; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7fc/Brd+iTgkhX2nnl5fk6qLcnnHrIhJ0ubwi9AbENI=; b=YgXTpv66HHz2DxKa2TrhPxL0OuM4toljeGlStYu7Z+l7uDDEB9hblskq vdjPxEztjvSiBnIDXUWwAM5DJ6vsNQdoc9rvi0bKB+ccBBrCObRxdKXda 9/KUu9BVIv7q+Yn8P17q7+jld1ivyAwVdL9xlyUw3G6K3E3l5fOZkLSwU TflDd2j2VsJgH+z4XZWm5I5LhnrwH6axrxhOWeYv6qpKrnWyvMsXSdI02 kNp5vAhyRATRjOGog9uudUFbBnB3IavyqMYJzsW88cI/tftUM08BQqofP Cyyj2I72tAWH4KDBFG2DXFHVy49QIbBvBlFEPYBgO+12P/QKRqdV5pD1R A==; X-CSE-ConnectionGUID: +HZYu48+R/uILuB7QXnoTQ== X-CSE-MsgGUID: rXEqbhRfSj+21qIpIiPD9Q== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75660005" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75660005" X-CSE-ConnectionGUID: cHUwYKuURsGKfCLLbCM3sQ== X-CSE-MsgGUID: /8oG5xduQgmV1dG/be5kFA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800786" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 19/21] target/i386: remove redundant validation for lbr-fmt property Date: Tue, 10 Feb 2026 11:23:46 +0800 Message-Id: <20260210032348.987549-20-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692434362154100 Content-Type: text/plain; charset="utf-8" The 'lbr-fmt' property is defined via DEFINE_PROP_UINT64_CHECKMASK, utilizing PERF_CAP_LBR_FMT as the validation mask. This mechanism ensures that the property setter rejects any value attempting to set bits outside this mask. So cpu->lbr_fmt is guaranteed to be valid by the time x86_cpu_realizefn() executes. The manual validation inside the realize function is therefore redundant. Remove the unnecessary check. Signed-off-by: Zhao Liu --- target/i386/cpu.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index c2f99b98014a..a594747f0030 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -9816,10 +9816,6 @@ static void x86_cpu_realizefn(DeviceState *dev, Erro= r **errp) * with user-provided setting. */ if (cpu->lbr_fmt !=3D ~PERF_CAP_LBR_FMT) { - if ((cpu->lbr_fmt & PERF_CAP_LBR_FMT) !=3D cpu->lbr_fmt) { - error_setg(errp, "invalid lbr-fmt"); - return; - } env->features[FEAT_PERF_CAPABILITIES] &=3D ~PERF_CAP_LBR_FMT; env->features[FEAT_PERF_CAPABILITIES] |=3D cpu->lbr_fmt; } --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692439; cv=none; d=zohomail.com; s=zohoarc; b=AQ72vrO1COFkZu8FvQevrsdHgvc6892cNePtByrp80a35p+LrRVk1LsRNyuH0VBOSmX9gNVWdU4WNhqs52ZFnYWgFtKMbb5CU/wUMb8n2ciREIN+14QS9pIbNtsbB3qhjw7afGnAvi7N3qO7sScPCULqIHEVVPSZ5dTAm48ZEkI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692439; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dKK8WvHwXfNnWSIm1thWNKuAH5z1UWgeu81o6xGFuuA=; b=Jm1/rmMBh/ih0s4RyPvaLcAPXiIyvb1TWKrnuQwhDKw9cP5fxclYqBc/ljt7TlMTnnuNQMNwwFnv/ssd9cTok3iUzSnw+zOyTSZ7vYNQApxS8le7Di3NmrivVMiBw85iGPFWdNkyLy2rrPVusc7poEkzX4D92dyvJKmNTnK13a4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692439155251.76450303242723; Mon, 9 Feb 2026 19:00:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdz9-0001vU-MB; Mon, 09 Feb 2026 22:00:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyl-00019D-GD for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:58 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyi-0004IS-Nh for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:55 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:49 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:43 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692392; x=1802228392; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rHQyqSJDlnq8AfY8ZN5U8grBknt55dcxwohK9sGr+K8=; b=dJu5EPvych9Y+1rRq3F9zJrkSM50+M/moxNJT9qfh1Dras/gdRI88NfO +4A1QJAr6sderusAEDLU1vfWQq1kha0ay16vhaW8Awqf//+oV08K5DbCO Sr21HglSGqKkgH0t8QXG+BiMMk2kaoQ+NoqZ/7+ebyY0PSyo/O699JKTZ suiXm3LbEj6lUpNy5jZGa0yqJBnTTRJTLtkejZ6WP62iNgKN2ncKisJc0 Wogq8y9OWXidROm1zDFYb3YqRRVoVMwpoLcDP0KBTWIP1Fe8UjvmfWOuE wlKYV04C6pA7riSRz/KxEhv/dE6G++QIws2VMe6PuC8ZSNXb00pdtLcD8 A==; X-CSE-ConnectionGUID: fEBrZWgiTYSeQjS3D4rH0w== X-CSE-MsgGUID: 4AuLckFpSxatkAsXfCcGJA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75660012" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75660012" X-CSE-ConnectionGUID: Rj1KXFK3SZip+20rWdxCqQ== X-CSE-MsgGUID: qeKQ7GTIQkiQ7733GXv+RQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800809" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 20/21] target/i386: detect user provided lbr-fmt via property flag Date: Tue, 10 Feb 2026 11:23:47 +0800 Message-Id: <20260210032348.987549-21-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692440454154100 Content-Type: text/plain; charset="utf-8" At present, QEMU determines if the user has set the "lbr-fmt" property by checking if its value differs from a special value, `~PERF_CAP_LBR_FMT` (`~0x3f`). Relying on such a magic number to distinguish user input from the default state is implicit and fragile. It also prevents the helper macro `DEFINE_PROP_UINT64_CHECKMASK` from supporting a *valid* default value, as initializing the property with a valid default would make it impossible to distinguish from a user-provided value. With the introduction of `OBJ_PROP_FLAG_USER_SET`, it's possible to directly check this flag to determine whether the user has modified the property, which can help get rid of invalid "sentinel" value. Therefore, detect user-provided value by checking the USER_SET property flag in x86_cpu_realizefn(). The invalid initialization value will be dropped in subsequent work. Signed-off-by: Zhao Liu --- target/i386/cpu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a594747f0030..a6d943c53a3f 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -9779,6 +9779,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error= **errp) CPUX86State *env =3D &cpu->env; Error *local_err =3D NULL; unsigned requested_lbr_fmt; + int lbr_fmt_set; =20 #if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) /* Use pc-relative instructions in system-mode */ @@ -9815,7 +9816,11 @@ static void x86_cpu_realizefn(DeviceState *dev, Erro= r **errp) * Override env->features[FEAT_PERF_CAPABILITIES].LBR_FMT * with user-provided setting. */ - if (cpu->lbr_fmt !=3D ~PERF_CAP_LBR_FMT) { + lbr_fmt_set =3D object_property_check_flags(OBJECT(dev), "lbr-fmt", + OBJ_PROP_FLAG_USER_SET, errp= ); + if (lbr_fmt_set < 0) { + return; + } else if (lbr_fmt_set > 0) { env->features[FEAT_PERF_CAPABILITIES] &=3D ~PERF_CAP_LBR_FMT; env->features[FEAT_PERF_CAPABILITIES] |=3D cpu->lbr_fmt; } --=20 2.34.1 From nobody Tue Feb 10 22:18:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1770692428; cv=none; d=zohomail.com; s=zohoarc; b=gEv74zh3mMxSOdjqf5nobK2PfVu1oP79mppuWWToQFFlklreoNLVdb4KM4z8T2sklYXZWxMbg3YpxqqWJxDx1QKssnT/xMiMj7jwwDLA30c/Yw3mQDQqqMZ2OxkS9JV0u4zL+PzSDeGTK9I6ZgxnnTl9z0GyTZoGS3ytbWBUj3A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770692428; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TOFv4IfsHfkgUKtIDD6/Wik0wXdVpIKi0wusTKArM5U=; b=fC7DOCYrg2YSlI+cqBP3ELE2lThIIMkUsnnnw77EuQkp84wpDKnlqeDkWMGdsdkiUgJbzBBFI6swizBfVg5+F6QGh9KJtlrWIZlF9JpxJD5hMDD9ZytcdEvSXRJiepSZHUwUsFDPzUudcwY3O8BobMLq6STdaMmsAK3nLQOovFk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770692428694328.0117719945865; Mon, 9 Feb 2026 19:00:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vpdz8-0001m9-FZ; Mon, 09 Feb 2026 22:00:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyp-0001FT-2m for qemu-devel@nongnu.org; Mon, 09 Feb 2026 22:00:04 -0500 Received: from mgamail.intel.com ([198.175.65.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vpdyj-0004En-8w for qemu-devel@nongnu.org; Mon, 09 Feb 2026 21:59:56 -0500 Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2026 18:59:52 -0800 Received: from liuzhao-optiplex-7080.sh.intel.com ([10.239.160.39]) by orviesa008.jf.intel.com with ESMTP; 09 Feb 2026 18:59:48 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770692393; x=1802228393; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=k4278D/unK5bwhnrNdxt3ByvRIvl2uTcZ+7sAYt5EQ8=; b=FTCQRrhlGPaeb6EDicFIoNZ8bnxUx1Hzm6NT1O5Vzf9+lLZ37evmDVss E0N3htA0YzNNNCiHcCtCaaZSi2NeVaje96Xmutp7/YD67AO3B0ejICUUA XhMF3YjfQHdiS+ffqG5EM1Zp9poS5+kaKJGGVdeM3fQS9je8GYzvQR+7o fW+gt8XnZWnPgmFMdjKG1bxeAWRC5m143VD7FpfvV61fMGGfMz3R3ezEf VtPAhmajQrYmLUXoPhXmAx2rhOy4JQJT0j2Gm0jP2oVJZCTzNbBnfECGN jCKGk8evC1UdgXutgYTu4gkWr8xasd7A+hhmdQ7X1JFmid4E07PjQWGX2 Q==; X-CSE-ConnectionGUID: LhZvm5wETU6soCoDWHn4aQ== X-CSE-MsgGUID: YuQwNruzQ2C4TA/xXjl/IA== X-IronPort-AV: E=McAfee;i="6800,10657,11696"; a="75660026" X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="75660026" X-CSE-ConnectionGUID: R1aMdRTGRnSweM0ElxSd+Q== X-CSE-MsgGUID: rOuhMUKASpSp2/7FEzorpg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,283,1763452800"; d="scan'208";a="211800818" From: Zhao Liu To: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , Markus Armbruster , Thomas Huth , Igor Mammedov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Cc: Richard Henderson , Peter Maydell , "Michael S . Tsirkin" , BALATON Zoltan , Mark Cave-Ayland , Pierrick Bouvier , Zide Chen , Dapeng Mi , Zhao Liu , qemu-devel@nongnu.org, devel@lists.libvirt.org Subject: [PATCH v2 21/21] hw/core/qdev-properties: support valid default value for DEFINE_PROP_UINT64_CHECKMASK Date: Tue, 10 Feb 2026 11:23:48 +0800 Message-Id: <20260210032348.987549-22-zhao1.liu@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260210032348.987549-1-zhao1.liu@intel.com> References: <20260210032348.987549-1-zhao1.liu@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=198.175.65.14; envelope-from=zhao1.liu@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1770692429507158500 Content-Type: text/plain; charset="utf-8" DEFINE_PROP_UINT64_CHECKMASK is designed to detect and check user's property setting: * checking: check property value against a bitmask. * detection: ask caller to provide an invalid value as the initial "sentinel" value, which is impossible to be set by users. However, this detection is not strict, since the property could be also set internally. The entire mechanism is not easy to use. Now there's USER_SET flag in place (and the current unique use case "lbr-fmt" has been converted to checking USER_SET way), manual setting of invalid initial values is no longer required. Thus, extend DEFINE_PROP_UINT64_CHECKMASK to support *valid* default value, and for "lbr-fmt" case, replace the invalid initialization value `~PERF_CAP_LBR_FMT` with a valid value `0`. In addition, considering DEFINE_PROP_UINT64_CHECKMASK itself actually doesn't identify whether the property is set by the user or not, remove "user-supplied" related description in its document. Signed-off-by: Zhao Liu --- hw/core/qdev-properties.c | 1 + include/hw/core/qdev-properties.h | 14 +++++++------- target/i386/cpu.c | 4 +--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 91c4010e7dc9..b84214e60f19 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -507,6 +507,7 @@ const PropertyInfo qdev_prop_uint64_checkmask =3D { .type =3D "uint64", .get =3D get_uint64, .set =3D set_uint64_checkmask, + .set_default_value =3D qdev_propinfo_set_default_value_uint, }; =20 /* --- pointer-size integer --- */ diff --git a/include/hw/core/qdev-properties.h b/include/hw/core/qdev-prope= rties.h index c06de37b1e9d..2ac784bb5e9c 100644 --- a/include/hw/core/qdev-properties.h +++ b/include/hw/core/qdev-properties.h @@ -128,14 +128,14 @@ extern const PropertyInfo qdev_prop_link; ##__VA_ARGS__) =20 /** - * The DEFINE_PROP_UINT64_CHECKMASK macro checks a user-supplied value - * against corresponding bitmask, rejects the value if it violates. - * The default value is set in instance_init(). + * The DEFINE_PROP_UINT64_CHECKMASK macro checks a value against correspon= ding + * bitmask, rejects the value if it violates. */ -#define DEFINE_PROP_UINT64_CHECKMASK(_name, _state, _field, _bitmask) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_uint64_checkmask, uint64_= t, \ - .bitmask =3D (_bitmask), \ - .set_default =3D false) +#define DEFINE_PROP_UINT64_CHECKMASK(_name, _state, _field, _bitmask, _def= val) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_uint64_checkmask, uint64_= t, \ + .bitmask =3D (_bitmask), = \ + .set_default =3D true, = \ + .defval.u =3D (_defval)) =20 /** * DEFINE_PROP_ARRAY: diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a6d943c53a3f..56735570d66c 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -10265,9 +10265,7 @@ static void x86_cpu_initfn(Object *obj) object_property_add_alias(obj, "pause_filter", obj, "pause-filter"); object_property_add_alias(obj, "sse4_1", obj, "sse4.1"); object_property_add_alias(obj, "sse4_2", obj, "sse4.2"); - object_property_add_alias(obj, "hv-apicv", obj, "hv-avic"); - cpu->lbr_fmt =3D ~PERF_CAP_LBR_FMT; object_property_add_alias(obj, "lbr_fmt", obj, "lbr-fmt"); =20 if (xcc->model) { @@ -10439,7 +10437,7 @@ static const Property x86_cpu_properties[] =3D { #endif DEFINE_PROP_INT32("node-id", X86CPU, node_id, CPU_UNSET_NUMA_NODE_ID), DEFINE_PROP_BOOL("pmu", X86CPU, enable_pmu, false), - DEFINE_PROP_UINT64_CHECKMASK("lbr-fmt", X86CPU, lbr_fmt, PERF_CAP_LBR_= FMT), + DEFINE_PROP_UINT64_CHECKMASK("lbr-fmt", X86CPU, lbr_fmt, PERF_CAP_LBR_= FMT, 0), =20 DEFINE_PROP_UINT32("hv-spinlocks", X86CPU, hyperv_spinlock_attempts, HYPERV_SPINLOCK_NEVER_NOTIFY), --=20 2.34.1