From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v9 09/11] x86/ctxt: Issue a speculation barrier between vcpu contexts Date: Thu, 18 Jan 2018 15:46:08 +0000 Message-ID: <1516290370-14958-10-git-send-email-andrew.cooper3@citrix.com> References: <1516290370-14958-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1516290370-14958-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , David Woodhouse , Jan Beulich List-Id: xen-devel@lists.xenproject.org SXNzdWluZyBhbiBJQlBCIGNvbW1hbmQgZmx1c2hlcyB0aGUgQnJhbmNoIFRhcmdldCBCdWZmZXIs IHNvIHRoYXQgYW55IHBvaXNvbgpsZWZ0IGJ5IG9uZSB2Y3B1IHdvbid0IHJlbWFpbiB3aGVuIGJl Z2lubmluZyB0byBleGVjdXRlIHRoZSBuZXh0LgoKVGhlIGNvc3Qgb2YgSUJQQiBpcyBzdWJzdGFu dGlhbCwgYW5kIHNraXBwZWQgb24gdHJhbnNpdGlvbiB0byBpZGxlLCBhcyBYZW4ncwppZGxlIGNv ZGUgaXMgcm9idXN0IGFscmVhZHkuICBBbGwgdHJhbnNpdGlvbnMgaW50byB2Y3B1IGNvbnRleHQg YXJlIGZ1bGx5CnNlcmlhbGlzaW5nIGluIHByYWN0aWNlIChhbmQgdW5kZXIgY29uc2lkZXJhdGlv biBmb3IgYmVpbmcgcmV0cm9hY3RpdmVseQpkZWNsYXJlZCBhcmNoaXRlY3R1cmFsbHkgc2VyaWFs aXNpbmcpLCBzbyBhIGN1bm5pbmcgYXR0YWNrZXIgY2Fubm90IHVzZSBTUDEgdG8KdHJ5IGFuZCBz a2lwIHRoZSBmbHVzaC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpD QzogRGF2aWQgV29vZGhvdXNlIDxkd213QGFtYXpvbi5jby51az4KCnY3OgogKiBVc2UgdGhlIG9w dF9pYnBiIGJvb2xlYW4gcmF0aGVyIHRoYW4gdXNpbmcgYSBjcHVmZWF0dXJlIGZsYWcuCnY5Ogog KiBFeHBhbmQgdGhlIGNvbW1pdCBtZXNzYWdlLgogKiBPcHRpbWlzZSB0aGUgaWRsZSBjYXNlLCBi YXNlZCBvbiBhIHN1Z2dlc3Rpb24gZnJvbSBEYXZpZC4KLS0tCiBkb2NzL21pc2MveGVuLWNvbW1h bmQtbGluZS5tYXJrZG93biB8ICA1ICsrKystCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAg ICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvc3BlY19j dHJsLmMgICAgICAgICAgICB8IDEwICsrKysrKysrKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvc3Bl Y19jdHJsLmggICAgIHwgIDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCmluZGV4IDExMzk5 Y2UuLjljMTBkM2EgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtk b3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0yNDYsNyAr MjQ2LDcgQEAgZW5vdWdoLiBTZXR0aW5nIHRoaXMgdG8gYSBoaWdoIHZhbHVlIG1heSBjYXVzZSBi b290IGZhaWx1cmUsIHBhcnRpY3VsYXJseSBpZgogdGhlIE5NSSB3YXRjaGRvZyBpcyBhbHNvIGVu YWJsZWQuCiAKICMjIyBidGkgKHg4NikKLT4gYD0gTGlzdCBvZiBbIHRodW5rPXJldHBvbGluZXxs ZmVuY2V8am1wLCBpYnJzPTxib29sPiwgcnNiX3t2bWV4aXQsbmF0aXZlfT08Ym9vbD4gXWAKKz4g YD0gTGlzdCBvZiBbIHRodW5rPXJldHBvbGluZXxsZmVuY2V8am1wLCBpYnJzPTxib29sPiwgaWJw Yj08Ym9vbD4sIHJzYl97dm1leGl0LG5hdGl2ZX09PGJvb2w+IF1gCiAKIEJyYW5jaCBUYXJnZXQg SW5qZWN0aW9uIGNvbnRyb2xzLiAgQnkgZGVmYXVsdCwgWGVuIHdpbGwgcGljayB0aGUgbW9zdAog YXBwcm9wcmlhdGUgQlRJIG1pdGlnYXRpb25zIGJhc2VkIG9uIGNvbXBpbGVkIGluIHN1cHBvcnQs IGxvYWRlZCBtaWNyb2NvZGUsCkBAIC0yNjUsNiArMjY1LDkgQEAgT24gaGFyZHdhcmUgc3VwcG9y dGluZyBJQlJTLCB0aGUgYGlicnM9YCBvcHRpb24gY2FuIGJlIHVzZWQgdG8gZm9yY2Ugb3IKIHBy ZXZlbnQgWGVuIHVzaW5nIHRoZSBmZWF0dXJlIGl0c2VsZi4gIElmIFhlbiBpcyBub3QgdXNpbmcg SUJSUyBpdHNlbGYsCiBmdW5jdGlvbmFsaXR5IGlzIHN0aWxsIHNldCB1cCBzbyBJQlJTIGNhbiBi ZSB2aXJ0dWFsaXNlZCBmb3IgZ3Vlc3RzLgogCitPbiBoYXJkd2FyZSBzdXBwb3J0aW5nIElCUEIs IHRoZSBgaWJwYj1gIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBwcmV2ZW50IFhlbgorZnJvbSBpc3N1 aW5nIEJyYW5jaCBQcmVkaWN0aW9uIEJhcnJpZXJzIG9uIHZjcHUgY29udGV4dCBzd2l0Y2hlcy4K KwogVGhlIGByc2Jfdm1leGl0PWAgYW5kIGByc2JfbmF0aXZlPWAgb3B0aW9ucyBjYW4gYmUgdXNl ZCB0byBmaW5lIHR1bmUgd2hlbiB0aGUKIFJTQiBnZXRzIG92ZXJ3cml0dGVuLiAgVGhlcmUgYXJl IGluZGl2aWR1YWwgY29udHJvbHMgZm9yIGFuIGVudHJ5IGZyb20gSFZNCiBjb250ZXh0LCBhbmQg YW4gZW50cnkgZnJvbSBhIG5hdGl2ZSAoUFYgb3IgWGVuKSBjb250ZXh0LgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IGRiZjQ1 MjIuLjdmNjBiMTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4v YXJjaC94ODYvZG9tYWluLmMKQEAgLTE3NDMsNiArMTc0MywyOSBAQCB2b2lkIGNvbnRleHRfc3dp dGNoKHN0cnVjdCB2Y3B1ICpwcmV2LCBzdHJ1Y3QgdmNwdSAqbmV4dCkKICAgICAgICAgfQogCiAg ICAgICAgIGN0eHRfc3dpdGNoX2xldmVsbGluZyhuZXh0KTsKKworICAgICAgICBpZiAoIG9wdF9p YnBiICkKKyAgICAgICAgeworICAgICAgICAgICAgc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2ln bmVkIGludCwgbGFzdF9ub25pZGxlKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbGFzdF9p ZCA9ICZ0aGlzX2NwdShsYXN0X25vbmlkbGUpOworCisgICAgICAgICAgICAvKiBTcXVhc2ggdGhl IGRvbWlkIGFuZCB2Y3B1IGlkIHRvZ2V0aGVyIGZvciBlZmZpY2llbmN5LiAqLworICAgICAgICAg ICAgdW5zaWduZWQgaW50IG5leHRfaWQgPSAoKCh1bnNpZ25lZCBpbnQpbmV4dGQtPmRvbWFpbl9p ZCA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90 KW5leHQtPnZjcHVfaWQpOworICAgICAgICAgICAgQlVJTERfQlVHX09OKE1BWF9WSVJUX0NQVVMg PiAweGZmZmYpOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogV2hlbiBzY2hlZHVs aW5nIGZyb20gYSB2Y3B1LCB0byBpZGxlLCBhbmQgYmFjayB0byB0aGUgc2FtZSB2Y3B1CisgICAg ICAgICAgICAgKiAod2hpY2ggbWlnaHQgYmUgY29tbW9uIGluIGEgbGlnaHRseSBsb2FkZWQgc3lz dGVtLCBvciB3aGVuCisgICAgICAgICAgICAgKiB1c2luZyB2Y3B1IHBpbm5pbmcpLCB0aGVyZSBp cyBubyBuZWVkIHRvIGlzc3VlIElCUEIsIGFzIHdlIGFyZQorICAgICAgICAgICAgICogcmV0dXJu aW5nIHRvIHRoZSBzYW1lIHNlY3VyaXR5IGNvbnRleHQuCisgICAgICAgICAgICAgKi8KKyAgICAg ICAgICAgIGlmICggKmxhc3RfaWQgIT0gbmV4dF9pZCApCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgd3Jtc3JsKE1TUl9QUkVEX0NNRCwgUFJFRF9DTURfSUJQQik7CisgICAgICAgICAg ICAgICAgKmxhc3RfaWQgPSBuZXh0X2lkOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg fQogCiAgICAgY29udGV4dF9zYXZlZChwcmV2KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9z cGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCA2ODBmYWJlLi5hZTNl N2Q3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMKKysrIGIveGVuL2FyY2gv eDg2L3NwZWNfY3RybC5jCkBAIC0zMyw2ICszMyw3IEBAIHN0YXRpYyBlbnVtIGluZF90aHVuayB7 CiAgICAgVEhVTktfSk1QLAogfSBvcHRfdGh1bmsgX19pbml0ZGF0YSA9IFRIVU5LX0RFRkFVTFQ7 CiBzdGF0aWMgaW50IG9wdF9pYnJzIF9faW5pdGRhdGEgPSAtMTsKK2Jvb2wgX19yZWFkX21vc3Rs eSBvcHRfaWJwYiA9IHRydWU7CiBzdGF0aWMgYm9vbCBvcHRfcnNiX25hdGl2ZSBfX2luaXRkYXRh ID0gdHJ1ZSwgb3B0X3JzYl92bWV4aXQgX19pbml0ZGF0YSA9IHRydWU7CiAKIHN0YXRpYyBpbnQg X19pbml0IHBhcnNlX2J0aShjb25zdCBjaGFyICpzKQpAQCAtNjAsNiArNjEsOCBAQCBzdGF0aWMg aW50IF9faW5pdCBwYXJzZV9idGkoY29uc3QgY2hhciAqcykKICAgICAgICAgfQogICAgICAgICBl bHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oImlicnMiLCBzLCBzcykpID49IDAgKQogICAg ICAgICAgICAgb3B0X2licnMgPSB2YWw7CisgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2Vf Ym9vbGVhbigiaWJwYiIsIHMsIHNzKSkgPj0gMCApCisgICAgICAgICAgICBvcHRfaWJwYiA9IHZh bDsKICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJyc2JfbmF0aXZlIiwg cywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIG9wdF9yc2JfbmF0aXZlID0gdmFsOwogICAgICAg ICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oInJzYl92bWV4aXQiLCBzLCBzcykpID49 IDAgKQpAQCAtMTAwLDEzICsxMDMsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFp bHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIiAg Q29tcGlsZWQtaW4gc3VwcG9ydDogSU5ESVJFQ1RfVEhVTktcbiIpOwogCiAgICAgcHJpbnRrKFhF TkxPR19JTkZPCi0gICAgICAgICAgICJCVEkgbWl0aWdhdGlvbnM6IFRodW5rICVzLCBPdGhlcnM6 JXMlcyVzXG4iLAorICAgICAgICAgICAiQlRJIG1pdGlnYXRpb25zOiBUaHVuayAlcywgT3RoZXJz OiVzJXMlcyVzXG4iLAogICAgICAgICAgICB0aHVuayA9PSBUSFVOS19OT05FICAgICAgPyAiTi9B IiA6CiAgICAgICAgICAgIHRodW5rID09IFRIVU5LX1JFVFBPTElORSA/ICJSRVRQT0xJTkUiIDoK ICAgICAgICAgICAgdGh1bmsgPT0gVEhVTktfTEZFTkNFICAgID8gIkxGRU5DRSIgOgogICAgICAg ICAgICB0aHVuayA9PSBUSFVOS19KTVAgICAgICAgPyAiSk1QIiA6ICI/IiwKICAgICAgICAgICAg Ym9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9JQlJTX1NFVCkgICAgPyAiIElCUlMrIiA6CiAg ICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9YRU5fSUJSU19DTEVBUikgID8gIiBJ QlJTLSIgICAgICA6ICIiLAorICAgICAgICAgICBvcHRfaWJwYiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/ICIgSUJQQiIgICAgICAgOiAiIiwKICAgICAgICAgICAgYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX1JTQl9OQVRJVkUpICAgICAgPyAiIFJTQl9OQVRJVkUiIDogIiIsCiAg ICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9SU0JfVk1FWElUKSAgICAgID8gIiBS U0JfVk1FWElUIiA6ICIiKTsKIH0KQEAgLTI3Myw2ICsyNzcsMTAgQEAgdm9pZCBfX2luaXQgaW5p dF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgIGlmICggb3B0X3JzYl92bWV4aXQg KQogICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX1JTQl9WTUVYSVQpOwog CisgICAgLyogQ2hlY2sgd2UgaGF2ZSBoYXJkd2FyZSBJQlBCIHN1cHBvcnQgYmVmb3JlIHVzaW5n IGl0Li4uICovCisgICAgaWYgKCAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0lCUlNCKSAmJiAh Ym9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0lCUEIpICkKKyAgICAgICAgb3B0X2licGIgPSBmYWxz ZTsKKwogICAgIHByaW50X2RldGFpbHModGh1bmspOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L3NwZWNfY3RybC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmwu aAppbmRleCBiNDUxMjUwLi44Mjg3MDdlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2 L3NwZWNfY3RybC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmgKQEAgLTI0 LDYgKzI0LDggQEAKIAogdm9pZCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpOwog CitleHRlcm4gYm9vbCBvcHRfaWJwYjsKKwogc3RhdGljIGlubGluZSB2b2lkIGluaXRfc2hhZG93 X3NwZWNfY3RybF9zdGF0ZSh2b2lkKQogewogICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl dF9jcHVfaW5mbygpOwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs