From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v12 12/23] x86: refactor psr: L3 CAT: set value: implement write msr flow. Date: Wed, 14 Jun 2017 09:12:45 +0800 Message-ID: <1497402776-22348-13-git-send-email-yi.y.sun@linux.intel.com> References: <1497402776-22348-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKx4B-0007b3-Fr for xen-devel@lists.xenproject.org; Wed, 14 Jun 2017 01:25:51 +0000 In-Reply-To: <1497402776-22348-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, he.chen@linux.intel.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 LmNvbT4KLS0tCnYxMjoKICAgIC0gZGVjbGFyZSBzYW1lIHR5cGUgdmFyYWlibGVzIGluIG9uZSBs aW5lLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXBsYWNlICdmZWF0 X3R5cGUnIHRvICdwcm9wcycgaW4gJ3N0cnVjdCBjb3Nfd3JpdGVfaW5mbycuCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGFzc2lnbiB0aGUgJ2Nvc19udW0nIHRvIGEgbG9j YWwgdmFyaWFibGUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHVzZSAn QVNTRVJUX1VOUkVBQ0hBQkxFKCknIHRvIHJlY29yZCBidWcgYW5kIHJldHVybiBlcnJvciBjb2Rl IGlmIGZlYXQKICAgICAgZXhpc3RzIGJ1dCBwcm9wcyBkb2VzIG5vdCBleGlzdC4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjExOgogICAgLSByZW5hbWUgJ3dyaXRlX3Bzcl9tc3In IHRvICd3cml0ZV9wc3JfbXNycycuCiAgICAtIHJlbmFtZSAnZG9fd3JpdGVfcHNyX21zcicgdG8g J2RvX3dyaXRlX3Bzcl9tc3JzJy4KICAgIC0gY2hhbmdlIHBhcmFtZXRlcnMgYW5kIGNvZGVzIG9m ICd3cml0ZV9wc3JfbXNycycgdG8gaGFuZGxlIHZhbHVlIGFycmF5LgogICAgLSBhZGQgJ2ZlYXRf dHlwZScgaW4gJ3N0cnVjdCBjb3Nfd3JpdGVfaW5mbycgdG8gaGFuZGxlIHByb3BzIGFycmF5Lgog ICAgLSBpbiAnZG9fd3JpdGVfcHNyX21zcnMnLCB3cml0ZSB2YWx1ZSBhcnJheSBpbnRvIG1zcnMg YWNjb3JkaW5nIHRvCiAgICAgICdwcm9wcy0+dHlwZVtpXScuCiAgICAtIG1vdmUgJ2ZlYXQtPmNv c19yZWdfdmFsJyBhc3NpZ25tZW50IGFuZCB2YWx1ZSBjb21wYXJpc29uIGluICd3cml0ZV9tc3In CiAgICAgIGNhbGxiYWNrIGZ1bmN0aW9uIG91dCBhcyBnZW5lcmljIGNvZGVzLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb3ZlIGNoZWNrIGZyb20gJ2RvX3dyaXRlX3Bz cl9tc3JzJyB0byAnd3JpdGVfcHNyX21zcnMnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSBjaGFuZ2UgYWJvdXQgJ2Nvc19tYXgnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKQogICAgLSBjaGFuZ2UgYWJvdXQgJ2ZlYXRfcHJvcHMnLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQp2MTA6CiAgICAtIHJlbW92ZSAndHlwZScgZnJvbSAnd3JpdGVf bXNyJyBwYXJhbWV0ZXIgbGlzdC4gV2lsbCBhZGQgaXQgYmFjayB3aGVuCiAgICAgIGltcGxlbWVu dGluZyBDRFAuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSB1 bm5lY2Vzc2FyeSBjYXN0cy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0g Y2hhbmdlcyBhYm91dCAncHJvcHMnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2 OToKICAgIC0gcmVwbGFjZSBmZWF0dXJlIGxpc3QgaGFuZGxpbmcgdG8gZmVhdHVyZSBhcnJheSBo YW5kbGluZy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUpCiAgICAtIGFkZCAnYXJyYXlf bGVuJyBpbiAnc3RydWN0IGNvc193cml0ZV9pbmZvJyBhbmQgY2hlY2sgaWYgdmFsIGFycmF5CiAg ICAgIGV4Y2VlZHMgaXQuCiAgICAtIG1vZGlmeSAnd3JpdGVfcHNyX21zcicgZmxvdyBvbmx5IHRv IHNldCBvbmUgdmFsdWUgYSB0aW1lLiBObyBuZWVkIHRvCiAgICAgIHNldCB3aG9sZSBmZWF0dXJl IGFycmF5IHZhbHVlcy4KICAgIC0gbW9kaWZ5IHBhdGNoIHRpdGxlIHRvIGluZGljYXRlICdMMyBD QVQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0 ICd1aW50NjRfdCcgdG8gJ3VpbnQzMl90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKdjg6CiAgICAtIG1vZGlmeSAnd3JpdGVfbXNyJyBjYWxsYmFjayBmdW5jdGlvbiB0byAndm9p ZCcgYmVjYXVzZSB3ZSBoYXZlIHRvIHNldAogICAgICBhbGwgZmVhdHVyZXMnIGNibS4gV2hlbiBp bnB1dCBjb3MgZXhjZWVkcyBzb21lIGZlYXR1cmVzJyBjb3NfbWF4LCBqdXN0CiAgICAgIHNraXAg dGhlbSBidXQgbm90IGJyZWFrIHRoZSBpdGVyYXRpb24uCnY1OgogICAgLSBtb2RpZnkgY29tbWl0 IG1lc3NhZ2UgdG8gcHJvdmlkZSBleGFjdCBwYXRjaCBuYW1lIHRvIGNvbnRpbnVlIGZyb20uCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vZGlmeSByZXR1cm4gdmFsdWUg b2YgY2FsbGJhY2sgZnVuY3Rpb25zIGJlY2F1c2Ugd2UgZG8gbm90IG5lZWQgdGhlbQogICAgICB0 byByZXR1cm4gbnVtYmVyIG9mIGVudHJpZXMgdGhlIGZlYXR1cmUgdXNlcy4gSW4gY2FsbGVyLCB3 ZSBjYWxsCiAgICAgICdnZXRfY29zX251bScgdG8gZ2V0IHRoZSBudW1iZXIgb2YgZW50cmllcyB0 aGUgZmVhdHVyZSB1c2VzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBt b3ZlIHR5cGUgY2hlY2sgb3V0IGZyb20gY2FsbGJhY2sgZnVuY3Rpb25zIHRvIGNhbGxlci4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHZhcmlhYmxlcyBuYW1l cyB0byBtYWtlIHRoZW0gYmV0dGVyLCBlLmcuICdmZWF0X3RtcCcgdG8gJ2ZlYXQnLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjb3JyZWN0IGNvZGUgZm9ybWF0LgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2gg dG8gbWFrZSBjb2RlcyBlYXNpZXIgdW5kZXJzdGFuZC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKLS0tCi0tLQogeGVuL2FyY2gveDg2L3Bzci5jIHwgOTIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg OTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCA1Y2JjMzg5Li44MWQ5YTc4IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC0x MDcsNiArMTA3LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIHsKICAgICAvKiBn ZXRfZmVhdF9pbmZvIGlzIHVzZWQgdG8gcmV0dXJuIGZlYXR1cmUgSFcgaW5mbyB0aHJvdWdoIHN5 c2N0bC4gKi8KICAgICBib29sICgqZ2V0X2ZlYXRfaW5mbykoY29uc3Qgc3RydWN0IGZlYXRfbm9k ZSAqZmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0YVtdLCB1bnNp Z25lZCBpbnQgYXJyYXlfbGVuKTsKKworICAgIC8qIHdyaXRlX21zciBpcyB1c2VkIHRvIHdyaXRl IG91dCBmZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KKyAgICB2b2lkICgqd3JpdGVfbXNyKSh1bnNp Z25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVudW0gY2JtX3R5cGUgdHlwZSk7CiB9ICpmZWF0 X3Byb3BzW1BTUl9TT0NLRVRfRkVBVF9OVU1dOwogCiAvKgpAQCAtMjc4LDEwICsyODEsMTYgQEAg c3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8oY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVh dCwKIH0KIAogLyogTDMgQ0FUIHByb3BzICovCitzdGF0aWMgdm9pZCBsM19jYXRfd3JpdGVfbXNy KHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwgZW51bSBjYm1fdHlwZSB0eXBlKQorewor ICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSyhjb3MpLCB2YWwpOworfQorCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2F0X3Byb3BzID0gewogICAgIC5jb3NfbnVtID0g MSwKICAgICAudHlwZVswXSA9IFBTUl9DQk1fVFlQRV9MMywKICAgICAuZ2V0X2ZlYXRfaW5mbyA9 IGNhdF9nZXRfZmVhdF9pbmZvLAorICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAog fTsKIAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZh bHVlLCBjaGFyICpmZWF0dXJlLApAQCAtOTM4LDExICs5NDcsOTIgQEAgc3RhdGljIGludCBwaWNr X2F2YWlsX2Nvcyhjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAogICAgIHJldHVy biAtRU9WRVJGTE9XOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9zb2NrZXRfY3B1KHVu c2lnbmVkIGludCBzb2NrZXQpCit7CisgICAgaWYgKCBsaWtlbHkoc29ja2V0IDwgbnJfc29ja2V0 cykgKQorICAgICAgICByZXR1cm4gY3B1bWFza19hbnkoc29ja2V0X2NwdW1hc2tbc29ja2V0XSk7 CisKKyAgICByZXR1cm4gbnJfY3B1X2lkczsKK30KKworc3RydWN0IGNvc193cml0ZV9pbmZvCit7 CisgICAgdW5zaWduZWQgaW50IGNvczsKKyAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0dXJlOwor ICAgIHVpbnQzMl90ICp2YWw7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgKnByb3BzOwor fTsKKworc3RhdGljIHZvaWQgZG9fd3JpdGVfcHNyX21zcnModm9pZCAqZGF0YSkKK3sKKyAgICBz dHJ1Y3QgY29zX3dyaXRlX2luZm8gKmluZm8gPSBkYXRhOworICAgIHN0cnVjdCBmZWF0X25vZGUg KmZlYXQgPSBpbmZvLT5mZWF0dXJlOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzICpwcm9w cyA9IGluZm8tPnByb3BzOworICAgIHVuc2lnbmVkIGludCBpLCBjb3MgPSBpbmZvLT5jb3MsIGNv c19udW0gPSBwcm9wcy0+Y29zX251bTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgY29zX251bTsg aSsrICkKKyAgICB7CisgICAgICAgIGlmICggZmVhdC0+Y29zX3JlZ192YWxbY29zICogY29zX251 bSArIGldICE9IGluZm8tPnZhbFtpXSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZlYXQtPmNv c19yZWdfdmFsW2NvcyAqIGNvc19udW0gKyBpXSA9IGluZm8tPnZhbFtpXTsKKyAgICAgICAgICAg IHByb3BzLT53cml0ZV9tc3IoY29zLCBpbmZvLT52YWxbaV0sIHByb3BzLT50eXBlW2ldKTsKKyAg ICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIGludCB3cml0ZV9wc3JfbXNycyh1bnNpZ25lZCBp bnQgc29ja2V0LCB1bnNpZ25lZCBpbnQgY29zLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCB2YWxbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZSkKIHsKLSAgICByZXR1cm4gLUVO T0VOVDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICpp bmZvID0gZ2V0X3NvY2tldF9pbmZvKHNvY2tldCk7CisgICAgc3RydWN0IGNvc193cml0ZV9pbmZv IGRhdGEgPQorICAgIHsKKyAgICAgICAgLmNvcyA9IGNvcywKKyAgICAgICAgLmZlYXR1cmUgPSBp bmZvLT5mZWF0dXJlc1tmZWF0X3R5cGVdLAorICAgICAgICAucHJvcHMgPSBmZWF0X3Byb3BzW2Zl YXRfdHlwZV0sCisgICAgfTsKKworICAgIGlmICggY29zID4gaW5mby0+ZmVhdHVyZXNbZmVhdF90 eXBlXS0+Y29zX21heCApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgLyogU2tpcCB0 byB0aGUgZmVhdHVyZSdzIHZhbHVlIGhlYWQuICovCisgICAgZm9yICggaSA9IDA7IGkgPCBmZWF0 X3R5cGU7IGkrKyApCisgICAgeworICAgICAgICBpZiAoICFpbmZvLT5mZWF0dXJlc1tpXSApCisg ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoICFmZWF0X3Byb3BzW2ldICkKKyAg ICAgICAgeworICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgICAgICBy ZXR1cm4gLUVOT0VOVDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggYXJyYXlfbGVuIDw9IGZl YXRfcHJvcHNbZmVhdF90eXBlXS0+Y29zX251bSApCisgICAgICAgICAgICByZXR1cm4gLUVOT1NQ QzsKKworICAgICAgICBhcnJheV9sZW4gLT0gZmVhdF9wcm9wc1tmZWF0X3R5cGVdLT5jb3NfbnVt OworCisgICAgICAgIHZhbCArPSBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPmNvc19udW07CisgICAg fQorCisgICAgaWYgKCBhcnJheV9sZW4gPCBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPmNvc19udW0g KQorICAgICAgICByZXR1cm4gLUVOT1NQQzsKKworICAgIGRhdGEudmFsID0gdmFsOworCisgICAg aWYgKCBzb2NrZXQgPT0gY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpICkKKyAgICAg ICAgZG9fd3JpdGVfcHNyX21zcnMoJmRhdGEpOworICAgIGVsc2UKKyAgICB7CisgICAgICAgIHVu c2lnbmVkIGludCBjcHUgPSBnZXRfc29ja2V0X2NwdShzb2NrZXQpOworCisgICAgICAgIGlmICgg Y3B1ID49IG5yX2NwdV9pZHMgKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9UU09DSzsKKyAgICAg ICAgb25fc2VsZWN0ZWRfY3B1cyhjcHVtYXNrX29mKGNwdSksIGRvX3dyaXRlX3Bzcl9tc3JzLCAm ZGF0YSwgMSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBwc3Jfc2V0X3ZhbChz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAotLSAKMS45LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK