From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v14 12/23] x86: refactor psr: L3 CAT: set value: implement write msr flow. Date: Sat, 15 Jul 2017 08:31:45 +0800 Message-ID: <1500078716-5928-13-git-send-email-yi.y.sun@linux.intel.com> References: <1500078716-5928-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWBEV-0007Pg-IM for xen-devel@lists.xenproject.org; Sat, 15 Jul 2017 00:46:55 +0000 In-Reply-To: <1500078716-5928-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Q29udGludWUgZnJvbSBwcmV2aW91cyBwYXRjaDoKJ3g4NjogcmVmYWN0b3IgcHNyOiBMMyBDQVQ6 IHNldCB2YWx1ZTogaW1wbGVtZW50IGNvcyBpZCBwaWNraW5nIGZsb3cuJwoKV2UgaGF2ZSBnb3Qg dGhlIGZlYXR1cmUgdmFsdWUgYW5kIENPUyBJRCB0byBzZXQuIFRoZW4sIHdlIHdyaXRlIE1TUnMg b2YgdGhlCmRlc2lnbmF0ZWQgZmVhdHVyZS4KClRpbGwgbm93LCBzZXQgdmFsdWUgcHJvY2VzcyBp cyBjb21wbGV0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnkuc3VuQGxpbnV4LmludGVs LmNvbT4KLS0tCnYxNDoKICAgIC0gY2hhbmdlcyByZWxhdGVkIHRvICdza2lwX3ByaW9yX2ZlYXR1 cmVzJyBjaGFuZ2UgaW4gcHJldmlvdXMgcGF0Y2guCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCnYxMzoKICAgIC0gdXNlICdza2lwX3ByaW9yX2ZlYXR1cmVzJy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRkICdjb25zdCcgZm9yIHNvbWUgdmFyaWFibGVz LgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTI6CiAgICAtIGRlY2xhcmUgc2Ft ZSB0eXBlIHZhcmFpYmxlcyBpbiBvbmUgbGluZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkKICAgIC0gcmVwbGFjZSAnZmVhdF90eXBlJyB0byAncHJvcHMnIGluICdzdHJ1Y3QgY29z X3dyaXRlX2luZm8nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBhc3Np Z24gdGhlICdjb3NfbnVtJyB0byBhIGxvY2FsIHZhcmlhYmxlLgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQogICAgLSB1c2UgJ0FTU0VSVF9VTlJFQUNIQUJMRSgpJyB0byByZWNvcmQg YnVnIGFuZCByZXR1cm4gZXJyb3IgY29kZSBpZiBmZWF0CiAgICAgIGV4aXN0cyBidXQgcHJvcHMg ZG9lcyBub3QgZXhpc3QuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnYxMToKICAg IC0gcmVuYW1lICd3cml0ZV9wc3JfbXNyJyB0byAnd3JpdGVfcHNyX21zcnMnLgogICAgLSByZW5h bWUgJ2RvX3dyaXRlX3Bzcl9tc3InIHRvICdkb193cml0ZV9wc3JfbXNycycuCiAgICAtIGNoYW5n ZSBwYXJhbWV0ZXJzIGFuZCBjb2RlcyBvZiAnd3JpdGVfcHNyX21zcnMnIHRvIGhhbmRsZSB2YWx1 ZSBhcnJheS4KICAgIC0gYWRkICdmZWF0X3R5cGUnIGluICdzdHJ1Y3QgY29zX3dyaXRlX2luZm8n IHRvIGhhbmRsZSBwcm9wcyBhcnJheS4KICAgIC0gaW4gJ2RvX3dyaXRlX3Bzcl9tc3JzJywgd3Jp dGUgdmFsdWUgYXJyYXkgaW50byBtc3JzIGFjY29yZGluZyB0bwogICAgICAncHJvcHMtPnR5cGVb aV0nLgogICAgLSBtb3ZlICdmZWF0LT5jb3NfcmVnX3ZhbCcgYXNzaWdubWVudCBhbmQgdmFsdWUg Y29tcGFyaXNvbiBpbiAnd3JpdGVfbXNyJwogICAgICBjYWxsYmFjayBmdW5jdGlvbiBvdXQgYXMg Z2VuZXJpYyBjb2Rlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92 ZSBjaGVjayBmcm9tICdkb193cml0ZV9wc3JfbXNycycgdG8gJ3dyaXRlX3Bzcl9tc3JzJy4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlIGFib3V0ICdjb3NfbWF4 Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlIGFib3V0ICdm ZWF0X3Byb3BzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjEwOgogICAgLSBy ZW1vdmUgJ3R5cGUnIGZyb20gJ3dyaXRlX21zcicgcGFyYW1ldGVyIGxpc3QuIFdpbGwgYWRkIGl0 IGJhY2sgd2hlbgogICAgICBpbXBsZW1lbnRpbmcgQ0RQLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZXMgYWJvdXQgJ3Byb3BzJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjk6CiAgICAtIHJlcGxhY2UgZmVhdHVyZSBsaXN0IGhh bmRsaW5nIHRvIGZlYXR1cmUgYXJyYXkgaGFuZGxpbmcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1KQogICAgLSBhZGQgJ2FycmF5X2xlbicgaW4gJ3N0cnVjdCBjb3Nfd3JpdGVfaW5mbycg YW5kIGNoZWNrIGlmIHZhbCBhcnJheQogICAgICBleGNlZWRzIGl0LgogICAgLSBtb2RpZnkgJ3dy aXRlX3Bzcl9tc3InIGZsb3cgb25seSB0byBzZXQgb25lIHZhbHVlIGEgdGltZS4gTm8gbmVlZCB0 bwogICAgICBzZXQgd2hvbGUgZmVhdHVyZSBhcnJheSB2YWx1ZXMuCiAgICAtIG1vZGlmeSBwYXRj aCB0aXRsZSB0byBpbmRpY2F0ZSAnTDMgQ0FUJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAndWludDY0X3QnIHRvICd1aW50MzJfdCcuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY4OgogICAgLSBtb2RpZnkgJ3dyaXRlX21zcicg Y2FsbGJhY2sgZnVuY3Rpb24gdG8gJ3ZvaWQnIGJlY2F1c2Ugd2UgaGF2ZSB0byBzZXQKICAgICAg YWxsIGZlYXR1cmVzJyBjYm0uIFdoZW4gaW5wdXQgY29zIGV4Y2VlZHMgc29tZSBmZWF0dXJlcycg Y29zX21heCwganVzdAogICAgICBza2lwIHRoZW0gYnV0IG5vdCBicmVhayB0aGUgaXRlcmF0aW9u Lgp2NToKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIHByb3ZpZGUgZXhhY3QgcGF0Y2gg bmFtZSB0byBjb250aW51ZSBmcm9tLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQog ICAgLSBtb2RpZnkgcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrIGZ1bmN0aW9ucyBiZWNhdXNlIHdl IGRvIG5vdCBuZWVkIHRoZW0KICAgICAgdG8gcmV0dXJuIG51bWJlciBvZiBlbnRyaWVzIHRoZSBm ZWF0dXJlIHVzZXMuIEluIGNhbGxlciwgd2UgY2FsbAogICAgICAnZ2V0X2Nvc19udW0nIHRvIGdl dCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhlIGZlYXR1cmUgdXNlcy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSB0eXBlIGNoZWNrIG91dCBmcm9tIGNhbGxiYWNr IGZ1bmN0aW9ucyB0byBjYWxsZXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAg ICAtIG1vZGlmeSB2YXJpYWJsZXMgbmFtZXMgdG8gbWFrZSB0aGVtIGJldHRlciwgZS5nLiAnZmVh dF90bXAnIHRvICdmZWF0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0g Y29ycmVjdCBjb2RlIGZvcm1hdC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjQ6 CiAgICAtIGNyZWF0ZSB0aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgZWFzaWVyIHVuZGVyc3RhbmQu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gveDg2L3Bzci5j IHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCiAxIGZpbGUgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCBl Njk4ODcyLi5hM2FhMWRiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVu L2FyY2gveDg2L3Bzci5jCkBAIC0xMTMsNiArMTEzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBm ZWF0X3Byb3BzIHsKICAgICAvKiBnZXRfZmVhdF9pbmZvIGlzIHVzZWQgdG8gcmV0dXJuIGZlYXR1 cmUgSFcgaW5mbyB0aHJvdWdoIHN5c2N0bC4gKi8KICAgICBib29sICgqZ2V0X2ZlYXRfaW5mbyko Y29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgZGF0YVtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKTsKKworICAgIC8qIHdyaXRl X21zciBpcyB1c2VkIHRvIHdyaXRlIG91dCBmZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KKyAgICB2 b2lkICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVudW0gY2Jt X3R5cGUgdHlwZSk7CiB9ICpmZWF0X3Byb3BzW0ZFQVRfVFlQRV9OVU1dOwogCiAvKgpAQCAtMjg5 LDExICsyOTIsMTcgQEAgc3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8oY29uc3Qgc3RydWN0 IGZlYXRfbm9kZSAqZmVhdCwKIH0KIAogLyogTDMgQ0FUIHByb3BzICovCitzdGF0aWMgdm9pZCBs M19jYXRfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwgZW51bSBjYm1f dHlwZSB0eXBlKQoreworICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSyhjb3MpLCB2YWwp OworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2F0X3Byb3BzID0gewog ICAgIC5jb3NfbnVtID0gMSwKICAgICAudHlwZVswXSA9IFBTUl9DQk1fVFlQRV9MMywKICAgICAu YWx0X3R5cGUgPSBQU1JfQ0JNX1RZUEVfVU5LTk9XTiwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGNh dF9nZXRfZmVhdF9pbmZvLAorICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAogfTsK IAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVl LCBjaGFyICpmZWF0dXJlLApAQCAtOTQ3LDExICs5NTYsNzkgQEAgc3RhdGljIGludCBwaWNrX2F2 YWlsX2Nvcyhjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAogICAgIHJldHVybiAt RU9WRVJGTE9XOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9zb2NrZXRfY3B1KHVuc2ln bmVkIGludCBzb2NrZXQpCit7CisgICAgaWYgKCBsaWtlbHkoc29ja2V0IDwgbnJfc29ja2V0cykg KQorICAgICAgICByZXR1cm4gY3B1bWFza19hbnkoc29ja2V0X2NwdW1hc2tbc29ja2V0XSk7CisK KyAgICByZXR1cm4gbnJfY3B1X2lkczsKK30KKworc3RydWN0IGNvc193cml0ZV9pbmZvCit7Cisg ICAgdW5zaWduZWQgaW50IGNvczsKKyAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0dXJlOworICAg IGNvbnN0IHVpbnQzMl90ICp2YWw7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgKnByb3Bz OworfTsKKworc3RhdGljIHZvaWQgZG9fd3JpdGVfcHNyX21zcnModm9pZCAqZGF0YSkKK3sKKyAg ICBjb25zdCBzdHJ1Y3QgY29zX3dyaXRlX2luZm8gKmluZm8gPSBkYXRhOworICAgIHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQgPSBpbmZvLT5mZWF0dXJlOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X3By b3BzICpwcm9wcyA9IGluZm8tPnByb3BzOworICAgIHVuc2lnbmVkIGludCBpLCBjb3MgPSBpbmZv LT5jb3MsIGNvc19udW0gPSBwcm9wcy0+Y29zX251bTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwg Y29zX251bTsgaSsrICkKKyAgICB7CisgICAgICAgIGlmICggZmVhdC0+Y29zX3JlZ192YWxbY29z ICogY29zX251bSArIGldICE9IGluZm8tPnZhbFtpXSApCisgICAgICAgIHsKKyAgICAgICAgICAg IGZlYXQtPmNvc19yZWdfdmFsW2NvcyAqIGNvc19udW0gKyBpXSA9IGluZm8tPnZhbFtpXTsKKyAg ICAgICAgICAgIHByb3BzLT53cml0ZV9tc3IoY29zLCBpbmZvLT52YWxbaV0sIHByb3BzLT50eXBl W2ldKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIGludCB3cml0ZV9wc3JfbXNycyh1 bnNpZ25lZCBpbnQgc29ja2V0LCB1bnNpZ25lZCBpbnQgY29zLAogICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1aW50MzJfdCB2YWxbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZSkKIHsK LSAgICByZXR1cm4gLUVOT0VOVDsKKyAgICBpbnQgcmV0OworICAgIHN0cnVjdCBwc3Jfc29ja2V0 X2luZm8gKmluZm8gPSBnZXRfc29ja2V0X2luZm8oc29ja2V0KTsKKyAgICBzdHJ1Y3QgY29zX3dy aXRlX2luZm8gZGF0YSA9CisgICAgeworICAgICAgICAuY29zID0gY29zLAorICAgICAgICAuZmVh dHVyZSA9IGluZm8tPmZlYXR1cmVzW2ZlYXRfdHlwZV0sCisgICAgICAgIC5wcm9wcyA9IGZlYXRf cHJvcHNbZmVhdF90eXBlXSwKKyAgICB9OworCisgICAgaWYgKCBjb3MgPiBpbmZvLT5mZWF0dXJl c1tmZWF0X3R5cGVdLT5jb3NfbWF4ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAv KiBTa2lwIHRvIHRoZSBmZWF0dXJlJ3MgdmFsdWUgaGVhZC4gKi8KKyAgICByZXQgPSBza2lwX3By aW9yX2ZlYXR1cmVzKCZhcnJheV9sZW4sIGZlYXRfdHlwZSk7CisgICAgaWYgKCByZXQgPCAwICkK KyAgICAgICAgcmV0dXJuIHJldDsKKyAgICBlbHNlCisgICAgICAgIHZhbCArPSByZXQ7CisKKyAg ICBpZiAoIGFycmF5X2xlbiA8IGZlYXRfcHJvcHNbZmVhdF90eXBlXS0+Y29zX251bSApCisgICAg ICAgIHJldHVybiAtRU5PU1BDOworCisgICAgZGF0YS52YWwgPSB2YWw7CisKKyAgICBpZiAoIHNv Y2tldCA9PSBjcHVfdG9fc29ja2V0KHNtcF9wcm9jZXNzb3JfaWQoKSkgKQorICAgICAgICBkb193 cml0ZV9wc3JfbXNycygmZGF0YSk7CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgdW5zaWduZWQg aW50IGNwdSA9IGdldF9zb2NrZXRfY3B1KHNvY2tldCk7CisKKyAgICAgICAgaWYgKCBjcHUgPj0g bnJfY3B1X2lkcyApCisgICAgICAgICAgICByZXR1cm4gLUVOT1RTT0NLOworICAgICAgICBvbl9z ZWxlY3RlZF9jcHVzKGNwdW1hc2tfb2YoY3B1KSwgZG9fd3JpdGVfcHNyX21zcnMsICZkYXRhLCAx KTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=