From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CFB3C3A5A0 for ; Wed, 21 Aug 2019 09:20:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6F77B204EC for ; Wed, 21 Aug 2019 09:20:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="CIYeLwWr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F77B204EC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0Mn9-0002Bl-0N; Wed, 21 Aug 2019 09:20:31 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0Mn7-0002BR-51 for xen-devel@lists.xenproject.org; Wed, 21 Aug 2019 09:20:29 +0000 X-Inumbo-ID: e7d46f26-c3f4-11e9-8980-bc764e2007e4 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e7d46f26-c3f4-11e9-8980-bc764e2007e4; Wed, 21 Aug 2019 09:20:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1566379223; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LKkFWbEHVRRLGoXttk3iW00wagoE0ctWHxQjhYL3ir4=; b=CIYeLwWrLPLTYKDkUjlfLFwmeUjJcnDDBTCmLR/FChkugp8QDzNKnCD7 3w/vzhn8rYvQrwcQcwrDgEcZuZQTh1XgZTStnwVPgIkAxFOCWD/nrrKVW DfgysVTyYfMrfXxIlZgg/afE7eFLLHi8xmSIX76U4pymYReyo2M7cpx/7 E=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: WfjGDj2DQFiJy54qdsaOgrVkQw3aWiHlsoBLNpBt2U248THIHc0Y8riEu/v4C7ZiixdnbUtqVz P7C55PalBoVq1dTW8NTiC5YMfvoghAdjR2vZ6Yh5i85o7QDyyJwMdXJ6dadkZnMRRbvp3Su9Tm vpSAc+zamMqDQnOWIQP8lN9v9z673ja0WxAsyn+0WrJLMuVRwWD5q38ilHA7g+zWEkWxsH8aIi Z3hE7/sV4H3dBg/eeYjP6eNDuE4NkHWj3Ojfia/zOWkQmdPryzHwrzvyCQ0FvIISAUydX0ytaB ZFM= X-SBRS: 2.7 X-MesageID: 4731852 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,412,1559534400"; d="scan'208";a="4731852" From: Anthony PERARD To: Date: Wed, 21 Aug 2019 10:20:20 +0100 Message-ID: <20190821092020.17952-3-anthony.perard@citrix.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190821092020.17952-1-anthony.perard@citrix.com> References: <20190821092020.17952-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 2/2] xen-bus: Avoid rewriting identical values to xenstore X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , xen-devel@lists.xenproject.org, Stefano Stabellini , Paul Durrant Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" V2hlbiBRRU1VIHJlY2VpdmUgYSB4ZW5zdG9yZSB3YXRjaCBldmVudCBzdWdnZXN0aW5nIHRoYXQg dGhlICJzdGF0ZSIgb3IKIm9ubGluZSIgc3RhdHVzIG9mIHRoZSBmcm9udGVuZCBvciB0aGUgYmFj a2VuZCBjaGFuZ2VkLCBpdCByZWNvcmQgdGhpcwppbiBpdHMgb3duIHN0YXRlIGJ1dCBpdCBhbHNv IHJlLXdyaXRlIHRoZSB2YWx1ZSBiYWNrIGludG8geGVuc3RvcmUgZXZlbgpzbyB0aGVyZSB3ZXJl IG5vIGNoYW5nZWQuIFRoaXMgdHJpZ2dlciBhbiB1bm5lY2Vzc2FyeSB4ZW5zdG9yZSB3YXRjaApl dmVudCB3aGljaCBRRU1VIHdpbGwgcHJvY2VzcyBhZ2FpbiAoYW5kIG1heWJlIHRoZSBmcm9udGVu ZCBhcyB3ZWxsKS4KClNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFy ZEBjaXRyaXguY29tPgotLS0KIGh3L3hlbi94ZW4tYnVzLmMgfCAzNyArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwg MTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaHcveGVuL3hlbi1idXMuYyBiL2h3L3hlbi94 ZW4tYnVzLmMKaW5kZXggOTgyZWNhNDUzMy4uYzgzZjA3NDI0YSAxMDA2NDQKLS0tIGEvaHcveGVu L3hlbi1idXMuYworKysgYi9ody94ZW4veGVuLWJ1cy5jCkBAIC00ODEsMjAgKzQ4MSwyNyBAQCBz dGF0aWMgaW50IHhlbl9kZXZpY2VfYmFja2VuZF9zY2FuZihYZW5EZXZpY2UgKnhlbmRldiwgY29u c3QgY2hhciAqa2V5LAogICAgIHJldHVybiByYzsKIH0KIAotdm9pZCB4ZW5fZGV2aWNlX2JhY2tl bmRfc2V0X3N0YXRlKFhlbkRldmljZSAqeGVuZGV2LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0geGVuYnVzX3N0YXRlIHN0YXRlKQorc3RhdGljIGJvb2wgeGVuX2Rldmlj ZV9iYWNrZW5kX3JlY29yZF9zdGF0ZShYZW5EZXZpY2UgKnhlbmRldiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUpCiB7 CiAgICAgY29uc3QgY2hhciAqdHlwZSA9IG9iamVjdF9nZXRfdHlwZW5hbWUoT0JKRUNUKHhlbmRl dikpOwogCiAgICAgaWYgKHhlbmRldi0+YmFja2VuZF9zdGF0ZSA9PSBzdGF0ZSkgewotICAgICAg ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICB0cmFjZV94ZW5f ZGV2aWNlX2JhY2tlbmRfc3RhdGUodHlwZSwgeGVuZGV2LT5uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4c19zdHJzdGF0ZShzdGF0ZSkpOwogCiAgICAgeGVuZGV2LT5i YWNrZW5kX3N0YXRlID0gc3RhdGU7Ci0gICAgeGVuX2RldmljZV9iYWNrZW5kX3ByaW50Zih4ZW5k ZXYsICJzdGF0ZSIsICIldSIsIHN0YXRlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCB4 ZW5fZGV2aWNlX2JhY2tlbmRfc2V0X3N0YXRlKFhlbkRldmljZSAqeGVuZGV2LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0geGVuYnVzX3N0YXRlIHN0YXRlKQoreworICAg IGlmICh4ZW5fZGV2aWNlX2JhY2tlbmRfcmVjb3JkX3N0YXRlKHhlbmRldiwgc3RhdGUpKQorICAg ICAgICB4ZW5fZGV2aWNlX2JhY2tlbmRfcHJpbnRmKHhlbmRldiwgInN0YXRlIiwgIiV1Iiwgc3Rh dGUpOwogfQogCiBlbnVtIHhlbmJ1c19zdGF0ZSB4ZW5fZGV2aWNlX2JhY2tlbmRfZ2V0X3N0YXRl KFhlbkRldmljZSAqeGVuZGV2KQpAQCAtNTAyLDcgKzUwOSw4IEBAIGVudW0geGVuYnVzX3N0YXRl IHhlbl9kZXZpY2VfYmFja2VuZF9nZXRfc3RhdGUoWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgcmV0 dXJuIHhlbmRldi0+YmFja2VuZF9zdGF0ZTsKIH0KIAotc3RhdGljIHZvaWQgeGVuX2RldmljZV9i YWNrZW5kX3NldF9vbmxpbmUoWGVuRGV2aWNlICp4ZW5kZXYsIGJvb2wgb25saW5lKQorc3RhdGlj IHZvaWQgeGVuX2RldmljZV9iYWNrZW5kX3NldF9vbmxpbmUoWGVuRGV2aWNlICp4ZW5kZXYsIGJv b2wgb25saW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCBleHBvcnQpCiB7CiAgICAgY29uc3QgY2hhciAqdHlwZSA9IG9iamVjdF9nZXRfdHlwZW5hbWUo T0JKRUNUKHhlbmRldikpOwogCkBAIC01MTMsNyArNTIxLDggQEAgc3RhdGljIHZvaWQgeGVuX2Rl dmljZV9iYWNrZW5kX3NldF9vbmxpbmUoWGVuRGV2aWNlICp4ZW5kZXYsIGJvb2wgb25saW5lKQog ICAgIHRyYWNlX3hlbl9kZXZpY2VfYmFja2VuZF9vbmxpbmUodHlwZSwgeGVuZGV2LT5uYW1lLCBv bmxpbmUpOwogCiAgICAgeGVuZGV2LT5iYWNrZW5kX29ubGluZSA9IG9ubGluZTsKLSAgICB4ZW5f ZGV2aWNlX2JhY2tlbmRfcHJpbnRmKHhlbmRldiwgIm9ubGluZSIsICIldSIsIG9ubGluZSk7Cisg ICAgaWYgKGV4cG9ydCkKKyAgICAgICAgeGVuX2RldmljZV9iYWNrZW5kX3ByaW50Zih4ZW5kZXYs ICJvbmxpbmUiLCAiJXUiLCBvbmxpbmUpOwogfQogCiBzdGF0aWMgdm9pZCB4ZW5fZGV2aWNlX2Jh Y2tlbmRfY2hhbmdlZCh2b2lkICpvcGFxdWUpCkBAIC01MjksMTMgKzUzOCwxMyBAQCBzdGF0aWMg dm9pZCB4ZW5fZGV2aWNlX2JhY2tlbmRfY2hhbmdlZCh2b2lkICpvcGFxdWUpCiAgICAgICAgIHN0 YXRlID0gWGVuYnVzU3RhdGVVbmtub3duOwogICAgIH0KIAotICAgIHhlbl9kZXZpY2VfYmFja2Vu ZF9zZXRfc3RhdGUoeGVuZGV2LCBzdGF0ZSk7CisgICAgeGVuX2RldmljZV9iYWNrZW5kX3JlY29y ZF9zdGF0ZSh4ZW5kZXYsIHN0YXRlKTsKIAogICAgIGlmICh4ZW5fZGV2aWNlX2JhY2tlbmRfc2Nh bmYoeGVuZGV2LCAib25saW5lIiwgIiV1IiwgJm9ubGluZSkgIT0gMSkgewogICAgICAgICBvbmxp bmUgPSAwOwogICAgIH0KIAotICAgIHhlbl9kZXZpY2VfYmFja2VuZF9zZXRfb25saW5lKHhlbmRl diwgISFvbmxpbmUpOworICAgIHhlbl9kZXZpY2VfYmFja2VuZF9zZXRfb25saW5lKHhlbmRldiwg ISFvbmxpbmUsIGZhbHNlKTsKIAogICAgIC8qCiAgICAgICogSWYgdGhlIHRvb2xzdGFjayAob3Ig dW5wbHVnIHJlcXVlc3QgY2FsbGJhY2spIGhhcyBzZXQgdGhlIGJhY2tlbmQKQEAgLTY4Myw3ICs2 OTIsOCBAQCBpbnQgeGVuX2RldmljZV9mcm9udGVuZF9zY2FuZihYZW5EZXZpY2UgKnhlbmRldiwg Y29uc3QgY2hhciAqa2V5LAogfQogCiBzdGF0aWMgdm9pZCB4ZW5fZGV2aWNlX2Zyb250ZW5kX3Nl dF9zdGF0ZShYZW5EZXZpY2UgKnhlbmRldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVudW0geGVuYnVzX3N0YXRlIHN0YXRlKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGV4cG9ydCkKIHsKICAgICBj b25zdCBjaGFyICp0eXBlID0gb2JqZWN0X2dldF90eXBlbmFtZShPQkpFQ1QoeGVuZGV2KSk7CiAK QEAgLTY5NSw3ICs3MDUsOCBAQCBzdGF0aWMgdm9pZCB4ZW5fZGV2aWNlX2Zyb250ZW5kX3NldF9z dGF0ZShYZW5EZXZpY2UgKnhlbmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhzX3N0cnN0YXRlKHN0YXRlKSk7CiAKICAgICB4ZW5kZXYtPmZyb250ZW5kX3N0YXRlID0g c3RhdGU7Ci0gICAgeGVuX2RldmljZV9mcm9udGVuZF9wcmludGYoeGVuZGV2LCAic3RhdGUiLCAi JXUiLCBzdGF0ZSk7CisgICAgaWYgKGV4cG9ydCkKKyAgICAgICAgeGVuX2RldmljZV9mcm9udGVu ZF9wcmludGYoeGVuZGV2LCAic3RhdGUiLCAiJXUiLCBzdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lk IHhlbl9kZXZpY2VfZnJvbnRlbmRfY2hhbmdlZCh2b2lkICpvcGFxdWUpCkBAIC03MTEsNyArNzIy LDcgQEAgc3RhdGljIHZvaWQgeGVuX2RldmljZV9mcm9udGVuZF9jaGFuZ2VkKHZvaWQgKm9wYXF1 ZSkKICAgICAgICAgc3RhdGUgPSBYZW5idXNTdGF0ZVVua25vd247CiAgICAgfQogCi0gICAgeGVu X2RldmljZV9mcm9udGVuZF9zZXRfc3RhdGUoeGVuZGV2LCBzdGF0ZSk7CisgICAgeGVuX2Rldmlj ZV9mcm9udGVuZF9zZXRfc3RhdGUoeGVuZGV2LCBzdGF0ZSwgZmFsc2UpOwogCiAgICAgaWYgKHN0 YXRlID09IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nICYmCiAgICAgICAgIHhlbmRldi0+YmFja2Vu ZF9zdGF0ZSA9PSBYZW5idXNTdGF0ZUNsb3NlZCAmJgpAQCAtMTE0Niw3ICsxMTU3LDcgQEAgc3Rh dGljIHZvaWQgeGVuX2RldmljZV9yZWFsaXplKERldmljZVN0YXRlICpkZXYsIEVycm9yICoqZXJy cCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbmRldi0+ZnJvbnRlbmRfaWQpOwog ICAgIHhlbl9kZXZpY2VfYmFja2VuZF9wcmludGYoeGVuZGV2LCAiaG90cGx1Zy1zdGF0dXMiLCAi Y29ubmVjdGVkIik7CiAKLSAgICB4ZW5fZGV2aWNlX2JhY2tlbmRfc2V0X29ubGluZSh4ZW5kZXYs IHRydWUpOworICAgIHhlbl9kZXZpY2VfYmFja2VuZF9zZXRfb25saW5lKHhlbmRldiwgdHJ1ZSwg dHJ1ZSk7CiAgICAgeGVuX2RldmljZV9iYWNrZW5kX3NldF9zdGF0ZSh4ZW5kZXYsIFhlbmJ1c1N0 YXRlSW5pdFdhaXQpOwogCiAgICAgeGVuX2RldmljZV9mcm9udGVuZF9wcmludGYoeGVuZGV2LCAi YmFja2VuZCIsICIlcyIsCkBAIC0xMTU0LDcgKzExNjUsNyBAQCBzdGF0aWMgdm9pZCB4ZW5fZGV2 aWNlX3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKiplcnJwKQogICAgIHhlbl9kZXZp Y2VfZnJvbnRlbmRfcHJpbnRmKHhlbmRldiwgImJhY2tlbmQtaWQiLCAiJXUiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhlbmJ1cy0+YmFja2VuZF9pZCk7CiAKLSAgICB4ZW5fZGV2 aWNlX2Zyb250ZW5kX3NldF9zdGF0ZSh4ZW5kZXYsIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsK KyAgICB4ZW5fZGV2aWNlX2Zyb250ZW5kX3NldF9zdGF0ZSh4ZW5kZXYsIFhlbmJ1c1N0YXRlSW5p dGlhbGlzaW5nLCB0cnVlKTsKIAogICAgIHhlbmRldi0+ZXhpdC5ub3RpZnkgPSB4ZW5fZGV2aWNl X2V4aXQ7CiAgICAgcWVtdV9hZGRfZXhpdF9ub3RpZmllcigmeGVuZGV2LT5leGl0KTsKLS0gCkFu dGhvbnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B4CAC3A59E for ; Wed, 21 Aug 2019 09:22:40 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 249B722D6D for ; Wed, 21 Aug 2019 09:22:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="ZOEQzcVT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 249B722D6D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46300 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0MpD-00057S-Ay for qemu-devel@archiver.kernel.org; Wed, 21 Aug 2019 05:22:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36344) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0Mn7-0002OP-LC for qemu-devel@nongnu.org; Wed, 21 Aug 2019 05:20:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i0Mn6-0007mR-Au for qemu-devel@nongnu.org; Wed, 21 Aug 2019 05:20:29 -0400 Received: from esa6.hc3370-68.iphmx.com ([216.71.155.175]:7419) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i0Mn6-0007iC-3N for qemu-devel@nongnu.org; Wed, 21 Aug 2019 05:20:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1566379227; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LKkFWbEHVRRLGoXttk3iW00wagoE0ctWHxQjhYL3ir4=; b=ZOEQzcVTl8WR1zIlt0EqxDM3vknwtHjp2viwUaZkSxTGR7DmgXBidKVX +ZDQTQ4jmTSWv6Ayt6xn68mRnmemO95Dxe9ob6weyxgSm6S8zxkDzMzCi pdoIL1ZzvUoyX4ZMzAyD3dZODbZuQiJEVea7pagNOSI46Fzz0hl1lcriV o=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: WfjGDj2DQFiJy54qdsaOgrVkQw3aWiHlsoBLNpBt2U248THIHc0Y8riEu/v4C7ZiixdnbUtqVz P7C55PalBoVq1dTW8NTiC5YMfvoghAdjR2vZ6Yh5i85o7QDyyJwMdXJ6dadkZnMRRbvp3Su9Tm vpSAc+zamMqDQnOWIQP8lN9v9z673ja0WxAsyn+0WrJLMuVRwWD5q38ilHA7g+zWEkWxsH8aIi Z3hE7/sV4H3dBg/eeYjP6eNDuE4NkHWj3Ojfia/zOWkQmdPryzHwrzvyCQ0FvIISAUydX0ytaB ZFM= X-SBRS: 2.7 X-MesageID: 4731852 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,412,1559534400"; d="scan'208";a="4731852" From: Anthony PERARD To: Date: Wed, 21 Aug 2019 10:20:20 +0100 Message-ID: <20190821092020.17952-3-anthony.perard@citrix.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190821092020.17952-1-anthony.perard@citrix.com> References: <20190821092020.17952-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-Received-From: 216.71.155.175 Subject: [Qemu-devel] [PATCH 2/2] xen-bus: Avoid rewriting identical values to xenstore X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , xen-devel@lists.xenproject.org, Stefano Stabellini , Paul Durrant Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" When QEMU receive a xenstore watch event suggesting that the "state" or "online" status of the frontend or the backend changed, it record this in its own state but it also re-write the value back into xenstore even so there were no changed. This trigger an unnecessary xenstore watch event which QEMU will process again (and maybe the frontend as well). Signed-off-by: Anthony PERARD --- hw/xen/xen-bus.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c index 982eca4533..c83f07424a 100644 --- a/hw/xen/xen-bus.c +++ b/hw/xen/xen-bus.c @@ -481,20 +481,27 @@ static int xen_device_backend_scanf(XenDevice *xendev, const char *key, return rc; } -void xen_device_backend_set_state(XenDevice *xendev, - enum xenbus_state state) +static bool xen_device_backend_record_state(XenDevice *xendev, + enum xenbus_state state) { const char *type = object_get_typename(OBJECT(xendev)); if (xendev->backend_state == state) { - return; + return false; } trace_xen_device_backend_state(type, xendev->name, xs_strstate(state)); xendev->backend_state = state; - xen_device_backend_printf(xendev, "state", "%u", state); + return true; +} + +void xen_device_backend_set_state(XenDevice *xendev, + enum xenbus_state state) +{ + if (xen_device_backend_record_state(xendev, state)) + xen_device_backend_printf(xendev, "state", "%u", state); } enum xenbus_state xen_device_backend_get_state(XenDevice *xendev) @@ -502,7 +509,8 @@ enum xenbus_state xen_device_backend_get_state(XenDevice *xendev) return xendev->backend_state; } -static void xen_device_backend_set_online(XenDevice *xendev, bool online) +static void xen_device_backend_set_online(XenDevice *xendev, bool online, + bool export) { const char *type = object_get_typename(OBJECT(xendev)); @@ -513,7 +521,8 @@ static void xen_device_backend_set_online(XenDevice *xendev, bool online) trace_xen_device_backend_online(type, xendev->name, online); xendev->backend_online = online; - xen_device_backend_printf(xendev, "online", "%u", online); + if (export) + xen_device_backend_printf(xendev, "online", "%u", online); } static void xen_device_backend_changed(void *opaque) @@ -529,13 +538,13 @@ static void xen_device_backend_changed(void *opaque) state = XenbusStateUnknown; } - xen_device_backend_set_state(xendev, state); + xen_device_backend_record_state(xendev, state); if (xen_device_backend_scanf(xendev, "online", "%u", &online) != 1) { online = 0; } - xen_device_backend_set_online(xendev, !!online); + xen_device_backend_set_online(xendev, !!online, false); /* * If the toolstack (or unplug request callback) has set the backend @@ -683,7 +692,8 @@ int xen_device_frontend_scanf(XenDevice *xendev, const char *key, } static void xen_device_frontend_set_state(XenDevice *xendev, - enum xenbus_state state) + enum xenbus_state state, + bool export) { const char *type = object_get_typename(OBJECT(xendev)); @@ -695,7 +705,8 @@ static void xen_device_frontend_set_state(XenDevice *xendev, xs_strstate(state)); xendev->frontend_state = state; - xen_device_frontend_printf(xendev, "state", "%u", state); + if (export) + xen_device_frontend_printf(xendev, "state", "%u", state); } static void xen_device_frontend_changed(void *opaque) @@ -711,7 +722,7 @@ static void xen_device_frontend_changed(void *opaque) state = XenbusStateUnknown; } - xen_device_frontend_set_state(xendev, state); + xen_device_frontend_set_state(xendev, state, false); if (state == XenbusStateInitialising && xendev->backend_state == XenbusStateClosed && @@ -1146,7 +1157,7 @@ static void xen_device_realize(DeviceState *dev, Error **errp) xendev->frontend_id); xen_device_backend_printf(xendev, "hotplug-status", "connected"); - xen_device_backend_set_online(xendev, true); + xen_device_backend_set_online(xendev, true, true); xen_device_backend_set_state(xendev, XenbusStateInitWait); xen_device_frontend_printf(xendev, "backend", "%s", @@ -1154,7 +1165,7 @@ static void xen_device_realize(DeviceState *dev, Error **errp) xen_device_frontend_printf(xendev, "backend-id", "%u", xenbus->backend_id); - xen_device_frontend_set_state(xendev, XenbusStateInitialising); + xen_device_frontend_set_state(xendev, XenbusStateInitialising, true); xendev->exit.notify = xen_device_exit; qemu_add_exit_notifier(&xendev->exit); -- Anthony PERARD