From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v11 09/23] x86: refactor psr: L3 CAT: set value: assemble features value array. Date: Wed, 3 May 2017 16:44:09 +0800 Message-ID: <1493801063-38513-10-git-send-email-yi.y.sun@linux.intel.com> References: <1493801063-38513-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 1d5q2u-0000Zi-PW for xen-devel@lists.xenproject.org; Wed, 03 May 2017 08:54:04 +0000 In-Reply-To: <1493801063-38513-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 T25seSBjYW4gb25lIENPUyBJRCBiZSB1c2VkIGJ5IG9uZSBkb21haW4gYXQgb25lIHRpbWUuIFRo YXQgbWVhbnMgYWxsIGVuYWJsZWQKZmVhdHVyZXMnIENPUyByZWdpc3RlcnMgYXQgdGhpcyBDT1Mg SUQgYXJlIHZhbGlkIGZvciB0aGlzIGRvbWFpbiBhdCB0aGF0IHRpbWUuCgpXaGVuIHVzZXIgdXBk YXRlcyBhIGZlYXR1cmUncyB2YWx1ZSwgd2UgbmVlZCBtYWtlIHN1cmUgYWxsIG90aGVyIGZlYXR1 cmVzJwp2YWx1ZXMgYXJlIG5vdCBhZmZlY3RlZC4gU28sIHdlIGZpcnN0bHkgbmVlZCBnYXRoZXIg YW4gYXJyYXkgd2hpY2ggY29udGFpbnMKYWxsIGZlYXR1cmVzIGN1cnJlbnQgdmFsdWVzIGFuZCBy ZXBsYWNlIHRoZSBzZXR0aW5nIGZlYXR1cmUncyB2YWx1ZSBpbiBhcnJheQp0byBuZXcgdmFsdWUu CgpUaGVuLCB3ZSBjYW4gdHJ5IHRvIGZpbmQgaWYgdGhlcmUgaXMgYSBDT1MgSUQgb24gd2hpY2gg YWxsIGZlYXR1cmVzJyBDT1MKcmVnaXN0ZXJzIHZhbHVlcyBhcmUgc2FtZSBhcyB0aGUgYXJyYXku IElmIHdlIGNhbiBmaW5kLCB3ZSBqdXN0IHVzZSB0aGlzIENPUwpJRC4gSWYgZmFpbCB0byBmaW5k LCB3ZSBuZWVkIHBpY2sgYSBuZXcgQ09TIElELgoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHZhbHVl IGFycmF5IGFzc2VtYmxpbmcgZmxvdy4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5A bGludXguaW50ZWwuY29tPgotLS0KdjExOgogICAgLSBjaGFuZ2VzIGFib3V0ICdmZWF0X3Byb3Bz Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAn Z2V0X3ZhbCcuIEl0IGlzIHJlcGxhY2VkIGJ5IGdlbmVyaWMgY29kZXMuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCnYxMDoKICAgIC0gcmVtb3ZlICdnZXRfb2xkX3ZhbCcgdG8gZGly ZWN0bHkgY2FsbCAnZ2V0X3ZhbCcgdG8gZ2V0IG5lZWRlZCB2YWwuCiAgICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpCiAgICAtIG1vdmUgJ3Bzcl9jaGVja19jYm0nIGludG8gJ2luc2VydF92 YWxfdG9fYXJyYXknLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFu Z2UgdHlwZSBvZiAnY2JtJyBpbiAncHNyX2NoZWNrX2NibScgdG8gJ3Vuc2lnbmVkIGxvbmcnLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgJ3NldF9uZXdfdmFs JyBhcyBpdCBjYW4gYmUgaGFuZGxlZCBpbiBnZW5lcmljIHByb2Nlc3MuCiAgICAtIGNoYW5nZXMg cmVsYXRlZCB0byAnZmVhdF9wcm9wcycuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIGFkanVzdCBmbG93IGluICdnYXRoZXJfdmFsX2FycmF5JyB0byBhdm9pZCBhcnJheSBj cm9zcy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRqdXN0IGZsb3cg aW4gJ2luc2VydF92YWxfdG9fYXJyYXknIHRvIGF2b2lkIGFycmF5IGNyb3NzLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2OToKICAgIC0gYWRkIGNvbW1lbnRzIGFib3V0IGJvdW5k YXJ5IGNoZWNraW5nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlbmFtZSAn YXNzZW1ibGVfdmFsX2FycmF5JyB0byAnY29tYmluZV92YWxfYXJyYXknIGluIHBlcnZpb3VzIHBh dGNoLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlbmFtZSAnbDNfY2F0X2dl dF9jb3NfbnVtJyB0byAnY2F0X2dldF9jb3NfbnVtJyB0byBjb3ZlciBhbGwgTDMvTDIgQ0FUCiAg ICAgIGZlYXR1cmVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gcmVuYW1l ICdsM19jYXRfZ2V0X29sZF92YWwnIHRvICdjYXRfZ2V0X29sZF92YWwnIHRvIGNvdmVyIGFsbCBM My9MMiBDQVQKICAgICAgZmVhdHVyZXMgYW5kIHJldXNlIGNhdF9nZXRfdmFsIGluIGl0LgogICAg ICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gcmVwbGFjZSBmZWF0dXJlIGxpc3QgaGFu ZGxpbmcgdG8gZmVhdHVyZSBhcnJheSBoYW5kbGluZy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUpCiAgICAtIG1vZGlmeSBwYXRjaCB0aXRsZSB0byBpbmRpY2F0ZSAnTDMgQ0FUJy4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVwbGFjZSAnbScgdG8gJ25ld192 YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb3ZlIGNvcyBjaGVj ayBvdXRzaWRlIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSByZW1vdmUgJ2dldF9jb3NfbnVtJyBjYWxsYmFjayBmdW5jdGlvbi4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAndWludDY0X3Qn IHRvICd1aW50MzJfdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY2OgogICAg LSBjaGFuZ2UgJ2Fzc2VtYmxlX3ZhbF9hcnJheScgdG8gJ2NvbWJpbmVfdmFsX2FycmF5Jy4KICAg ICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCiAgICAtIGNoZWNrIHJldHVy biB2YWx1ZSBvZiAnZ2V0X29sZF92YWwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVz enV0ZWsgV2lsaykKICAgIC0gcmVwbGFjZSBzb21lICdFSU5WQUwnIHRvICdFTk9TUEMnLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsaykKdjU6CiAgICAtIG1vZGlmeSBj b21tZW50cyBhY2NvcmRpbmcgdG8gY2hhbmdlcyBvZiBjb2Rlcy4KICAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlICdib29sX3QnIHRvICdib29sJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5IHJldHVybiB2YWx1ZSBvZiBjYWxs YmFjayBmdW5jdGlvbnMgYmVjYXVzZSB3ZSBkbyBub3QgbmVlZCB0aGVtCiAgICAgIHRvIHJldHVy biBudW1iZXIgb2YgZW50cmllcyB0aGUgZmVhdHVyZSB1c2VzLiBJbiBjYWxsZXIsIHdlIGNhbGwK ICAgICAgJ2dldF9jb3NfbnVtJyB0byBnZXQgdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoZSBmZWF0 dXJlIHVzZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vZGlmeSB2 YXJpYWJsZXMgbmFtZXMgdG8gbWFrZSB0aGVtIGJldHRlciwgZS5nLiAnZmVhdF90bXAnIHRvICdm ZWF0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjQ6CiAgICAtIGNyZWF0ZSB0 aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpCi0tLQogeGVuL2FyY2gveDg2L3Bzci5jIHwgMTEwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDc2NTg3ODYuLmIx NTkyNGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYv cHNyLmMKQEAgLTIwMiw2ICsyMDIsMjkgQEAgc3RhdGljIGVudW0gcHNyX2ZlYXRfdHlwZSBwc3Jf Y2JtX3R5cGVfdG9fZmVhdF90eXBlKGVudW0gY2JtX3R5cGUgdHlwZSkKICAgICByZXR1cm4gZmVh dF90eXBlOwogfQogCitzdGF0aWMgYm9vbCBwc3JfY2hlY2tfY2JtKHVuc2lnbmVkIGludCBjYm1f bGVuLCB1bnNpZ25lZCBsb25nIGNibSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgZmlyc3RfYml0LCB6 ZXJvX2JpdDsKKworICAgIC8qIFNldCBiaXRzIHNob3VsZCBvbmx5IGluIHRoZSByYW5nZSBvZiBb MCwgY2JtX2xlbl0uICovCisgICAgaWYgKCBjYm0gJiAofjB1bCA8PCBjYm1fbGVuKSApCisgICAg ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8qIEF0IGxlYXN0IG9uZSBiaXQgbmVlZCB0byBiZSBz ZXQuICovCisgICAgaWYgKCBjYm0gPT0gMCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg IGZpcnN0X2JpdCA9IGZpbmRfZmlyc3RfYml0KCZjYm0sIGNibV9sZW4pOworICAgIHplcm9fYml0 ID0gZmluZF9uZXh0X3plcm9fYml0KCZjYm0sIGNibV9sZW4sIGZpcnN0X2JpdCk7CisKKyAgICAv KiBTZXQgYml0cyBzaG91bGQgYmUgY29udGlndW91cy4gKi8KKyAgICBpZiAoIHplcm9fYml0IDwg Y2JtX2xlbiAmJgorICAgICAgICAgZmluZF9uZXh0X2JpdCgmY2JtLCBjYm1fbGVuLCB6ZXJvX2Jp dCkgPCBjYm1fbGVuICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7 Cit9CisKIC8qIENBVCBjb21tb24gZnVuY3Rpb25zIGltcGxlbWVudGF0aW9uLiAqLwogc3RhdGlj IHZvaWQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKQEAgLTU2 OSw3ICs1OTIsMTQgQEAgaW50IHBzcl9nZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBzb2NrZXQsCiAvKiBTZXQgdmFsdWUgZnVuY3Rpb25zICovCiBzdGF0aWMgdW5zaWduZWQg aW50IGdldF9jb3NfbnVtKGNvbnN0IHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmluZm8pCiB7Ci0g ICAgcmV0dXJuIDA7CisgICAgdW5zaWduZWQgaW50IG51bSA9IDAsIGk7CisKKyAgICAvKiBHZXQg YWxsIGZlYXR1cmVzIHRvdGFsIGFtb3VudC4gKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8IFBTUl9T T0NLRVRfRkVBVF9OVU07IGkrKyApCisgICAgICAgIGlmICggZmVhdF9wcm9wc1tpXSApCisgICAg ICAgICAgICBudW0gKz0gZmVhdF9wcm9wc1tpXS0+Y29zX251bTsKKworICAgIHJldHVybiBudW07 CiB9CiAKIHN0YXRpYyBpbnQgZ2F0aGVyX3ZhbF9hcnJheSh1aW50MzJfdCB2YWxbXSwKQEAgLTU3 Nyw3ICs2MDcsNDEgQEAgc3RhdGljIGludCBnYXRoZXJfdmFsX2FycmF5KHVpbnQzMl90IHZhbFtd LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwc3Jfc29ja2V0X2lu Zm8gKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9j b3MpCiB7Ci0gICAgcmV0dXJuIC1FSU5WQUw7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBp ZiAoICF2YWwgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIC8qIEdldCBhbGwgZmVh dHVyZXMgY3VycmVudCB2YWx1ZXMgYWNjb3JkaW5nIHRvIG9sZF9jb3MuICovCisgICAgZm9yICgg aSA9IDA7IGkgPCBQU1JfU09DS0VUX0ZFQVRfTlVNOyBpKysgKQorICAgIHsKKyAgICAgICAgdW5z aWduZWQgaW50IGNvcyA9IG9sZF9jb3MsIGo7CisgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQgPSBpbmZvLT5mZWF0dXJlc1tpXTsKKyAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRf cHJvcHMgKnByb3BzID0gZmVhdF9wcm9wc1tpXTsKKworICAgICAgICBpZiAoICFmZWF0IHx8ICFw cm9wcyApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIGFycmF5X2xlbiA8 IHByb3BzLT5jb3NfbnVtICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOworCisgICAgICAg IC8qCisgICAgICAgICAqIElmIG9sZF9jb3MgZXhjZWVkcyBjdXJyZW50IGZlYXR1cmUncyBjb3Nf bWF4LCB3ZSBzaG91bGQgZ2V0CisgICAgICAgICAqIGRlZmF1bHQgdmFsdWUuIFNvIGFzc2lnbiBj b3MgdG8gMCB3aGljaCBzdG9yZXMgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAg IGlmICggY29zID4gZmVhdC0+Y29zX21heCApCisgICAgICAgICAgICBjb3MgPSAwOworCisgICAg ICAgIC8qIFZhbHVlIGdldHRpbmcgb3JkZXIgaXMgc2FtZSBhcyBmZWF0dXJlIGFycmF5LiAqLwor ICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHByb3BzLT5jb3NfbnVtOyBqKysgKQorICAgICAgICAg ICAgdmFsW2pdID0gZmVhdC0+Y29zX3JlZ192YWxbY29zICogcHJvcHMtPmNvc19udW0gKyBqXTsK KworICAgICAgICBhcnJheV9sZW4gLT0gcHJvcHMtPmNvc19udW07CisKKyAgICAgICAgdmFsICs9 IHByb3BzLT5jb3NfbnVtOworICAgIH0KKworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW50 IGluc2VydF92YWxfaW50b19hcnJheSh1aW50MzJfdCB2YWxbXSwKQEAgLTU4Nyw3ICs2NTEsNDcg QEAgc3RhdGljIGludCBpbnNlcnRfdmFsX2ludG9fYXJyYXkodWludDMyX3QgdmFsW10sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNibV90eXBlIHR5cGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuZXdfdmFsKQogewotICAgIHJldHVy biAtRUlOVkFMOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7CisgICAgY29uc3Qg c3RydWN0IGZlYXRfcHJvcHMgKnByb3BzOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgQVNT RVJUKGZlYXRfdHlwZSA8IFBTUl9TT0NLRVRfRkVBVF9OVU0pOworCisgICAgLyogSW5zZXJ0IG5l dyB2YWx1ZSBpbnRvIGFycmF5IGFjY29yZGluZyB0byBmZWF0dXJlJ3MgcG9zaXRpb24gaW4gYXJy YXkuICovCisgICAgZm9yICggaSA9IDA7IGkgPCBmZWF0X3R5cGU7IGkrKyApCisgICAgeworICAg ICAgICBwcm9wcyA9IGZlYXRfcHJvcHNbaV07CisgICAgICAgIGlmICggIWluZm8tPmZlYXR1cmVz W2ldIHx8ICFwcm9wcyApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIGFy cmF5X2xlbiA8PSBwcm9wcy0+Y29zX251bSApCisgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsK KworICAgICAgICBhcnJheV9sZW4gLT0gcHJvcHMtPmNvc19udW07CisKKyAgICAgICAgdmFsICs9 IHByb3BzLT5jb3NfbnVtOworICAgIH0KKworICAgIGZlYXQgPSBpbmZvLT5mZWF0dXJlc1tmZWF0 X3R5cGVdOworICAgIGlmICggIWZlYXQgKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAg IHByb3BzID0gZmVhdF9wcm9wc1tmZWF0X3R5cGVdOworICAgIGlmICggIXByb3BzICkKKyAgICAg ICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICBpZiAoIGFycmF5X2xlbiA8IHByb3BzLT5jb3NfbnVt ICkKKyAgICAgICAgcmV0dXJuIC1FTk9TUEM7CisKKyAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZl YXQtPmNibV9sZW4sIG5ld192YWwpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAv KiBWYWx1ZSBzZXR0aW5nIHBvc2l0aW9uIGlzIHNhbWUgYXMgZmVhdHVyZSBhcnJheS4gKi8KKyAg ICBmb3IgKCBpID0gMDsgaSA8IHByb3BzLT5jb3NfbnVtOyBpKysgKQorICAgICAgICBpZiAoIHR5 cGUgPT0gcHJvcHMtPnR5cGVbaV0gKQorICAgICAgICAgICAgdmFsW2ldID0gbmV3X3ZhbDsKKwor ICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGZpbmRfY29zKGNvbnN0IHVpbnQzMl90IHZh bFtdLCB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuLAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK