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=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 20EB3C433FF for ; Mon, 5 Aug 2019 13:14:41 +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 EF0792067D for ; Mon, 5 Aug 2019 13:14:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF0792067D 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 1hucon-0003LR-EE; Mon, 05 Aug 2019 13:14:29 +0000 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 1hucom-0003LL-4D for xen-devel@lists.xenproject.org; Mon, 05 Aug 2019 13:14:28 +0000 X-Inumbo-ID: f221dfb4-b782-11e9-825a-6f7dc98ccf13 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f221dfb4-b782-11e9-825a-6f7dc98ccf13; Mon, 05 Aug 2019 13:14:25 +0000 (UTC) Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@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 (esa1.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=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: SBUSWafrBOlPOig6OrgNm5dPRUM7B16MnBM+vteLKvI0d5kXP8oGask0pS0PBXlw1G4HWKnIYf GfUDLVw9H4ss/G8zq6o10Iin5PTAi/EzaneQqokWQBjHHfa6oqnsrhzPeEgO9JLdHMKnVsdvwC LHRkI9Vro8tOdLxeUFvkNWbQLVaY7pnU1Q2jAm3XFpdtQaDkxnvoYNIbzk3hRBo9Mh6uvLRb9Z md4BT/CvtPR8DK3uoZDeb3L6VKAQd6ynyBdDmRnYcdtCBuxwqjtUFpjY1pi4AjInIcTQGA5kpJ Wg0= X-SBRS: 2.7 X-MesageID: 3904933 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,350,1559534400"; d="scan'208";a="3904933" To: Jan Beulich References: <20190730144255.6126-1-andrew.cooper3@citrix.com> <61cbc138-7299-5125-34a0-a721c9b29f82@suse.com> From: Andrew Cooper Openpgp: preference=signencrypt Autocrypt: addr=andrew.cooper3@citrix.com; prefer-encrypt=mutual; keydata= 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 6+ahAA== Message-ID: Date: Mon, 5 Aug 2019 14:14:20 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <61cbc138-7299-5125-34a0-a721c9b29f82@suse.com> Content-Language: en-GB X-ClientProxiedBy: AMSPEX02CAS01.citrite.net (10.69.22.112) To AMSPEX02CL02.citrite.net (10.69.22.126) Subject: Re: [Xen-devel] [PATCH] x86/vvmx: Fix nested virt on VMCS-Shadow capable hardware 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: Xen-devel , Kevin Tian , Wei Liu , Jun Nakajima , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMDUvMDgvMjAxOSAxMzo1MiwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gT24gMzAuMDcuMjAxOSAx Njo0MiwgQW5kcmV3IENvb3BlciB3cm90ZToKPj4gYy9zIGU5OTg2YjBkZCAieDg2L3Z2bXg6IFNp bXBsaWZ5IHBlci1DUFUgbWVtb3J5IGFsbG9jYXRpb25zIiBoYWQgdGhlIHdyb25nCj4+IGluZGly ZWN0aW9uIG9uIGl0cyBwb2ludGVyIGNoZWNrIGluIG52bXhfY3B1X3VwX3ByZXBhcmUoKSwgY2F1 c2luZyB0aGUKPj4gVk1DUy1zaGFkb3dpbmcgYnVmZmVyIG5ldmVyIGJlIGFsbG9jYXRlZC4gIEZp eCBpdC4KPj4KPj4gVGhpcyBpbiB0dXJuIHJlc3VsdHMgaW4gYSBtYXNzaXZlIHF1YW50aXR5IG9m IGxvZ3NwYW0sIGFzIGV2ZXJ5IHZpcnR1YWwKPj4gdm1lbnRyeS9leGl0IGhpdHMgYm90aCBnZHBy aW50aygpcyBpbiB0aGUgKl9idWxrKCkgZnVuY3Rpb25zLgo+IFRoZSAiaW4gdHVybiIgaGVyZSBh cHBsaWVzIHRvIHRoZSBvcmlnaW5hbCBidWcgKHdoaWNoIGdldHMgZml4ZWQgaGVyZSkKPiBhaXVp LAoKQ29ycmVjdC4KCj4gIGkuZS4gdGhlcmUgaXNuJ3QgYW55IGxvZyBzcGFtIHdpdGggdGhlIGZp eCBpbiBwbGFjZSBhbnltb3JlLCBpcwo+IHRoZXJlPwoKSW5jb3JyZWN0LCBiZWNhdXNlLi4uCgo+ ICBJZiBzbywgLi4uCj4KPj4gU3dpdGNoIHRoZXNlIHRvIHVzaW5nIHByaW50a19vbmNlKCkuICBU aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGlzIGNob3NlbiBhdAo+PiBjb21waWxlIHRpbWUsIHNvIGNv bXBsYWluaW5nIGFib3V0IGl0IHJlcGVhdGVkbHkgaXMgb2Ygbm8gYmVuZWZpdC4KPiAuLi4gSSdt IG5vdCBzdXJlIEknZCBhZ3JlZSB3aXRoIHRoaXMgbW92ZTogV2h5IHdvdWxkIGl0IGJlIG9mIGlu dGVyZXN0Cj4gb25seSB0aGUgZmlyc3QgdGltZSB0aGF0IHdlICh3b3VsZCBoYXZlKSBvdmVycnVu IHRoZSBidWZmZXI/CgouLi4gd2Ugd2lsbCBlaXRoZXIgbmV2ZXIgb3ZlcnJ1biBpdCwgb3Igb3Zl cnJ1biBpdCBvbiBldmVyeSB2aXJ0dWFsCnZtZW50cnkvZXhpdC4KCj4gQWZ0ZXIgYWxsCj4gaXQn cyBub3Qgb25seSB0aGUgY29tcGlsZSB0aW1lIGNob2ljZSBvZiBidWZmZXIgc2l6ZSB0aGF0IG1h dHRlcnMgaGVyZSwKPiBidXQgYWxzbyB0aGUgcnVudGltZSBhc3BlY3Qgb2Ygd2hhdCB2YWx1ZSAi biIgaGFzIGdvdCBwYXNzZWQgaW50byB0aGUKPiBmdW5jdGlvbnMuCgpUaGUgZmV3IGNob2ljZXMg b2YgIm4iIGFyZSBmaXhlZCBhdCBjb21waWxlIHRpbWUgYXMgd2VsbCwgd2hpY2ggaXMgd2h5Li4u Cgo+IElmIHRoaXMgaXMgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB3ZSdkIHdhbnQgdG8ga25vdyBt ZXJlbHkKPiBvZiB0aGUgZmFjdCwgbm90IGhvdyBvZnRlbiBpdCBvY2N1cnMsIHRoZW4gSSdkIHRo aW5rIHRoaXMgb3VnaHQgdG8KPiByZW1haW4gYSBkZWJ1Z2dpbmcgcHJpbnRrKCkuCgouLi4gdGhp cyBzdGlsbCBlbmRzIHVwIGFzIGEgY29tcGxldGVseSB1bnVzYWJsZSBzeXN0ZW0sIHdoZW4gdGhl IHByb2JsZW0Kb2NjdXJzLgoKPgo+PiBGaW5hbGx5LCBkcm9wIHRoZSBydW50aW1lIE5VTEwgcG9p bnRlciBjaGVja3MuICBJdCBpcyBub3QgdGVycmlibHkgYXBwcm9wcmlhdGUKPj4gdG8gYmUgcmVw ZWF0ZWRseSBjaGVja2luZyBpbmZyYXN0cnVjdHVyZSB3aGljaCBpcyBzZXQgdXAgZnJvbSBzdGFy dC1vZi1kYXksCj4+IGFuZCBpbiB0aGlzIGNhc2UsIGFjdHVhbGx5IGhpZCB0aGUgYWJvdmUgYnVn Lgo+IEkgZG9uJ3Qgc2VlIGhvdyB0aGUgcmVwZWF0ZWQgY2hlY2tpbmcgd291bGQgaGF2ZSBoaWRk ZW4gYW55IGJ1ZzoKCldpdGhvdXQgdGhpcyBjaGVjaywgWGVuIHdvdWxkIGhhdmUgY3Jhc2hlZCB3 aXRoIGEgTlVMTCBkZWZlcmVuY2Ugb24gdGhlCm9yaWdpbmFsIGNoYW5nZSwgYW5kIGhpZ2hsaWdo dGVkIHRoZSBmYWN0IHRoYXQgdGhlIGNoYW5nZSB3YXMgdG90YWxseQpicm9rZW4uCgpJIGRpZG4n dCBzcG90IHRoZSBpc3N1ZSBiZWNhdXNlIGl0IHdhcyB0ZXN0ZWQgd2l0aCBhIHJlbGVhc2UgYnVp bGQsCndoaWNoIGlzIGFub3RoZXIgcmVhc29uIHdoeSB0aGUgcmVwbGFjZW1lbnQgcHJpbnRrKCkg aXMgZGVsaWJlcmF0ZWx5IG5vdAphIGRlYnVnLXRpbWUtb25seS4KCj4gIER1ZQo+IHRvIHRoZSBs YWNrIG9mIHRoZSBleHRyYSBpbmRpcmVjdGlvbiB0aGUgcG9pbnRlciB3b3VsZCBoYXZlIHJlbWFp bmVkCj4gTlVMTCwgYW5kIGhlbmNlIHRoZSBsb2cgbWVzc2FnZSB3b3VsZCBoYXZlIGFwcGVhcmVk IChhcyBhbHNvCj4gbWVudGlvbmVkIGFib3ZlKSBfdW50aWxfIHlvdSBoYWQgZml4ZWQgdGhlIGlu ZGlyZWN0aW9uIG1pc3Rha2UuIChUaGlzCj4gaXNuJ3QgdG8gbWVhbiBJJ20gYWdhaW5zdCBkcm9w cGluZyB0aGUgY2hlY2ssIEknZCBqdXN0IGxpa2UgdG8KPiB1bmRlcnN0YW5kIHRoZSB3aHkuKQo+ Cj4+IEBAIC05MjIsMTEgKzkyMiwxMCBAQCBzdGF0aWMgdm9pZCB2dm1jc190b19zaGFkb3dfYnVs ayhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IG4sCj4+ICAgICAgIGlmICggIWNwdV9oYXNf dm14X3ZtY3Nfc2hhZG93aW5nICkKPj4gICAgICAgICAgIGdvdG8gZmFsbGJhY2s7Cj4+ICAgCj4+ IC0gICAgaWYgKCAhdmFsdWUgfHwgbiA+IFZNQ1NfQlVGX1NJWkUgKQo+PiArICAgIGlmICggbiA+ IFZNQ1NfQlVGX1NJWkUgKQo+PiAgICAgICB7Cj4+IC0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19E RUJVRywgInZtY3Mgc3luYyBmYWxsIGJhY2sgdG8gbm9uLWJ1bGsgbW9kZSwgIgo+PiAtICAgICAg ICAgICAgICAgICAiYnVmZmVyOiAlcCwgYnVmZmVyIHNpemU6ICVkLCBmaWVsZHMgbnVtYmVyOiAl ZC5cbiIsCj4+IC0gICAgICAgICAgICAgICAgIHZhbHVlLCBWTUNTX0JVRl9TSVpFLCBuKTsKPj4g KyAgICAgICAgcHJpbnRrX29uY2UoWEVOTE9HX0VSUiAiJXB2IFZNQ1Mgc3luYyB0b28gbWFueSBm aWVsZHMgJXVcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgIHYsIG4pOwo+PiAgICAgICAgICAg Z290byBmYWxsYmFjazsKPj4gICAgICAgfQo+PiAgIAo+PiBAQCAtOTYyLDExICs5NjEsMTAgQEAg c3RhdGljIHZvaWQgc2hhZG93X3RvX3Z2bWNzX2J1bGsoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVk IGludCBuLAo+PiAgICAgICBpZiAoICFjcHVfaGFzX3ZteF92bWNzX3NoYWRvd2luZyApCj4+ICAg ICAgICAgICBnb3RvIGZhbGxiYWNrOwo+PiAgIAo+PiAtICAgIGlmICggIXZhbHVlIHx8IG4gPiBW TUNTX0JVRl9TSVpFICkKPj4gKyAgICBpZiAoIG4gPiBWTUNTX0JVRl9TSVpFICkKPj4gICAgICAg ewo+PiAtICAgICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsICJ2bWNzIHN5bmMgZmFsbCBiYWNr IHRvIG5vbi1idWxrIG1vZGUsICIKPj4gLSAgICAgICAgICAgICAgICAgImJ1ZmZlcjogJXAsIGJ1 ZmZlciBzaXplOiAlZCwgZmllbGRzIG51bWJlcjogJWQuXG4iLAo+PiAtICAgICAgICAgICAgICAg ICB2YWx1ZSwgVk1DU19CVUZfU0laRSwgbik7Cj4+ICsgICAgICAgIHByaW50a19vbmNlKFhFTkxP R19FUlIgIiVwdiBWTUNTIHN5bmMgdG9vIG1hbnkgZmllbGRzICV1XG4iLAo+PiArICAgICAgICAg ICAgICAgICAgICB2LCBuKTsKPiBXb3VsZCB5b3UgbWluZCB0YWtpbmcgdGhlIG9wcG9ydHVuaXR5 IGFuZCBhbHNvIGRpc2FtYmlndWF0ZSB0aGUgdHdvCj4gbG9nIG1lc3NhZ2VzLCBzbyB0aGF0IGZy b20gb2JzZXJ2aW5nIG9uZSBpdCBpcyBjbGVhciB3aGljaCBpbnN0YW5jZQo+IGl0IHdhcyB0aGF0 IGdvdCB0cmlnZ2VyZWQ/CgpJJ20gcmVhbGx5IG5vdCBzdXJlIGl0IG1hdHRlcnMuwqAgVGhlIHVz ZSBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlCnN5bW1ldHJpYywgc28gaW4gcHJhY3RpY2UgeW91J2xs IGdldCBib3RoIHByaW50a3MoKSBpbiB2ZXJ5IHF1aWNrCnN1Y2Nlc3Npb24uwqAgQWxzbywgdGhl IHJlcXVpcmVkIGZpeCBpcyB0aGUgc2FtZSB3aGljaGV2ZXIgb25lIGZpcmVzIGZpcnN0LgoKSSdt IGFsc28gbm90IGNvbnZpbmNlZCB0aGF0IGFueSBvZiB0aGlzIGxvZ2ljIGlzIGdvaW5nIHRvIHN1 cnZpdmUgYQpjb25jZXJ0ZWQgZWZmb3J0IHRvIGdldCBuZXN0ZWQtdmlydCB1c2FibGUuCgp+QW5k cmV3CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs