From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 10/25] x86: refactor psr: L3 CAT: set value: assemble features value array. Date: Sat, 1 Apr 2017 21:53:41 +0800 Message-ID: <1491054836-30488-11-git-send-email-yi.y.sun@linux.intel.com> References: <1491054836-30488-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 1cuJTg-0005jO-AG for xen-devel@lists.xenproject.org; Sat, 01 Apr 2017 13:54:04 +0000 In-Reply-To: <1491054836-30488-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 bGludXguaW50ZWwuY29tPgotLS0KdjEwOgogICAgLSByZW1vdmUgJ2dldF9vbGRfdmFsJyB0byBk aXJlY3RseSBjYWxsICdnZXRfdmFsJyB0byBnZXQgbmVlZGVkIHZhbC4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSAncHNyX2NoZWNrX2NibScgaW50byAnaW5zZXJ0 X3ZhbF90b19hcnJheScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNo YW5nZSB0eXBlIG9mICdjYm0nIGluICdwc3JfY2hlY2tfY2JtJyB0byAndW5zaWduZWQgbG9uZycu CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlbW92ZSAnc2V0X25ld192 YWwnIGFzIGl0IGNhbiBiZSBoYW5kbGVkIGluIGdlbmVyaWMgcHJvY2Vzcy4KICAgIC0gY2hhbmdl cyByZWxhdGVkIHRvICdmZWF0X3Byb3BzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkKICAgIC0gYWRqdXN0IGZsb3cgaW4gJ2dhdGhlcl92YWxfYXJyYXknIHRvIGF2b2lkIGFycmF5 IGNyb3NzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBhZGp1c3QgZmxv dyBpbiAnaW5zZXJ0X3ZhbF90b19hcnJheScgdG8gYXZvaWQgYXJyYXkgY3Jvc3MuCiAgICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5OgogICAgLSBhZGQgY29tbWVudHMgYWJvdXQgYm91 bmRhcnkgY2hlY2tpbmcuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAgIC0gcmVuYW1l ICdhc3NlbWJsZV92YWxfYXJyYXknIHRvICdjb21iaW5lX3ZhbF9hcnJheScgaW4gcGVydmlvdXMg cGF0Y2guCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAgIC0gcmVuYW1lICdsM19jYXRf Z2V0X2Nvc19udW0nIHRvICdjYXRfZ2V0X2Nvc19udW0nIHRvIGNvdmVyIGFsbCBMMy9MMiBDQVQK ICAgICAgZmVhdHVyZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSByZW5h bWUgJ2wzX2NhdF9nZXRfb2xkX3ZhbCcgdG8gJ2NhdF9nZXRfb2xkX3ZhbCcgdG8gY292ZXIgYWxs IEwzL0wyIENBVAogICAgICBmZWF0dXJlcyBhbmQgcmV1c2UgY2F0X2dldF92YWwgaW4gaXQuCiAg ICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1KQogICAgLSByZXBsYWNlIGZlYXR1cmUgbGlzdCBo YW5kbGluZyB0byBmZWF0dXJlIGFycmF5IGhhbmRsaW5nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJv Z2VyIFBhdSkKICAgIC0gbW9kaWZ5IHBhdGNoIHRpdGxlIHRvIGluZGljYXRlICdMMyBDQVQnLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXBsYWNlICdtJyB0byAnbmV3 X3ZhbCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1vdmUgY29zIGNo ZWNrIG91dHNpZGUgY2FsbGJhY2sgZnVuY3Rpb24uCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpCiAgICAtIHJlbW92ZSAnZ2V0X2Nvc19udW0nIGNhbGxiYWNrIGZ1bmN0aW9uLgogICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2VzIGFib3V0ICd1aW50NjRf dCcgdG8gJ3VpbnQzMl90Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjY6CiAg ICAtIGNoYW5nZSAnYXNzZW1ibGVfdmFsX2FycmF5JyB0byAnY29tYmluZV92YWxfYXJyYXknLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsaykKICAgIC0gY2hlY2sgcmV0 dXJuIHZhbHVlIG9mICdnZXRfb2xkX3ZhbCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6 ZXN6dXRlayBXaWxrKQogICAgLSByZXBsYWNlIHNvbWUgJ0VJTlZBTCcgdG8gJ0VOT1NQQycuCiAg ICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKQp2NToKICAgIC0gbW9kaWZ5 IGNvbW1lbnRzIGFjY29yZGluZyB0byBjaGFuZ2VzIG9mIGNvZGVzLgogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKQogICAgLSBjaGFuZ2UgJ2Jvb2xfdCcgdG8gJ2Jvb2wnLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBtb2RpZnkgcmV0dXJuIHZhbHVlIG9mIGNh bGxiYWNrIGZ1bmN0aW9ucyBiZWNhdXNlIHdlIGRvIG5vdCBuZWVkIHRoZW0KICAgICAgdG8gcmV0 dXJuIG51bWJlciBvZiBlbnRyaWVzIHRoZSBmZWF0dXJlIHVzZXMuIEluIGNhbGxlciwgd2UgY2Fs bAogICAgICAnZ2V0X2Nvc19udW0nIHRvIGdldCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhlIGZl YXR1cmUgdXNlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW9kaWZ5 IHZhcmlhYmxlcyBuYW1lcyB0byBtYWtlIHRoZW0gYmV0dGVyLCBlLmcuICdmZWF0X3RtcCcgdG8g J2ZlYXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRl IHRoaXMgcGF0Y2ggdG8gbWFrZSBjb2RlcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgfCAxMDcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggOWQ4MDVkNi4u YzkxMjQ3OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9wc3IuYwpAQCAtMjI0LDYgKzIyNCwyOSBAQCBzdGF0aWMgZW51bSBwc3JfZmVhdF90eXBlIHBz cl9jYm1fdHlwZV90b19mZWF0X3R5cGUoZW51bSBjYm1fdHlwZSB0eXBlKQogfQogCiAvKiBDQVQg Y29tbW9uIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlvbi4gKi8KK3N0YXRpYyBib29sIHBzcl9jaGVj a19jYm0odW5zaWduZWQgaW50IGNibV9sZW4sIHVuc2lnbmVkIGxvbmcgY2JtKQoreworICAgIHVu c2lnbmVkIGludCBmaXJzdF9iaXQsIHplcm9fYml0OworCisgICAgLyogU2V0IGJpdHMgc2hvdWxk IG9ubHkgaW4gdGhlIHJhbmdlIG9mIFswLCBjYm1fbGVuXS4gKi8KKyAgICBpZiAoIGNibSAmICh+ MHVsIDw8IGNibV9sZW4pICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLyogQXQgbGVh c3Qgb25lIGJpdCBuZWVkIHRvIGJlIHNldC4gKi8KKyAgICBpZiAoIGNibSA9PSAwICkKKyAgICAg ICAgcmV0dXJuIGZhbHNlOworCisgICAgZmlyc3RfYml0ID0gZmluZF9maXJzdF9iaXQoJmNibSwg Y2JtX2xlbik7CisgICAgemVyb19iaXQgPSBmaW5kX25leHRfemVyb19iaXQoJmNibSwgY2JtX2xl biwgZmlyc3RfYml0KTsKKworICAgIC8qIFNldCBiaXRzIHNob3VsZCBiZSBjb250aWd1b3VzLiAq LworICAgIGlmICggemVyb19iaXQgPCBjYm1fbGVuICYmCisgICAgICAgICBmaW5kX25leHRfYml0 KCZjYm0sIGNibV9sZW4sIHplcm9fYml0KSA8IGNibV9sZW4gKQorICAgICAgICByZXR1cm4gZmFs c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIHZvaWQgY2F0X2luaXRfZmVhdHVy ZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHBzcl9zb2NrZXRfaW5mbyAqaW5mbywKQEAgLTU5Myw3ICs2MTYsMjEgQEAgaW50 IHBzcl9nZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCiAvKiBT ZXQgdmFsdWUgZnVuY3Rpb25zICovCiBzdGF0aWMgdW5zaWduZWQgaW50IGdldF9jb3NfbnVtKGNv bnN0IHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmluZm8pCiB7Ci0gICAgcmV0dXJuIDA7CisgICAg dW5zaWduZWQgaW50IG51bSA9IDAsIGk7CisKKyAgICAvKiBHZXQgYWxsIGZlYXR1cmVzIHRvdGFs IGFtb3VudC4gKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8IFBTUl9TT0NLRVRfTUFYX0ZFQVQ7IGkr KyApCisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0ID0gaW5mby0+ ZmVhdHVyZXNbaV07CisgICAgICAgIGlmICggIWZlYXQgKQorICAgICAgICAgICAgY29udGludWU7 CisKKyAgICAgICAgZmVhdCA9IGluZm8tPmZlYXR1cmVzW2ldOworCisgICAgICAgIG51bSArPSBm ZWF0LT5wcm9wcy0+Y29zX251bTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVtOwogfQogCiBzdGF0 aWMgaW50IGdhdGhlcl92YWxfYXJyYXkodWludDMyX3QgdmFsW10sCkBAIC02MDEsNyArNjM4LDM4 IEBAIHN0YXRpYyBpbnQgZ2F0aGVyX3ZhbF9hcnJheSh1aW50MzJfdCB2YWxbXSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvbGRfY29zKQogewotICAg IHJldHVybiAtRUlOVkFMOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgaWYgKCAhdmFsICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAvKiBHZXQgYWxsIGZlYXR1cmVzIGN1cnJl bnQgdmFsdWVzIGFjY29yZGluZyB0byBvbGRfY29zLiAqLworICAgIGZvciAoIGkgPSAwOyBpIDwg UFNSX1NPQ0tFVF9NQVhfRkVBVDsgaSsrICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBj b3MgPSBvbGRfY29zOworICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0ID0gaW5m by0+ZmVhdHVyZXNbaV07CisgICAgICAgIGlmICggIWZlYXQgKQorICAgICAgICAgICAgY29udGlu dWU7CisKKyAgICAgICAgaWYgKCBhcnJheV9sZW4gPCBmZWF0LT5wcm9wcy0+Y29zX251bSApCisg ICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKKworICAgICAgICAvKgorICAgICAgICAgKiBJZiBv bGRfY29zIGV4Y2VlZHMgY3VycmVudCBmZWF0dXJlJ3MgY29zX21heCwgd2Ugc2hvdWxkIGdldAor ICAgICAgICAgKiBkZWZhdWx0IHZhbHVlLiBTbyBhc3NpZ24gY29zIHRvIDAgd2hpY2ggc3RvcmVz IGRlZmF1bHQgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBpZiAoIGNvcyA+IGZlYXQtPnBy b3BzLT5jb3NfbWF4ICkKKyAgICAgICAgICAgIGNvcyA9IDA7CisKKyAgICAgICAgLyogVmFsdWUg Z2V0dGluZyBvcmRlciBpcyBzYW1lIGFzIGZlYXR1cmUgYXJyYXkuICovCisgICAgICAgIGZlYXQt PnByb3BzLT5nZXRfdmFsKGZlYXQsIGNvcywgJnZhbFswXSk7CisKKyAgICAgICAgYXJyYXlfbGVu IC09IGZlYXQtPnByb3BzLT5jb3NfbnVtOworCisgICAgICAgIHZhbCArPSBmZWF0LT5wcm9wcy0+ Y29zX251bTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpbnNlcnRf dmFsX3RvX2FycmF5KHVpbnQzMl90IHZhbFtdLApAQCAtNjExLDcgKzY3OSw0MCBAQCBzdGF0aWMg aW50IGluc2VydF92YWxfdG9fYXJyYXkodWludDMyX3QgdmFsW10sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IG5ld192YWwpCiB7Ci0gICAgcmV0dXJuIC1FSU5WQUw7CisgICAg Y29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAg IEFTU0VSVChmZWF0X3R5cGUgPCBQU1JfU09DS0VUX01BWF9GRUFUKTsKKworICAgIC8qIEluc2Vy dCBuZXcgdmFsdWUgaW50byBhcnJheSBhY2NvcmRpbmcgdG8gZmVhdHVyZSdzIHBvc2l0aW9uIGlu IGFycmF5LiAqLworICAgIGZvciAoIGkgPSAwOyBpIDwgZmVhdF90eXBlOyBpKysgKQorICAgIHsK KyAgICAgICAgZmVhdCA9IGluZm8tPmZlYXR1cmVzW2ldOworICAgICAgICBpZiAoICFmZWF0ICkK KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICggYXJyYXlfbGVuIDw9IGZlYXQt PnByb3BzLT5jb3NfbnVtICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOworCisgICAgICAg IGFycmF5X2xlbiAtPSBmZWF0LT5wcm9wcy0+Y29zX251bTsKKworICAgICAgICB2YWwgKz0gZmVh dC0+cHJvcHMtPmNvc19udW07CisgICAgfQorCisgICAgZmVhdCA9IGluZm8tPmZlYXR1cmVzW2Zl YXRfdHlwZV07CisgICAgaWYgKCAhZmVhdCApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisg ICAgaWYgKCBhcnJheV9sZW4gPCBmZWF0LT5wcm9wcy0+Y29zX251bSApCisgICAgICAgIHJldHVy biAtRU5PU1BDOworCisgICAgaWYgKCAhcHNyX2NoZWNrX2NibShmZWF0LT5wcm9wcy0+Y2JtX2xl biwgbmV3X3ZhbCkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIC8qIFZhbHVlIHNl dHRpbmcgcG9zaXRpb24gaXMgc2FtZSBhcyBmZWF0dXJlIGFycmF5LiAqLworICAgIHZhbFswXSA9 IG5ld192YWw7CisKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBmaW5kX2Nvcyhjb25z dCB1aW50MzJfdCB2YWxbXSwgdW5zaWduZWQgaW50IGFycmF5X2xlbiwKLS0gCjEuOS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==