From: David Gibson <david@gibson.dropbear.id.au> To: pasic@linux.ibm.com, brijesh.singh@amd.com, pair@us.ibm.com, dgilbert@redhat.com, qemu-devel@nongnu.org Cc: andi.kleen@intel.com, qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>, "Marcelo Tosatti" <mtosatti@redhat.com>, "David Gibson" <david@gibson.dropbear.id.au>, "Greg Kurz" <groug@kaod.org>, frankja@linux.ibm.com, thuth@redhat.com, "Christian Borntraeger" <borntraeger@de.ibm.com>, mdroth@linux.vnet.ibm.com, richard.henderson@linaro.org, kvm@vger.kernel.org, "Daniel P. Berrangé" <berrange@redhat.com>, "Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>, "Eduardo Habkost" <ehabkost@redhat.com>, david@redhat.com, "Cornelia Huck" <cohuck@redhat.com>, mst@redhat.com, qemu-s390x@nongnu.org, pragyansri.pathi@intel.com, jun.nakajima@intel.com, "Philippe Mathieu-Daudé" <philmd@redhat.com> Subject: [PATCH v6 01/13] qom: Allow optional sugar props Date: Tue, 12 Jan 2021 15:44:56 +1100 [thread overview] Message-ID: <20210112044508.427338-2-david@gibson.dropbear.id.au> (raw) In-Reply-To: <20210112044508.427338-1-david@gibson.dropbear.id.au> From: Greg Kurz <groug@kaod.org> Global properties have an @optional field, which allows to apply a given property to a given type even if one of its subclasses doesn't support it. This is especially used in the compat code when dealing with the "disable-modern" and "disable-legacy" properties and the "virtio-pci" type. Allow object_register_sugar_prop() to set this field as well. Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <159738953558.377274.16617742952571083440.stgit@bahia.lan> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- include/qom/object.h | 3 ++- qom/object.c | 4 +++- softmmu/rtc.c | 3 ++- softmmu/vl.c | 17 +++++++++++------ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index d378f13a11..6721cd312e 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -638,7 +638,8 @@ bool object_apply_global_props(Object *obj, const GPtrArray *props, 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, const char *value); +void object_register_sugar_prop(const char *driver, const char *prop, + const char *value, bool optional); void object_apply_compat_props(Object *obj); /** diff --git a/qom/object.c b/qom/object.c index 2fa0119647..491823db4a 100644 --- a/qom/object.c +++ b/qom/object.c @@ -442,7 +442,8 @@ static GPtrArray *object_compat_props[3]; * other than "-global". These are generally used for syntactic * sugar and legacy command line options. */ -void object_register_sugar_prop(const char *driver, const char *prop, const char *value) +void object_register_sugar_prop(const char *driver, const char *prop, + const char *value, bool optional) { GlobalProperty *g; if (!object_compat_props[2]) { @@ -452,6 +453,7 @@ void object_register_sugar_prop(const char *driver, const char *prop, const char g->driver = g_strdup(driver); g->property = g_strdup(prop); g->value = g_strdup(value); + g->optional = optional; g_ptr_array_add(object_compat_props[2], g); } diff --git a/softmmu/rtc.c b/softmmu/rtc.c index e1e15ef613..5632684fc9 100644 --- a/softmmu/rtc.c +++ b/softmmu/rtc.c @@ -179,7 +179,8 @@ void configure_rtc(QemuOpts *opts) if (!strcmp(value, "slew")) { object_register_sugar_prop("mc146818rtc", "lost_tick_policy", - "slew"); + "slew", + false); } else if (!strcmp(value, "none")) { /* discard is default */ } else { diff --git a/softmmu/vl.c b/softmmu/vl.c index 7ddf405d76..3f7721b83e 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -1663,16 +1663,20 @@ static int machine_set_property(void *opaque, return 0; } if (g_str_equal(qom_name, "igd-passthru")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value, + false); return 0; } if (g_str_equal(qom_name, "kvm-shadow-mem")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value, + false); return 0; } if (g_str_equal(qom_name, "kernel-irqchip")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); - object_register_sugar_prop(ACCEL_CLASS_NAME("whpx"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value, + false); + object_register_sugar_prop(ACCEL_CLASS_NAME("whpx"), qom_name, value, + false); return 0; } @@ -2297,9 +2301,10 @@ static void qemu_process_sugar_options(void) val = g_strdup_printf("%d", (uint32_t) qemu_opt_get_number(qemu_find_opts_singleton("smp-opts"), "cpus", 1)); - object_register_sugar_prop("memory-backend", "prealloc-threads", val); + object_register_sugar_prop("memory-backend", "prealloc-threads", val, + false); g_free(val); - object_register_sugar_prop("memory-backend", "prealloc", "on"); + object_register_sugar_prop("memory-backend", "prealloc", "on", false); } if (watchdog) { -- 2.29.2
WARNING: multiple messages have this Message-ID (diff)
From: David Gibson <david@gibson.dropbear.id.au> To: pasic@linux.ibm.com, brijesh.singh@amd.com, pair@us.ibm.com, dgilbert@redhat.com, qemu-devel@nongnu.org Cc: "Marcelo Tosatti" <mtosatti@redhat.com>, kvm@vger.kernel.org, david@redhat.com, frankja@linux.ibm.com, pragyansri.pathi@intel.com, mst@redhat.com, mdroth@linux.vnet.ibm.com, "Christian Borntraeger" <borntraeger@de.ibm.com>, andi.kleen@intel.com, "Philippe Mathieu-Daudé" <philmd@redhat.com>, thuth@redhat.com, "Eduardo Habkost" <ehabkost@redhat.com>, richard.henderson@linaro.org, "Greg Kurz" <groug@kaod.org>, qemu-s390x@nongnu.org, jun.nakajima@intel.com, "David Gibson" <david@gibson.dropbear.id.au>, "Daniel P. Berrangé" <berrange@redhat.com>, "Cornelia Huck" <cohuck@redhat.com>, qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com> Subject: [PATCH v6 01/13] qom: Allow optional sugar props Date: Tue, 12 Jan 2021 15:44:56 +1100 [thread overview] Message-ID: <20210112044508.427338-2-david@gibson.dropbear.id.au> (raw) In-Reply-To: <20210112044508.427338-1-david@gibson.dropbear.id.au> From: Greg Kurz <groug@kaod.org> Global properties have an @optional field, which allows to apply a given property to a given type even if one of its subclasses doesn't support it. This is especially used in the compat code when dealing with the "disable-modern" and "disable-legacy" properties and the "virtio-pci" type. Allow object_register_sugar_prop() to set this field as well. Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <159738953558.377274.16617742952571083440.stgit@bahia.lan> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- include/qom/object.h | 3 ++- qom/object.c | 4 +++- softmmu/rtc.c | 3 ++- softmmu/vl.c | 17 +++++++++++------ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index d378f13a11..6721cd312e 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -638,7 +638,8 @@ bool object_apply_global_props(Object *obj, const GPtrArray *props, 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, const char *value); +void object_register_sugar_prop(const char *driver, const char *prop, + const char *value, bool optional); void object_apply_compat_props(Object *obj); /** diff --git a/qom/object.c b/qom/object.c index 2fa0119647..491823db4a 100644 --- a/qom/object.c +++ b/qom/object.c @@ -442,7 +442,8 @@ static GPtrArray *object_compat_props[3]; * other than "-global". These are generally used for syntactic * sugar and legacy command line options. */ -void object_register_sugar_prop(const char *driver, const char *prop, const char *value) +void object_register_sugar_prop(const char *driver, const char *prop, + const char *value, bool optional) { GlobalProperty *g; if (!object_compat_props[2]) { @@ -452,6 +453,7 @@ void object_register_sugar_prop(const char *driver, const char *prop, const char g->driver = g_strdup(driver); g->property = g_strdup(prop); g->value = g_strdup(value); + g->optional = optional; g_ptr_array_add(object_compat_props[2], g); } diff --git a/softmmu/rtc.c b/softmmu/rtc.c index e1e15ef613..5632684fc9 100644 --- a/softmmu/rtc.c +++ b/softmmu/rtc.c @@ -179,7 +179,8 @@ void configure_rtc(QemuOpts *opts) if (!strcmp(value, "slew")) { object_register_sugar_prop("mc146818rtc", "lost_tick_policy", - "slew"); + "slew", + false); } else if (!strcmp(value, "none")) { /* discard is default */ } else { diff --git a/softmmu/vl.c b/softmmu/vl.c index 7ddf405d76..3f7721b83e 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -1663,16 +1663,20 @@ static int machine_set_property(void *opaque, return 0; } if (g_str_equal(qom_name, "igd-passthru")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value, + false); return 0; } if (g_str_equal(qom_name, "kvm-shadow-mem")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value, + false); return 0; } if (g_str_equal(qom_name, "kernel-irqchip")) { - object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); - object_register_sugar_prop(ACCEL_CLASS_NAME("whpx"), qom_name, value); + object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value, + false); + object_register_sugar_prop(ACCEL_CLASS_NAME("whpx"), qom_name, value, + false); return 0; } @@ -2297,9 +2301,10 @@ static void qemu_process_sugar_options(void) val = g_strdup_printf("%d", (uint32_t) qemu_opt_get_number(qemu_find_opts_singleton("smp-opts"), "cpus", 1)); - object_register_sugar_prop("memory-backend", "prealloc-threads", val); + object_register_sugar_prop("memory-backend", "prealloc-threads", val, + false); g_free(val); - object_register_sugar_prop("memory-backend", "prealloc", "on"); + object_register_sugar_prop("memory-backend", "prealloc", "on", false); } if (watchdog) { -- 2.29.2
next prev parent reply other threads:[~2021-01-12 4:45 UTC|newest] Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-12 4:44 [PATCH v6 00/13] Generalize memory encryption models David Gibson 2021-01-12 4:44 ` David Gibson 2021-01-12 4:44 ` David Gibson [this message] 2021-01-12 4:44 ` [PATCH v6 01/13] qom: Allow optional sugar props David Gibson 2021-01-12 4:44 ` [PATCH v6 02/13] confidential guest support: Introduce new confidential guest support class David Gibson 2021-01-12 4:44 ` David Gibson 2021-01-12 9:46 ` Daniel P. Berrangé 2021-01-12 9:46 ` Daniel P. Berrangé 2021-01-13 2:09 ` David Gibson 2021-01-13 2:09 ` David Gibson 2021-01-12 4:44 ` [PATCH v6 03/13] sev: Remove false abstraction of flash encryption David Gibson 2021-01-12 4:44 ` David Gibson 2021-01-12 4:44 ` [PATCH v6 04/13] confidential guest support: Move side effect out of machine_set_memory_encryption() David Gibson 2021-01-12 4:44 ` David Gibson 2021-01-12 10:39 ` Greg Kurz 2021-01-12 4:45 ` [PATCH v6 05/13] confidential guest support: Rework the "memory-encryption" property David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 10:59 ` Greg Kurz 2021-01-13 0:50 ` David Gibson 2021-01-13 0:50 ` David Gibson 2021-01-13 12:03 ` Dr. David Alan Gilbert 2021-01-13 12:03 ` Dr. David Alan Gilbert 2021-01-12 4:45 ` [PATCH v6 06/13] sev: Add Error ** to sev_kvm_init() David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 4:45 ` [PATCH v6 07/13] confidential guest support: Introduce cgs "ready" flag David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 4:45 ` [PATCH v6 08/13] confidential guest support: Move SEV initialization into arch specific code David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 4:45 ` [PATCH v6 09/13] confidential guest support: Update documentation David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 4:45 ` [PATCH v6 10/13] spapr: Add PEF based confidential guest support David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 7:56 ` Christian Borntraeger 2021-01-12 7:56 ` Christian Borntraeger 2021-01-12 8:36 ` David Gibson 2021-01-12 8:36 ` David Gibson 2021-01-12 9:52 ` Daniel P. Berrangé 2021-01-12 9:52 ` Daniel P. Berrangé 2021-01-12 9:56 ` Daniel P. Berrangé 2021-01-12 9:56 ` Daniel P. Berrangé 2021-01-13 0:52 ` David Gibson 2021-01-13 0:52 ` David Gibson 2021-01-12 11:27 ` Greg Kurz 2021-01-13 0:56 ` David Gibson 2021-01-13 0:56 ` David Gibson 2021-01-12 4:45 ` [PATCH v6 11/13] spapr: PEF: prevent migration David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 11:37 ` Greg Kurz 2021-01-12 4:45 ` [PATCH v6 12/13] confidential guest support: Alter virtio default properties for protected guests David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 11:38 ` Greg Kurz 2021-01-12 4:45 ` [PATCH v6 13/13] s390: Recognize confidential-guest-support option David Gibson 2021-01-12 4:45 ` David Gibson 2021-01-12 8:15 ` Christian Borntraeger 2021-01-12 8:15 ` Christian Borntraeger 2021-01-12 11:36 ` Cornelia Huck 2021-01-12 11:36 ` Cornelia Huck 2021-01-12 11:48 ` Christian Borntraeger 2021-01-12 11:48 ` Christian Borntraeger 2021-01-12 11:49 ` Daniel P. Berrangé 2021-01-12 11:49 ` Daniel P. Berrangé 2021-01-13 0:57 ` David Gibson 2021-01-13 0:57 ` David Gibson 2021-01-13 6:57 ` Christian Borntraeger 2021-01-13 6:57 ` Christian Borntraeger 2021-01-13 23:56 ` David Gibson 2021-01-13 23:56 ` David Gibson 2021-01-12 9:54 ` Daniel P. Berrangé 2021-01-12 9:54 ` Daniel P. Berrangé
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210112044508.427338-2-david@gibson.dropbear.id.au \ --to=david@gibson.dropbear.id.au \ --cc=andi.kleen@intel.com \ --cc=berrange@redhat.com \ --cc=borntraeger@de.ibm.com \ --cc=brijesh.singh@amd.com \ --cc=cohuck@redhat.com \ --cc=david@redhat.com \ --cc=dgilbert@redhat.com \ --cc=ehabkost@redhat.com \ --cc=frankja@linux.ibm.com \ --cc=groug@kaod.org \ --cc=jun.nakajima@intel.com \ --cc=kvm@vger.kernel.org \ --cc=marcel.apfelbaum@gmail.com \ --cc=mdroth@linux.vnet.ibm.com \ --cc=mst@redhat.com \ --cc=mtosatti@redhat.com \ --cc=pair@us.ibm.com \ --cc=pasic@linux.ibm.com \ --cc=pbonzini@redhat.com \ --cc=philmd@redhat.com \ --cc=pragyansri.pathi@intel.com \ --cc=qemu-devel@nongnu.org \ --cc=qemu-ppc@nongnu.org \ --cc=qemu-s390x@nongnu.org \ --cc=richard.henderson@linaro.org \ --cc=thuth@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.