From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v13 12/23] x86: refactor psr: L3 CAT: set value: implement write msr flow. Date: Thu, 6 Jul 2017 09:53:05 +0800 Message-ID: <1499305996-19029-13-git-send-email-yi.y.sun@linux.intel.com> References: <1499305996-19029-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSwCK-0000sY-EG for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 02:07:16 +0000 In-Reply-To: <1499305996-19029-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 LmNvbT4KLS0tCnYxMzoKICAgIC0gdXNlICdza2lwX3ByaW9yX2ZlYXR1cmVzJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRkICdjb25zdCcgZm9yIHNvbWUgdmFyaWFi bGVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2MTI6CiAgICAtIGRlY2xhcmUg c2FtZSB0eXBlIHZhcmFpYmxlcyBpbiBvbmUgbGluZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKICAgIC0gcmVwbGFjZSAnZmVhdF90eXBlJyB0byAncHJvcHMnIGluICdzdHJ1Y3Qg Y29zX3dyaXRlX2luZm8nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBh c3NpZ24gdGhlICdjb3NfbnVtJyB0byBhIGxvY2FsIHZhcmlhYmxlLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2UgJ0FTU0VSVF9VTlJFQUNIQUJMRSgpJyB0byByZWNv cmQgYnVnIGFuZCByZXR1cm4gZXJyb3IgY29kZSBpZiBmZWF0CiAgICAgIGV4aXN0cyBidXQgcHJv cHMgZG9lcyBub3QgZXhpc3QuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnYxMToK ICAgIC0gcmVuYW1lICd3cml0ZV9wc3JfbXNyJyB0byAnd3JpdGVfcHNyX21zcnMnLgogICAgLSBy ZW5hbWUgJ2RvX3dyaXRlX3Bzcl9tc3InIHRvICdkb193cml0ZV9wc3JfbXNycycuCiAgICAtIGNo YW5nZSBwYXJhbWV0ZXJzIGFuZCBjb2RlcyBvZiAnd3JpdGVfcHNyX21zcnMnIHRvIGhhbmRsZSB2 YWx1ZSBhcnJheS4KICAgIC0gYWRkICdmZWF0X3R5cGUnIGluICdzdHJ1Y3QgY29zX3dyaXRlX2lu Zm8nIHRvIGhhbmRsZSBwcm9wcyBhcnJheS4KICAgIC0gaW4gJ2RvX3dyaXRlX3Bzcl9tc3JzJywg d3JpdGUgdmFsdWUgYXJyYXkgaW50byBtc3JzIGFjY29yZGluZyB0bwogICAgICAncHJvcHMtPnR5 cGVbaV0nLgogICAgLSBtb3ZlICdmZWF0LT5jb3NfcmVnX3ZhbCcgYXNzaWdubWVudCBhbmQgdmFs dWUgY29tcGFyaXNvbiBpbiAnd3JpdGVfbXNyJwogICAgICBjYWxsYmFjayBmdW5jdGlvbiBvdXQg YXMgZ2VuZXJpYyBjb2Rlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0g bW92ZSBjaGVjayBmcm9tICdkb193cml0ZV9wc3JfbXNycycgdG8gJ3dyaXRlX3Bzcl9tc3JzJy4K ICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlIGFib3V0ICdjb3Nf bWF4Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlIGFib3V0 ICdmZWF0X3Byb3BzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjEwOgogICAg LSByZW1vdmUgJ3R5cGUnIGZyb20gJ3dyaXRlX21zcicgcGFyYW1ldGVyIGxpc3QuIFdpbGwgYWRk IGl0IGJhY2sgd2hlbgogICAgICBpbXBsZW1lbnRpbmcgQ0RQLgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZXMgYWJvdXQgJ3Byb3BzJy4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjk6CiAgICAtIHJlcGxhY2UgZmVhdHVyZSBsaXN0 IGhhbmRsaW5nIHRvIGZlYXR1cmUgYXJyYXkgaGFuZGxpbmcuCiAgICAgIChzdWdnZXN0ZWQgYnkg Um9nZXIgUGF1KQogICAgLSBhZGQgJ2FycmF5X2xlbicgaW4gJ3N0cnVjdCBjb3Nfd3JpdGVfaW5m bycgYW5kIGNoZWNrIGlmIHZhbCBhcnJheQogICAgICBleGNlZWRzIGl0LgogICAgLSBtb2RpZnkg J3dyaXRlX3Bzcl9tc3InIGZsb3cgb25seSB0byBzZXQgb25lIHZhbHVlIGEgdGltZS4gTm8gbmVl ZCB0bwogICAgICBzZXQgd2hvbGUgZmVhdHVyZSBhcnJheSB2YWx1ZXMuCiAgICAtIG1vZGlmeSBw YXRjaCB0aXRsZSB0byBpbmRpY2F0ZSAnTDMgQ0FUJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAndWludDY0X3QnIHRvICd1aW50MzJfdCcuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY4OgogICAgLSBtb2RpZnkgJ3dyaXRlX21z cicgY2FsbGJhY2sgZnVuY3Rpb24gdG8gJ3ZvaWQnIGJlY2F1c2Ugd2UgaGF2ZSB0byBzZXQKICAg ICAgYWxsIGZlYXR1cmVzJyBjYm0uIFdoZW4gaW5wdXQgY29zIGV4Y2VlZHMgc29tZSBmZWF0dXJl cycgY29zX21heCwganVzdAogICAgICBza2lwIHRoZW0gYnV0IG5vdCBicmVhayB0aGUgaXRlcmF0 aW9uLgp2NToKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIHByb3ZpZGUgZXhhY3QgcGF0 Y2ggbmFtZSB0byBjb250aW51ZSBmcm9tLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQogICAgLSBtb2RpZnkgcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrIGZ1bmN0aW9ucyBiZWNhdXNl IHdlIGRvIG5vdCBuZWVkIHRoZW0KICAgICAgdG8gcmV0dXJuIG51bWJlciBvZiBlbnRyaWVzIHRo ZSBmZWF0dXJlIHVzZXMuIEluIGNhbGxlciwgd2UgY2FsbAogICAgICAnZ2V0X2Nvc19udW0nIHRv IGdldCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhlIGZlYXR1cmUgdXNlcy4KICAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSB0eXBlIGNoZWNrIG91dCBmcm9tIGNhbGxi YWNrIGZ1bmN0aW9ucyB0byBjYWxsZXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIG1vZGlmeSB2YXJpYWJsZXMgbmFtZXMgdG8gbWFrZSB0aGVtIGJldHRlciwgZS5nLiAn ZmVhdF90bXAnIHRvICdmZWF0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAg IC0gY29ycmVjdCBjb2RlIGZvcm1hdC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK djQ6CiAgICAtIGNyZWF0ZSB0aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgZWFzaWVyIHVuZGVyc3Rh bmQuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gveDg2L3Bz ci5jIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCiAxIGZpbGUgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRl eCBjYmUwOGNlLi40OGRhYjYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIv eGVuL2FyY2gveDg2L3Bzci5jCkBAIC0xMTMsNiArMTEzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBmZWF0X3Byb3BzIHsKICAgICAvKiBnZXRfZmVhdF9pbmZvIGlzIHVzZWQgdG8gcmV0dXJuIGZl YXR1cmUgSFcgaW5mbyB0aHJvdWdoIHN5c2N0bC4gKi8KICAgICBib29sICgqZ2V0X2ZlYXRfaW5m bykoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgZGF0YVtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuKTsKKworICAgIC8qIHdy aXRlX21zciBpcyB1c2VkIHRvIHdyaXRlIG91dCBmZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KKyAg ICB2b2lkICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVudW0g Y2JtX3R5cGUgdHlwZSk7CiB9ICpmZWF0X3Byb3BzW0ZFQVRfVFlQRV9OVU1dOwogCiAvKgpAQCAt Mjg5LDExICsyOTIsMTcgQEAgc3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8oY29uc3Qgc3Ry dWN0IGZlYXRfbm9kZSAqZmVhdCwKIH0KIAogLyogTDMgQ0FUIHByb3BzICovCitzdGF0aWMgdm9p ZCBsM19jYXRfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwgZW51bSBj Ym1fdHlwZSB0eXBlKQoreworICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSyhjb3MpLCB2 YWwpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2F0X3Byb3BzID0g ewogICAgIC5jb3NfbnVtID0gMSwKICAgICAudHlwZVswXSA9IFBTUl9DQk1fVFlQRV9MMywKICAg ICAuYWx0X3R5cGUgPSBQU1JfQ0JNX1RZUEVfVU5LTk9XTiwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9 IGNhdF9nZXRfZmVhdF9pbmZvLAorICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAog fTsKIAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZh bHVlLCBjaGFyICpmZWF0dXJlLApAQCAtOTQ2LDExICs5NTUsNzcgQEAgc3RhdGljIGludCBwaWNr X2F2YWlsX2Nvcyhjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAogICAgIHJldHVy biAtRU9WRVJGTE9XOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9zb2NrZXRfY3B1KHVu c2lnbmVkIGludCBzb2NrZXQpCit7CisgICAgaWYgKCBsaWtlbHkoc29ja2V0IDwgbnJfc29ja2V0 cykgKQorICAgICAgICByZXR1cm4gY3B1bWFza19hbnkoc29ja2V0X2NwdW1hc2tbc29ja2V0XSk7 CisKKyAgICByZXR1cm4gbnJfY3B1X2lkczsKK30KKworc3RydWN0IGNvc193cml0ZV9pbmZvCit7 CisgICAgdW5zaWduZWQgaW50IGNvczsKKyAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0dXJlOwor ICAgIGNvbnN0IHVpbnQzMl90ICp2YWw7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgKnBy b3BzOworfTsKKworc3RhdGljIHZvaWQgZG9fd3JpdGVfcHNyX21zcnModm9pZCAqZGF0YSkKK3sK KyAgICBjb25zdCBzdHJ1Y3QgY29zX3dyaXRlX2luZm8gKmluZm8gPSBkYXRhOworICAgIHN0cnVj dCBmZWF0X25vZGUgKmZlYXQgPSBpbmZvLT5mZWF0dXJlOworICAgIGNvbnN0IHN0cnVjdCBmZWF0 X3Byb3BzICpwcm9wcyA9IGluZm8tPnByb3BzOworICAgIHVuc2lnbmVkIGludCBpLCBjb3MgPSBp bmZvLT5jb3MsIGNvc19udW0gPSBwcm9wcy0+Y29zX251bTsKKworICAgIGZvciAoIGkgPSAwOyBp IDwgY29zX251bTsgaSsrICkKKyAgICB7CisgICAgICAgIGlmICggZmVhdC0+Y29zX3JlZ192YWxb Y29zICogY29zX251bSArIGldICE9IGluZm8tPnZhbFtpXSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIGZlYXQtPmNvc19yZWdfdmFsW2NvcyAqIGNvc19udW0gKyBpXSA9IGluZm8tPnZhbFtpXTsK KyAgICAgICAgICAgIHByb3BzLT53cml0ZV9tc3IoY29zLCBpbmZvLT52YWxbaV0sIHByb3BzLT50 eXBlW2ldKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIGludCB3cml0ZV9wc3JfbXNy cyh1bnNpZ25lZCBpbnQgc29ja2V0LCB1bnNpZ25lZCBpbnQgY29zLAogICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCB2YWxbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXRfdHlwZSkKIHsKLSAg ICByZXR1cm4gLUVOT0VOVDsKKyAgICBpbnQgcmV0OworICAgIHN0cnVjdCBwc3Jfc29ja2V0X2lu Zm8gKmluZm8gPSBnZXRfc29ja2V0X2luZm8oc29ja2V0KTsKKyAgICBzdHJ1Y3QgY29zX3dyaXRl X2luZm8gZGF0YSA9CisgICAgeworICAgICAgICAuY29zID0gY29zLAorICAgICAgICAuZmVhdHVy ZSA9IGluZm8tPmZlYXR1cmVzW2ZlYXRfdHlwZV0sCisgICAgICAgIC5wcm9wcyA9IGZlYXRfcHJv cHNbZmVhdF90eXBlXSwKKyAgICB9OworCisgICAgaWYgKCBjb3MgPiBpbmZvLT5mZWF0dXJlc1tm ZWF0X3R5cGVdLT5jb3NfbWF4ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAvKiBT a2lwIHRvIHRoZSBmZWF0dXJlJ3MgdmFsdWUgaGVhZC4gKi8KKyAgICByZXQgPSBza2lwX3ByaW9y X2ZlYXR1cmVzKCZ2YWwsICZhcnJheV9sZW4sIGZlYXRfdHlwZSk7CisgICAgaWYgKCByZXQgKQor ICAgICAgICByZXR1cm4gcmV0OworCisgICAgaWYgKCBhcnJheV9sZW4gPCBmZWF0X3Byb3BzW2Zl YXRfdHlwZV0tPmNvc19udW0gKQorICAgICAgICByZXR1cm4gLUVOT1NQQzsKKworICAgIGRhdGEu dmFsID0gdmFsOworCisgICAgaWYgKCBzb2NrZXQgPT0gY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vz c29yX2lkKCkpICkKKyAgICAgICAgZG9fd3JpdGVfcHNyX21zcnMoJmRhdGEpOworICAgIGVsc2UK KyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBjcHUgPSBnZXRfc29ja2V0X2NwdShzb2NrZXQp OworCisgICAgICAgIGlmICggY3B1ID49IG5yX2NwdV9pZHMgKQorICAgICAgICAgICAgcmV0dXJu IC1FTk9UU09DSzsKKyAgICAgICAgb25fc2VsZWN0ZWRfY3B1cyhjcHVtYXNrX29mKGNwdSksIGRv X3dyaXRlX3Bzcl9tc3JzLCAmZGF0YSwgMSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAK IGludCBwc3Jfc2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAot LSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK