From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a5d:6089:0:0:0:0:0 with SMTP id w9csp2094962wrt; Fri, 23 Nov 2018 06:20:47 -0800 (PST) X-Google-Smtp-Source: AJdET5eOoDzoZNVNg/aZkEH76DwKeCsWr3P+2uMWHlJ0/R+Z/NiHp5CG9LqarrKQ7Str09OiRwG0 X-Received: by 2002:a25:44d:: with SMTP id 74-v6mr16484809ybe.173.1542982847490; Fri, 23 Nov 2018 06:20:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542982847; cv=none; d=google.com; s=arc-20160816; b=bE4FaqMhJyv+wcrGQVExZRjPm0uDxsrbUcuJ0iureotrY4KiuXQ3HEvOz+VFWDtDQV pK5KKIYJBvAcomqFUSIItaIaa7sWq0GXpeiLasxNg89dY1zwwMuL1vgCR8Fdq1acn0Sm a9d8VIuKHRY5E686qGGau4kxZRdECqSqMnvV9Ca+RfPRH0prB/nNmCecRLvowqV+Kf2B Q9XiZk22JWWJtfbuJQ1V25FI32DldAWX4Rdjb9pKTdrgqrt6d/fYnmQ1k4rCYAZJy2D7 2yhrDBHJ54UmC93SuDdJgYEXJuWiVww0pdZ8QYwXn/OD2K76al+rz1uJ7jaeDJgDnrEf h6Ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:to:from:date; bh=7fOoWIXioNFKmu8j9K9kGA/Tq6o9nJvJrfPDve9zveM=; b=rKWsgCYCcJ3h/+zvtGshiTmmW0FwDBsh/erX90YK+hpd0KjjsJgUJ2v/eFXix7qySZ Z6SJN2jPRbTq96/jXxOGM+tIucchORQwBX9UqMjT3S4jvg2HeITJ0rJ3dC1m0e80XWjK KxPgF2i0i9CpTo6TisEw0EZosluAqsUS6k8U8OzbC1/BzaxENQjnomt6d9e4Dx2liTnH LeJ5zw71NWYHzZmOfL3Ilgk26rARTpIF/VdLPcpzInzXIH60PUXIQBY4Ladder4cauSL vwMosVlHKJr2nPYHSi118rSbfpXw1rMvLp4igNbkyuHPckUF5JUXhPZzktOGq+90Eh9r iz6A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id o129-v6si12984287ybc.218.2018.11.23.06.20.47 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 23 Nov 2018 06:20:47 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:52621 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQCK6-0005jW-2c for alex.bennee@linaro.org; Fri, 23 Nov 2018 09:20:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36281) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQCJy-0005jP-Ak for qemu-arm@nongnu.org; Fri, 23 Nov 2018 09:20:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQCJv-0003lY-4V for qemu-arm@nongnu.org; Fri, 23 Nov 2018 09:20:38 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34054) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gQCJu-0003g6-TH; Fri, 23 Nov 2018 09:20:35 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A2694368E7; Fri, 23 Nov 2018 14:20:33 +0000 (UTC) Received: from localhost (unknown [10.43.2.182]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45DCC1981E; Fri, 23 Nov 2018 14:20:24 +0000 (UTC) Date: Fri, 23 Nov 2018 15:20:22 +0100 From: Igor Mammedov To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Message-ID: <20181123152022.2a07375b@redhat.com> In-Reply-To: <20181107123652.23417-8-marcandre.lureau@redhat.com> References: <20181107123652.23417-1-marcandre.lureau@redhat.com> <20181107123652.23417-8-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 23 Nov 2018 14:20:33 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: Re: [Qemu-arm] [PATCH for-3.2 v3 07/14] qdev: all globals are now user-provided X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , Corey Minyard , Amit Shah , =?UTF-8?B?SGVydsOp?= Poussineau , "Michael S. Tsirkin" , Mark Cave-Ayland , qemu-devel@nongnu.org, dgilbert@redhat.com, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, Marcel Apfelbaum , xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Stefan Berger , Andreas =?UTF-8?B?RsOkcmJlcg==?= , Artyom Tarasenko , Richard Henderson Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: 35UjXBq0BGER On Wed, 7 Nov 2018 16:36:45 +0400 Marc-Andr=C3=A9 Lureau wrote: > Considering that CPU features are provided via command line, the I can guess what it is about once I recall how -cpu foo,+-feat works, but without that knowledge I don't get meaning behind the sentence. Could you rephrase it? > global_props are now all user-provided globals. No need to track this > anymore for qdev_prop_check_globals(). >=20 > Signed-off-by: Marc-Andr=C3=A9 Lureau > --- > include/hw/qdev-core.h | 3 -- > hw/core/qdev-properties.c | 4 --- > tests/test-qdev-global-props.c | 57 ++++------------------------------ > vl.c | 1 - > 4 files changed, 6 insertions(+), 59 deletions(-) >=20 > diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h > index a24d0dd566..baaf097212 100644 > --- a/include/hw/qdev-core.h > +++ b/include/hw/qdev-core.h > @@ -249,8 +249,6 @@ struct PropertyInfo { > =20 > /** > * GlobalProperty: > - * @user_provided: Set to true if property comes from user-provided conf= ig > - * (command-line or config file). > * @used: Set to true if property was used when initializing a device. > * @errp: Error destination, used like first argument of error_setg() > * in case property setting fails later. If @errp is NULL, we > @@ -262,7 +260,6 @@ typedef struct GlobalProperty { > const char *driver; > const char *property; > const char *value; > - bool user_provided; > bool used; > Error **errp; > } GlobalProperty; > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > index bd84c4ea4c..43c30a57f4 100644 > --- a/hw/core/qdev-properties.c > +++ b/hw/core/qdev-properties.c > @@ -1192,9 +1192,6 @@ int qdev_prop_check_globals(void) > if (prop->used) { > continue; > } > - if (!prop->user_provided) { > - continue; > - } > oc =3D object_class_by_name(prop->driver); > oc =3D object_class_dynamic_cast(oc, TYPE_DEVICE); > if (!oc) { > @@ -1233,7 +1230,6 @@ void qdev_prop_set_globals(DeviceState *dev) > if (!dev->hotplugged && prop->errp) { > error_propagate(prop->errp, err); > } else { > - assert(prop->user_provided); > warn_report_err(err); > } > } > diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-prop= s.c > index 3a8d3170a0..f49a1b70b5 100644 > --- a/tests/test-qdev-global-props.c > +++ b/tests/test-qdev-global-props.c > @@ -215,12 +215,12 @@ static void test_dynamic_globalprop_subprocess(void) > { > MyType *mt; > static GlobalProperty props[] =3D { > - { TYPE_DYNAMIC_PROPS, "prop1", "101", true }, > - { TYPE_DYNAMIC_PROPS, "prop2", "102", true }, > - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", true }, > - { TYPE_UNUSED_HOTPLUG, "prop4", "104", true }, > - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", true }, > - { TYPE_NONDEVICE, "prop6", "106", true }, > + { TYPE_DYNAMIC_PROPS, "prop1", "101", }, > + { TYPE_DYNAMIC_PROPS, "prop2", "102", }, > + { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", }, > + { TYPE_UNUSED_HOTPLUG, "prop4", "104", }, > + { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", }, > + { TYPE_NONDEVICE, "prop6", "106", }, > {} > }; > int global_error; > @@ -255,46 +255,6 @@ static void test_dynamic_globalprop(void) > g_test_trap_assert_stdout(""); > } > =20 > -/* Test setting of dynamic properties using user_provided=3Dfalse proper= ties */ > -static void test_dynamic_globalprop_nouser_subprocess(void) > -{ > - MyType *mt; > - static GlobalProperty props[] =3D { > - { TYPE_DYNAMIC_PROPS, "prop1", "101" }, > - { TYPE_DYNAMIC_PROPS, "prop2", "102" }, > - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103" }, > - { TYPE_UNUSED_HOTPLUG, "prop4", "104" }, > - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105" }, > - { TYPE_NONDEVICE, "prop6", "106" }, > - {} > - }; > - int global_error; > - > - register_global_properties(props); > - > - mt =3D DYNAMIC_TYPE(object_new(TYPE_DYNAMIC_PROPS)); > - qdev_init_nofail(DEVICE(mt)); > - > - g_assert_cmpuint(mt->prop1, =3D=3D, 101); > - g_assert_cmpuint(mt->prop2, =3D=3D, 102); > - global_error =3D qdev_prop_check_globals(); > - g_assert_cmpuint(global_error, =3D=3D, 0); > - g_assert(props[0].used); > - g_assert(props[1].used); > - g_assert(!props[2].used); > - g_assert(!props[3].used); > - g_assert(!props[4].used); > - g_assert(!props[5].used); > -} > - > -static void test_dynamic_globalprop_nouser(void) > -{ > - g_test_trap_subprocess("/qdev/properties/dynamic/global/nouser/subpr= ocess", 0, 0); > - g_test_trap_assert_passed(); > - g_test_trap_assert_stderr(""); > - g_test_trap_assert_stdout(""); > -} > - > /* Test if global props affecting subclasses are applied in the right or= der */ > static void test_subclass_global_props(void) > { > @@ -344,11 +304,6 @@ int main(int argc, char **argv) > g_test_add_func("/qdev/properties/dynamic/global", > test_dynamic_globalprop); > =20 > - g_test_add_func("/qdev/properties/dynamic/global/nouser/subprocess", > - test_dynamic_globalprop_nouser_subprocess); > - g_test_add_func("/qdev/properties/dynamic/global/nouser", > - test_dynamic_globalprop_nouser); > - > g_test_add_func("/qdev/properties/global/subclass", > test_subclass_global_props); > =20 > diff --git a/vl.c b/vl.c > index 2aea884c9d..d11b070e70 100644 > --- a/vl.c > +++ b/vl.c > @@ -2931,7 +2931,6 @@ static int global_init_func(void *opaque, QemuOpts = *opts, Error **errp) > g->driver =3D qemu_opt_get(opts, "driver"); > g->property =3D qemu_opt_get(opts, "property"); > g->value =3D qemu_opt_get(opts, "value"); > - g->user_provided =3D true; > g->errp =3D &error_fatal; > qdev_prop_register_global(g); > return 0; From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [PATCH for-3.2 v3 07/14] qdev: all globals are now user-provided Date: Fri, 23 Nov 2018 15:20:22 +0100 Message-ID: <20181123152022.2a07375b@redhat.com> References: <20181107123652.23417-1-marcandre.lureau@redhat.com> <20181107123652.23417-8-marcandre.lureau@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gQCJv-0007qR-TQ for xen-devel@lists.xenproject.org; Fri, 23 Nov 2018 14:20:35 +0000 In-Reply-To: <20181107123652.23417-8-marcandre.lureau@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , Corey Minyard , Amit Shah , =?UTF-8?B?SGVydsOp?= Poussineau , "Michael S. Tsirkin" , Mark Cave-Ayland , qemu-devel@nongnu.org, dgilbert@redhat.com, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, Marcel Apfelbaum , xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Stefan Berger , Andreas =?UTF-8?B?RsOkcmJlcg==?= , Artyom Tarasenko , Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gV2VkLCAgNyBOb3YgMjAxOCAxNjozNjo0NSArMDQwMApNYXJjLUFuZHLDqSBMdXJlYXUgPG1h cmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT4gd3JvdGU6Cgo+IENvbnNpZGVyaW5nIHRoYXQgQ1BV IGZlYXR1cmVzIGFyZSBwcm92aWRlZCB2aWEgY29tbWFuZCBsaW5lLCB0aGUKSSBjYW4gZ3Vlc3Mg d2hhdCBpdCBpcyBhYm91dCBvbmNlIEkgcmVjYWxsIGhvdyAtY3B1IGZvbywrLWZlYXQgd29ya3Ms CmJ1dCB3aXRob3V0IHRoYXQga25vd2xlZGdlIEkgZG9uJ3QgZ2V0IG1lYW5pbmcgYmVoaW5kIHRo ZSBzZW50ZW5jZS4KQ291bGQgeW91IHJlcGhyYXNlIGl0PwoKPiBnbG9iYWxfcHJvcHMgYXJlIG5v dyBhbGwgdXNlci1wcm92aWRlZCBnbG9iYWxzLiBObyBuZWVkIHRvIHRyYWNrIHRoaXMKPiBhbnlt b3JlIGZvciBxZGV2X3Byb3BfY2hlY2tfZ2xvYmFscygpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1h cmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPgo+IC0tLQo+ICBp bmNsdWRlL2h3L3FkZXYtY29yZS5oICAgICAgICAgfCAgMyAtLQo+ICBody9jb3JlL3FkZXYtcHJv cGVydGllcy5jICAgICAgfCAgNCAtLS0KPiAgdGVzdHMvdGVzdC1xZGV2LWdsb2JhbC1wcm9wcy5j IHwgNTcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICB2bC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMSAtCj4gIDQgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCA1OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9xZGV2LWNv cmUuaCBiL2luY2x1ZGUvaHcvcWRldi1jb3JlLmgKPiBpbmRleCBhMjRkMGRkNTY2Li5iYWFmMDk3 MjEyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvaHcvcWRldi1jb3JlLmgKPiArKysgYi9pbmNsdWRl L2h3L3FkZXYtY29yZS5oCj4gQEAgLTI0OSw4ICsyNDksNiBAQCBzdHJ1Y3QgUHJvcGVydHlJbmZv IHsKPiAgCj4gIC8qKgo+ICAgKiBHbG9iYWxQcm9wZXJ0eToKPiAtICogQHVzZXJfcHJvdmlkZWQ6 IFNldCB0byB0cnVlIGlmIHByb3BlcnR5IGNvbWVzIGZyb20gdXNlci1wcm92aWRlZCBjb25maWcK PiAtICogKGNvbW1hbmQtbGluZSBvciBjb25maWcgZmlsZSkuCj4gICAqIEB1c2VkOiBTZXQgdG8g dHJ1ZSBpZiBwcm9wZXJ0eSB3YXMgdXNlZCB3aGVuIGluaXRpYWxpemluZyBhIGRldmljZS4KPiAg ICogQGVycnA6IEVycm9yIGRlc3RpbmF0aW9uLCB1c2VkIGxpa2UgZmlyc3QgYXJndW1lbnQgb2Yg ZXJyb3Jfc2V0ZygpCj4gICAqICAgICAgICBpbiBjYXNlIHByb3BlcnR5IHNldHRpbmcgZmFpbHMg bGF0ZXIuIElmIEBlcnJwIGlzIE5VTEwsIHdlCj4gQEAgLTI2Miw3ICsyNjAsNiBAQCB0eXBlZGVm IHN0cnVjdCBHbG9iYWxQcm9wZXJ0eSB7Cj4gICAgICBjb25zdCBjaGFyICpkcml2ZXI7Cj4gICAg ICBjb25zdCBjaGFyICpwcm9wZXJ0eTsKPiAgICAgIGNvbnN0IGNoYXIgKnZhbHVlOwo+IC0gICAg Ym9vbCB1c2VyX3Byb3ZpZGVkOwo+ICAgICAgYm9vbCB1c2VkOwo+ICAgICAgRXJyb3IgKiplcnJw Owo+ICB9IEdsb2JhbFByb3BlcnR5Owo+IGRpZmYgLS1naXQgYS9ody9jb3JlL3FkZXYtcHJvcGVy dGllcy5jIGIvaHcvY29yZS9xZGV2LXByb3BlcnRpZXMuYwo+IGluZGV4IGJkODRjNGVhNGMuLjQz YzMwYTU3ZjQgMTAwNjQ0Cj4gLS0tIGEvaHcvY29yZS9xZGV2LXByb3BlcnRpZXMuYwo+ICsrKyBi L2h3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLmMKPiBAQCAtMTE5Miw5ICsxMTkyLDYgQEAgaW50IHFk ZXZfcHJvcF9jaGVja19nbG9iYWxzKHZvaWQpCj4gICAgICAgICAgaWYgKHByb3AtPnVzZWQpIHsK PiAgICAgICAgICAgICAgY29udGludWU7Cj4gICAgICAgICAgfQo+IC0gICAgICAgIGlmICghcHJv cC0+dXNlcl9wcm92aWRlZCkgewo+IC0gICAgICAgICAgICBjb250aW51ZTsKPiAtICAgICAgICB9 Cj4gICAgICAgICAgb2MgPSBvYmplY3RfY2xhc3NfYnlfbmFtZShwcm9wLT5kcml2ZXIpOwo+ICAg ICAgICAgIG9jID0gb2JqZWN0X2NsYXNzX2R5bmFtaWNfY2FzdChvYywgVFlQRV9ERVZJQ0UpOwo+ ICAgICAgICAgIGlmICghb2MpIHsKPiBAQCAtMTIzMyw3ICsxMjMwLDYgQEAgdm9pZCBxZGV2X3By b3Bfc2V0X2dsb2JhbHMoRGV2aWNlU3RhdGUgKmRldikKPiAgICAgICAgICAgICAgaWYgKCFkZXYt PmhvdHBsdWdnZWQgJiYgcHJvcC0+ZXJycCkgewo+ICAgICAgICAgICAgICAgICAgZXJyb3JfcHJv cGFnYXRlKHByb3AtPmVycnAsIGVycik7Cj4gICAgICAgICAgICAgIH0gZWxzZSB7Cj4gLSAgICAg ICAgICAgICAgICBhc3NlcnQocHJvcC0+dXNlcl9wcm92aWRlZCk7Cj4gICAgICAgICAgICAgICAg ICB3YXJuX3JlcG9ydF9lcnIoZXJyKTsKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgIH0KPiBk aWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1xZGV2LWdsb2JhbC1wcm9wcy5jIGIvdGVzdHMvdGVzdC1x ZGV2LWdsb2JhbC1wcm9wcy5jCj4gaW5kZXggM2E4ZDMxNzBhMC4uZjQ5YTFiNzBiNSAxMDA2NDQK PiAtLS0gYS90ZXN0cy90ZXN0LXFkZXYtZ2xvYmFsLXByb3BzLmMKPiArKysgYi90ZXN0cy90ZXN0 LXFkZXYtZ2xvYmFsLXByb3BzLmMKPiBAQCAtMjE1LDEyICsyMTUsMTIgQEAgc3RhdGljIHZvaWQg dGVzdF9keW5hbWljX2dsb2JhbHByb3Bfc3VicHJvY2Vzcyh2b2lkKQo+ICB7Cj4gICAgICBNeVR5 cGUgKm10Owo+ICAgICAgc3RhdGljIEdsb2JhbFByb3BlcnR5IHByb3BzW10gPSB7Cj4gLSAgICAg ICAgeyBUWVBFX0RZTkFNSUNfUFJPUFMsICJwcm9wMSIsICIxMDEiLCB0cnVlIH0sCj4gLSAgICAg ICAgeyBUWVBFX0RZTkFNSUNfUFJPUFMsICJwcm9wMiIsICIxMDIiLCB0cnVlIH0sCj4gLSAgICAg ICAgeyBUWVBFX0RZTkFNSUNfUFJPUFMiLWJhZCIsICJwcm9wMyIsICIxMDMiLCB0cnVlIH0sCj4g LSAgICAgICAgeyBUWVBFX1VOVVNFRF9IT1RQTFVHLCAicHJvcDQiLCAiMTA0IiwgdHJ1ZSB9LAo+ IC0gICAgICAgIHsgVFlQRV9VTlVTRURfTk9IT1RQTFVHLCAicHJvcDUiLCAiMTA1IiwgdHJ1ZSB9 LAo+IC0gICAgICAgIHsgVFlQRV9OT05ERVZJQ0UsICJwcm9wNiIsICIxMDYiLCB0cnVlIH0sCj4g KyAgICAgICAgeyBUWVBFX0RZTkFNSUNfUFJPUFMsICJwcm9wMSIsICIxMDEiLCB9LAo+ICsgICAg ICAgIHsgVFlQRV9EWU5BTUlDX1BST1BTLCAicHJvcDIiLCAiMTAyIiwgfSwKPiArICAgICAgICB7 IFRZUEVfRFlOQU1JQ19QUk9QUyItYmFkIiwgInByb3AzIiwgIjEwMyIsIH0sCj4gKyAgICAgICAg eyBUWVBFX1VOVVNFRF9IT1RQTFVHLCAicHJvcDQiLCAiMTA0IiwgfSwKPiArICAgICAgICB7IFRZ UEVfVU5VU0VEX05PSE9UUExVRywgInByb3A1IiwgIjEwNSIsIH0sCj4gKyAgICAgICAgeyBUWVBF X05PTkRFVklDRSwgInByb3A2IiwgIjEwNiIsIH0sCj4gICAgICAgICAge30KPiAgICAgIH07Cj4g ICAgICBpbnQgZ2xvYmFsX2Vycm9yOwo+IEBAIC0yNTUsNDYgKzI1NSw2IEBAIHN0YXRpYyB2b2lk IHRlc3RfZHluYW1pY19nbG9iYWxwcm9wKHZvaWQpCj4gICAgICBnX3Rlc3RfdHJhcF9hc3NlcnRf c3Rkb3V0KCIiKTsKPiAgfQo+ICAKPiAtLyogVGVzdCBzZXR0aW5nIG9mIGR5bmFtaWMgcHJvcGVy dGllcyB1c2luZyB1c2VyX3Byb3ZpZGVkPWZhbHNlIHByb3BlcnRpZXMgKi8KPiAtc3RhdGljIHZv aWQgdGVzdF9keW5hbWljX2dsb2JhbHByb3Bfbm91c2VyX3N1YnByb2Nlc3Modm9pZCkKPiAtewo+ IC0gICAgTXlUeXBlICptdDsKPiAtICAgIHN0YXRpYyBHbG9iYWxQcm9wZXJ0eSBwcm9wc1tdID0g ewo+IC0gICAgICAgIHsgVFlQRV9EWU5BTUlDX1BST1BTLCAicHJvcDEiLCAiMTAxIiB9LAo+IC0g ICAgICAgIHsgVFlQRV9EWU5BTUlDX1BST1BTLCAicHJvcDIiLCAiMTAyIiB9LAo+IC0gICAgICAg IHsgVFlQRV9EWU5BTUlDX1BST1BTIi1iYWQiLCAicHJvcDMiLCAiMTAzIiB9LAo+IC0gICAgICAg IHsgVFlQRV9VTlVTRURfSE9UUExVRywgInByb3A0IiwgIjEwNCIgfSwKPiAtICAgICAgICB7IFRZ UEVfVU5VU0VEX05PSE9UUExVRywgInByb3A1IiwgIjEwNSIgfSwKPiAtICAgICAgICB7IFRZUEVf Tk9OREVWSUNFLCAicHJvcDYiLCAiMTA2IiB9LAo+IC0gICAgICAgIHt9Cj4gLSAgICB9Owo+IC0g ICAgaW50IGdsb2JhbF9lcnJvcjsKPiAtCj4gLSAgICByZWdpc3Rlcl9nbG9iYWxfcHJvcGVydGll cyhwcm9wcyk7Cj4gLQo+IC0gICAgbXQgPSBEWU5BTUlDX1RZUEUob2JqZWN0X25ldyhUWVBFX0RZ TkFNSUNfUFJPUFMpKTsKPiAtICAgIHFkZXZfaW5pdF9ub2ZhaWwoREVWSUNFKG10KSk7Cj4gLQo+ IC0gICAgZ19hc3NlcnRfY21wdWludChtdC0+cHJvcDEsID09LCAxMDEpOwo+IC0gICAgZ19hc3Nl cnRfY21wdWludChtdC0+cHJvcDIsID09LCAxMDIpOwo+IC0gICAgZ2xvYmFsX2Vycm9yID0gcWRl dl9wcm9wX2NoZWNrX2dsb2JhbHMoKTsKPiAtICAgIGdfYXNzZXJ0X2NtcHVpbnQoZ2xvYmFsX2Vy cm9yLCA9PSwgMCk7Cj4gLSAgICBnX2Fzc2VydChwcm9wc1swXS51c2VkKTsKPiAtICAgIGdfYXNz ZXJ0KHByb3BzWzFdLnVzZWQpOwo+IC0gICAgZ19hc3NlcnQoIXByb3BzWzJdLnVzZWQpOwo+IC0g ICAgZ19hc3NlcnQoIXByb3BzWzNdLnVzZWQpOwo+IC0gICAgZ19hc3NlcnQoIXByb3BzWzRdLnVz ZWQpOwo+IC0gICAgZ19hc3NlcnQoIXByb3BzWzVdLnVzZWQpOwo+IC19Cj4gLQo+IC1zdGF0aWMg dm9pZCB0ZXN0X2R5bmFtaWNfZ2xvYmFscHJvcF9ub3VzZXIodm9pZCkKPiAtewo+IC0gICAgZ190 ZXN0X3RyYXBfc3VicHJvY2VzcygiL3FkZXYvcHJvcGVydGllcy9keW5hbWljL2dsb2JhbC9ub3Vz ZXIvc3VicHJvY2VzcyIsIDAsIDApOwo+IC0gICAgZ190ZXN0X3RyYXBfYXNzZXJ0X3Bhc3NlZCgp Owo+IC0gICAgZ190ZXN0X3RyYXBfYXNzZXJ0X3N0ZGVycigiIik7Cj4gLSAgICBnX3Rlc3RfdHJh cF9hc3NlcnRfc3Rkb3V0KCIiKTsKPiAtfQo+IC0KPiAgLyogVGVzdCBpZiBnbG9iYWwgcHJvcHMg YWZmZWN0aW5nIHN1YmNsYXNzZXMgYXJlIGFwcGxpZWQgaW4gdGhlIHJpZ2h0IG9yZGVyICovCj4g IHN0YXRpYyB2b2lkIHRlc3Rfc3ViY2xhc3NfZ2xvYmFsX3Byb3BzKHZvaWQpCj4gIHsKPiBAQCAt MzQ0LDExICszMDQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gICAgICBn X3Rlc3RfYWRkX2Z1bmMoIi9xZGV2L3Byb3BlcnRpZXMvZHluYW1pYy9nbG9iYWwiLAo+ICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfZHluYW1pY19nbG9iYWxwcm9wKTsKPiAgCj4gLSAgICBnX3Rl c3RfYWRkX2Z1bmMoIi9xZGV2L3Byb3BlcnRpZXMvZHluYW1pYy9nbG9iYWwvbm91c2VyL3N1YnBy b2Nlc3MiLAo+IC0gICAgICAgICAgICAgICAgICAgIHRlc3RfZHluYW1pY19nbG9iYWxwcm9wX25v dXNlcl9zdWJwcm9jZXNzKTsKPiAtICAgIGdfdGVzdF9hZGRfZnVuYygiL3FkZXYvcHJvcGVydGll cy9keW5hbWljL2dsb2JhbC9ub3VzZXIiLAo+IC0gICAgICAgICAgICAgICAgICAgIHRlc3RfZHlu YW1pY19nbG9iYWxwcm9wX25vdXNlcik7Cj4gLQo+ICAgICAgZ190ZXN0X2FkZF9mdW5jKCIvcWRl di9wcm9wZXJ0aWVzL2dsb2JhbC9zdWJjbGFzcyIsCj4gICAgICAgICAgICAgICAgICAgICAgdGVz dF9zdWJjbGFzc19nbG9iYWxfcHJvcHMpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdmwuYyBiL3ZsLmMK PiBpbmRleCAyYWVhODg0YzlkLi5kMTFiMDcwZTcwIDEwMDY0NAo+IC0tLSBhL3ZsLmMKPiArKysg Yi92bC5jCj4gQEAgLTI5MzEsNyArMjkzMSw2IEBAIHN0YXRpYyBpbnQgZ2xvYmFsX2luaXRfZnVu Yyh2b2lkICpvcGFxdWUsIFFlbXVPcHRzICpvcHRzLCBFcnJvciAqKmVycnApCj4gICAgICBnLT5k cml2ZXIgICA9IHFlbXVfb3B0X2dldChvcHRzLCAiZHJpdmVyIik7Cj4gICAgICBnLT5wcm9wZXJ0 eSA9IHFlbXVfb3B0X2dldChvcHRzLCAicHJvcGVydHkiKTsKPiAgICAgIGctPnZhbHVlICAgID0g cWVtdV9vcHRfZ2V0KG9wdHMsICJ2YWx1ZSIpOwo+IC0gICAgZy0+dXNlcl9wcm92aWRlZCA9IHRy dWU7Cj4gICAgICBnLT5lcnJwID0gJmVycm9yX2ZhdGFsOwo+ICAgICAgcWRldl9wcm9wX3JlZ2lz dGVyX2dsb2JhbChnKTsKPiAgICAgIHJldHVybiAwOwoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQCOv-0006Ov-Tw for qemu-devel@nongnu.org; Fri, 23 Nov 2018 09:25:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQCOq-00079u-UW for qemu-devel@nongnu.org; Fri, 23 Nov 2018 09:25:45 -0500 Date: Fri, 23 Nov 2018 15:20:22 +0100 From: Igor Mammedov Message-ID: <20181123152022.2a07375b@redhat.com> In-Reply-To: <20181107123652.23417-8-marcandre.lureau@redhat.com> References: <20181107123652.23417-1-marcandre.lureau@redhat.com> <20181107123652.23417-8-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH for-3.2 v3 07/14] qdev: all globals are now user-provided List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Cc: qemu-devel@nongnu.org, Paolo Bonzini , dgilbert@redhat.com, Richard Henderson , Andreas =?UTF-8?B?RsOkcmJlcg==?= , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Artyom Tarasenko , Anthony Perard , Mark Cave-Ayland , Eduardo Habkost , Amit Shah , Stefan Berger , Marcel Apfelbaum , Stefano Stabellini , "Michael S. Tsirkin" , qemu-ppc@nongnu.org, Peter Maydell , Corey Minyard , =?UTF-8?B?SGVydsOp?= Poussineau On Wed, 7 Nov 2018 16:36:45 +0400 Marc-Andr=C3=A9 Lureau wrote: > Considering that CPU features are provided via command line, the I can guess what it is about once I recall how -cpu foo,+-feat works, but without that knowledge I don't get meaning behind the sentence. Could you rephrase it? > global_props are now all user-provided globals. No need to track this > anymore for qdev_prop_check_globals(). >=20 > Signed-off-by: Marc-Andr=C3=A9 Lureau > --- > include/hw/qdev-core.h | 3 -- > hw/core/qdev-properties.c | 4 --- > tests/test-qdev-global-props.c | 57 ++++------------------------------ > vl.c | 1 - > 4 files changed, 6 insertions(+), 59 deletions(-) >=20 > diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h > index a24d0dd566..baaf097212 100644 > --- a/include/hw/qdev-core.h > +++ b/include/hw/qdev-core.h > @@ -249,8 +249,6 @@ struct PropertyInfo { > =20 > /** > * GlobalProperty: > - * @user_provided: Set to true if property comes from user-provided conf= ig > - * (command-line or config file). > * @used: Set to true if property was used when initializing a device. > * @errp: Error destination, used like first argument of error_setg() > * in case property setting fails later. If @errp is NULL, we > @@ -262,7 +260,6 @@ typedef struct GlobalProperty { > const char *driver; > const char *property; > const char *value; > - bool user_provided; > bool used; > Error **errp; > } GlobalProperty; > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > index bd84c4ea4c..43c30a57f4 100644 > --- a/hw/core/qdev-properties.c > +++ b/hw/core/qdev-properties.c > @@ -1192,9 +1192,6 @@ int qdev_prop_check_globals(void) > if (prop->used) { > continue; > } > - if (!prop->user_provided) { > - continue; > - } > oc =3D object_class_by_name(prop->driver); > oc =3D object_class_dynamic_cast(oc, TYPE_DEVICE); > if (!oc) { > @@ -1233,7 +1230,6 @@ void qdev_prop_set_globals(DeviceState *dev) > if (!dev->hotplugged && prop->errp) { > error_propagate(prop->errp, err); > } else { > - assert(prop->user_provided); > warn_report_err(err); > } > } > diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-prop= s.c > index 3a8d3170a0..f49a1b70b5 100644 > --- a/tests/test-qdev-global-props.c > +++ b/tests/test-qdev-global-props.c > @@ -215,12 +215,12 @@ static void test_dynamic_globalprop_subprocess(void) > { > MyType *mt; > static GlobalProperty props[] =3D { > - { TYPE_DYNAMIC_PROPS, "prop1", "101", true }, > - { TYPE_DYNAMIC_PROPS, "prop2", "102", true }, > - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", true }, > - { TYPE_UNUSED_HOTPLUG, "prop4", "104", true }, > - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", true }, > - { TYPE_NONDEVICE, "prop6", "106", true }, > + { TYPE_DYNAMIC_PROPS, "prop1", "101", }, > + { TYPE_DYNAMIC_PROPS, "prop2", "102", }, > + { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", }, > + { TYPE_UNUSED_HOTPLUG, "prop4", "104", }, > + { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", }, > + { TYPE_NONDEVICE, "prop6", "106", }, > {} > }; > int global_error; > @@ -255,46 +255,6 @@ static void test_dynamic_globalprop(void) > g_test_trap_assert_stdout(""); > } > =20 > -/* Test setting of dynamic properties using user_provided=3Dfalse proper= ties */ > -static void test_dynamic_globalprop_nouser_subprocess(void) > -{ > - MyType *mt; > - static GlobalProperty props[] =3D { > - { TYPE_DYNAMIC_PROPS, "prop1", "101" }, > - { TYPE_DYNAMIC_PROPS, "prop2", "102" }, > - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103" }, > - { TYPE_UNUSED_HOTPLUG, "prop4", "104" }, > - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105" }, > - { TYPE_NONDEVICE, "prop6", "106" }, > - {} > - }; > - int global_error; > - > - register_global_properties(props); > - > - mt =3D DYNAMIC_TYPE(object_new(TYPE_DYNAMIC_PROPS)); > - qdev_init_nofail(DEVICE(mt)); > - > - g_assert_cmpuint(mt->prop1, =3D=3D, 101); > - g_assert_cmpuint(mt->prop2, =3D=3D, 102); > - global_error =3D qdev_prop_check_globals(); > - g_assert_cmpuint(global_error, =3D=3D, 0); > - g_assert(props[0].used); > - g_assert(props[1].used); > - g_assert(!props[2].used); > - g_assert(!props[3].used); > - g_assert(!props[4].used); > - g_assert(!props[5].used); > -} > - > -static void test_dynamic_globalprop_nouser(void) > -{ > - g_test_trap_subprocess("/qdev/properties/dynamic/global/nouser/subpr= ocess", 0, 0); > - g_test_trap_assert_passed(); > - g_test_trap_assert_stderr(""); > - g_test_trap_assert_stdout(""); > -} > - > /* Test if global props affecting subclasses are applied in the right or= der */ > static void test_subclass_global_props(void) > { > @@ -344,11 +304,6 @@ int main(int argc, char **argv) > g_test_add_func("/qdev/properties/dynamic/global", > test_dynamic_globalprop); > =20 > - g_test_add_func("/qdev/properties/dynamic/global/nouser/subprocess", > - test_dynamic_globalprop_nouser_subprocess); > - g_test_add_func("/qdev/properties/dynamic/global/nouser", > - test_dynamic_globalprop_nouser); > - > g_test_add_func("/qdev/properties/global/subclass", > test_subclass_global_props); > =20 > diff --git a/vl.c b/vl.c > index 2aea884c9d..d11b070e70 100644 > --- a/vl.c > +++ b/vl.c > @@ -2931,7 +2931,6 @@ static int global_init_func(void *opaque, QemuOpts = *opts, Error **errp) > g->driver =3D qemu_opt_get(opts, "driver"); > g->property =3D qemu_opt_get(opts, "property"); > g->value =3D qemu_opt_get(opts, "value"); > - g->user_provided =3D true; > g->errp =3D &error_fatal; > qdev_prop_register_global(g); > return 0;