From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v5 09/24] x86: refactor psr: set value: assemble features value array. Date: Wed, 18 Jan 2017 10:02:32 +0800 Message-ID: <1484704967-5609-10-git-send-email-yi.y.sun@linux.intel.com> References: <1484704967-5609-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 1cTfbq-0005e5-A7 for xen-devel@lists.xenproject.org; Wed, 18 Jan 2017 02:04:22 +0000 In-Reply-To: <1484704967-5609-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: wei.liu2@citrix.com, konrad.wilk@oracle.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 List-Id: xen-devel@lists.xenproject.org T25seSBjYW4gb25lIENPUyBJRCBiZSB1c2VkIGJ5IG9uZSBkb21haW4gYXQgb25lIHRpbWUuIFRo YXQgbWVhbnMgYWxsIGVuYWJsZWQKZmVhdHVyZXMnIENPUyByZWdpc3RlcnMgYXQgdGhpcyBDT1Mg SUQgYXJlIHZhbGlkIGZvciB0aGlzIGRvbWFpbiBhdCB0aGF0IHRpbWUuCgpXaGVuIHVzZXIgdXBk YXRlcyBhIGZlYXR1cmUncyB2YWx1ZSwgd2UgbmVlZCBtYWtlIHN1cmUgYWxsIG90aGVyIGZlYXR1 cmVzJwp2YWx1ZXMgYXJlIG5vdCBhZmZlY3RlZC4gU28sIHdlIGZpcnN0bHkgbmVlZCBhc3NlbWJs ZSBhbiBhcnJheSB3aGljaCBjb250YWlucwphbGwgZmVhdHVyZXMgY3VycmVudCB2YWx1ZXMgYW5k IHJlcGxhY2UgdGhlIHNldHRpbmcgZmVhdHVyZSdzIHZhbHVlIGluIGFycmF5CnRvIG5ldyB2YWx1 ZS4KClRoZW4sIHdlIGNhbiB0cnkgdG8gZmluZCBpZiB0aGVyZSBpcyBhIENPUyBJRCBvbiB3aGlj aCBhbGwgZmVhdHVyZXMnIENPUwpyZWdpc3RlcnMgdmFsdWVzIGFyZSBzYW1lIGFzIHRoZSBhcnJh eS4gSWYgd2UgY2FuIGZpbmQsIHdlIGp1c3QgdXNlIHRoaXMgQ09TCklELiBJZiBmYWlsIHRvIGZp bmQsIHdlIG5lZWQgYWxsb2NhdGUgYSBuZXcgQ09TIElELgoKVGhpcyBwYXRjaCBpbXBsZW1lbnRz IHZhbHVlIGFycmF5IGFzc2VtYmxpbmcgZmxvdy4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWku eS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDE0NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxl IGNoYW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCAwNTBiMGRmLi43 YzZmMmJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2 L3Bzci5jCkBAIC0xMTUsNiArMTE1LDMyIEBAIHN0cnVjdCBmZWF0X29wcyB7CiAgICAgLyogZ2V0 X3ZhbCBpcyB1c2VkIHRvIGdldCBmZWF0dXJlIENPUyByZWdpc3RlciB2YWx1ZS4gKi8KICAgICBi b29sICgqZ2V0X3ZhbCkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwgdW5zaWduZWQgaW50 IGNvcywKICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0eXBlLCB1aW50NjRfdCAq dmFsKTsKKyAgICAvKgorICAgICAqIGdldF9jb3NfbnVtIGlzIHVzZWQgdG8gZ2V0IHRoZSBDT1Mg cmVnaXN0ZXJzIGFtb3VudCB1c2VkIGJ5IHRoZQorICAgICAqIGZlYXR1cmUgZm9yIG9uZSBzZXR0 aW5nLCBlLmcuIENEUCB1c2VzIDIgQ09TcyBidXQgQ0FUIHVzZXMgMS4KKyAgICAgKi8KKyAgICB1 bnNpZ25lZCBpbnQgKCpnZXRfY29zX251bSkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCk7 CisgICAgLyoKKyAgICAgKiBnZXRfb2xkX3ZhbCBhbmQgc2V0X25ld192YWwgYXJlIGEgcGFpciBv ZiBmdW5jdGlvbnMgY2FsbGVkIGluIG9yZGVyLgorICAgICAqIFRoZSBjYWxsZXIgd2lsbCB0cmF2 ZXJzZSBhbGwgZmVhdHVyZXMgaW4gdGhlIGxpc3QgYW5kIGNhbGwgYm90aAorICAgICAqIGZ1bmN0 aW9ucyBmb3IgZXZlcnkgZmVhdHVyZSB0byBkbyBiZWxvdyB0d28gdGhpbmdzOgorICAgICAqIDEu IGdldCBvbGRfY29zIHJlZ2lzdGVyIHZhbHVlIG9mIGFsbCBzdXBwb3J0ZWQgZmVhdHVyZXMgYW5k CisgICAgICogMi4gc2V0IHRoZSBuZXcgdmFsdWUgZm9yIHRoZSBmZWF0dXJlLgorICAgICAqCisg ICAgICogQWxsIHRoZSB2YWx1ZXMgYXJlIHNldCBpbnRvIHZhbHVlIGFycmF5IGFjY29yZGluZyB0 aGUgdHJhdmVyc2FsIG9yZGVyLAorICAgICAqIG1lYW5pbmcgdGhlIHNhbWUgb3JkZXIgb2YgZmVh dHVyZSBsaXN0IG1lbWJlcnMuCisgICAgICoKKyAgICAgKiBUaGUgcmV0dXJuIHZhbHVlIG1lYW5p bmc6CisgICAgICogMCAtIHN1Y2Nlc3MuCisgICAgICogbmVnYXRpdmUgLSBlcnJvci4KKyAgICAg Ki8KKyAgICBpbnQgKCpnZXRfb2xkX3ZhbCkodWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBvbGRfY29zKTsKKyAgICBpbnQgKCpzZXRfbmV3X3ZhbCkodWlu dDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbSk7CiB9OwogCiAvKgpAQCAtMjAwLDYgKzIy NiwyOSBAQCBzdGF0aWMgZW51bSBwc3JfZmVhdF90eXBlIHBzcl9jYm1fdHlwZV90b19mZWF0X3R5 cGUoZW51bSBjYm1fdHlwZSB0eXBlKQogICAgIHJldHVybiBmZWF0X3R5cGU7CiB9CiAKK3N0YXRp YyBib29sIHBzcl9jaGVja19jYm0odW5zaWduZWQgaW50IGNibV9sZW4sIHVpbnQ2NF90IGNibSkK K3sKKyAgICB1bnNpZ25lZCBpbnQgZmlyc3RfYml0LCB6ZXJvX2JpdDsKKworICAgIC8qIFNldCBi aXRzIHNob3VsZCBvbmx5IGluIHRoZSByYW5nZSBvZiBbMCwgY2JtX2xlbikuICovCisgICAgaWYg KCBjYm0gJiAofjB1bGwgPDwgY2JtX2xlbikgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg ICAvKiBBdCBsZWFzdCBvbmUgYml0IG5lZWQgdG8gYmUgc2V0LiAqLworICAgIGlmICggY2JtID09 IDAgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmaXJzdF9iaXQgPSBmaW5kX2ZpcnN0 X2JpdCgmY2JtLCBjYm1fbGVuKTsKKyAgICB6ZXJvX2JpdCA9IGZpbmRfbmV4dF96ZXJvX2JpdCgm Y2JtLCBjYm1fbGVuLCBmaXJzdF9iaXQpOworCisgICAgLyogU2V0IGJpdHMgc2hvdWxkIGJlIGNv bnRpZ3VvdXMuICovCisgICAgaWYgKCB6ZXJvX2JpdCA8IGNibV9sZW4gJiYKKyAgICAgICAgIGZp bmRfbmV4dF9iaXQoJmNibSwgY2JtX2xlbiwgemVyb19iaXQpIDwgY2JtX2xlbiApCisgICAgICAg IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiAvKiBMMyBDQVQgZnVuY3Rp b25zIGltcGxlbWVudGF0aW9uLiAqLwogc3RhdGljIHZvaWQgbDNfY2F0X2luaXRfZmVhdHVyZShz dHJ1Y3QgY3B1aWRfbGVhZl9yZWdzIHJlZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCkBAIC0yNjYsMTAgKzMxNSw0NSBAQCBzdGF0aWMg Ym9vbCBsM19jYXRfZ2V0X3ZhbChjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1bnNpZ25l ZCBpbnQgY29zLAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGwz X2NhdF9nZXRfY29zX251bShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQoreworICAgIHJl dHVybiAxOworfQorCitzdGF0aWMgaW50IGwzX2NhdF9nZXRfb2xkX3ZhbCh1aW50NjRfdCB2YWxb XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUg KmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2xkX2Nv cykKK3sKKyAgICBpZiAoIG9sZF9jb3MgPiBmZWF0LT5pbmZvLmwzX2NhdF9pbmZvLmNvc19tYXgg KQorICAgICAgICAvKiBVc2UgZGVmYXVsdCB2YWx1ZS4gKi8KKyAgICAgICAgb2xkX2NvcyA9IDA7 CisKKyAgICAvKiBDQVQgKi8KKyAgICB2YWxbMF0gPSAgZmVhdC0+Y29zX3JlZ192YWxbb2xkX2Nv c107CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsM19jYXRfc2V0X25ld192YWwo dWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBj Ym1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbSkK K3sKKyAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZlYXQtPmluZm8ubDNfY2F0X2luZm8uY2JtX2xl biwgbSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHZhbFswXSA9IG07CisKKyAg ICByZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X29wcyBsM19jYXRfb3Bz ID0gewogICAgIC5nZXRfY29zX21heCA9IGwzX2NhdF9nZXRfY29zX21heCwKICAgICAuZ2V0X2Zl YXRfaW5mbyA9IGwzX2NhdF9nZXRfZmVhdF9pbmZvLAogICAgIC5nZXRfdmFsID0gbDNfY2F0X2dl dF92YWwsCisgICAgLmdldF9jb3NfbnVtID0gbDNfY2F0X2dldF9jb3NfbnVtLAorICAgIC5nZXRf b2xkX3ZhbCA9IGwzX2NhdF9nZXRfb2xkX3ZhbCwKKyAgICAuc2V0X25ld192YWwgPSBsM19jYXRf c2V0X25ld192YWwsCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfcHNyX2Jvb2woY2hh ciAqcywgY2hhciAqdmFsdWUsIGNoYXIgKmZlYXR1cmUsCkBAIC01NDIsNyArNjI2LDE0IEBAIGlu dCBwc3JfZ2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAogLyog U2V0IHZhbHVlIGZ1bmN0aW9ucyAqLwogc3RhdGljIHVuc2lnbmVkIGludCBnZXRfY29zX251bShj b25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvKQogewotICAgIHJldHVybiAwOworICAg IGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXRfdG1wOworICAgIHVuc2lnbmVkIGludCBudW0g PSAwOworCisgICAgLyogR2V0IGFsbCBmZWF0dXJlcyB0b3RhbCBhbW91bnQuICovCisgICAgbGlz dF9mb3JfZWFjaF9lbnRyeShmZWF0X3RtcCwgJmluZm8tPmZlYXRfbGlzdCwgbGlzdCkKKyAgICAg ICAgbnVtICs9IGZlYXRfdG1wLT5vcHMuZ2V0X2Nvc19udW0oZmVhdF90bXApOworCisgICAgcmV0 dXJuIG51bTsKIH0KIAogc3RhdGljIGludCBhc3NlbWJsZV92YWxfYXJyYXkodWludDY0X3QgKnZh bCwKQEAgLTU1MCw3ICs2NDEsMjUgQEAgc3RhdGljIGludCBhc3NlbWJsZV92YWxfYXJyYXkodWlu dDY0X3QgKnZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBw c3Jfc29ja2V0X2luZm8gKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgb2xkX2NvcykKIHsKLSAgICByZXR1cm4gLUVJTlZBTDsKKyAgICBjb25zdCBzdHJ1 Y3QgZmVhdF9ub2RlICpmZWF0OworICAgIGludCByZXQ7CisgICAgdWludDY0X3QgKnZhbF90bXAg PSB2YWw7CisKKyAgICBpZiAoICF2YWwgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAg IC8qIEdldCBhbGwgZmVhdHVyZXMgY3VycmVudCB2YWx1ZXMgYWNjb3JkaW5nIHRvIG9sZF9jb3Mu ICovCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShmZWF0LCAmaW5mby0+ZmVhdF9saXN0LCBsaXN0 KQorICAgIHsKKyAgICAgICAgLyogdmFsdWUgZ2V0dGluZyBvcmRlciBpcyBzYW1lIGFzIGZlYXR1 cmUgbGlzdCAqLworICAgICAgICByZXQgPSBmZWF0LT5vcHMuZ2V0X29sZF92YWwodmFsX3RtcCwg ZmVhdCwgb2xkX2Nvcyk7CisKKyAgICAgICAgdmFsX3RtcCArPSBmZWF0LT5vcHMuZ2V0X2Nvc19u dW0oZmVhdCk7CisgICAgICAgIGlmICggdmFsX3RtcCAtIHZhbCA+IGFycmF5X2xlbikKKyAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVybiAwOwogfQogCiBzdGF0 aWMgaW50IHNldF9uZXdfdmFsX3RvX2FycmF5KHVpbnQ2NF90ICp2YWwsCkBAIC01NjAsNyArNjY5 LDM3IEBAIHN0YXRpYyBpbnQgc2V0X25ld192YWxfdG9fYXJyYXkodWludDY0X3QgKnZhbCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBtKQogewotICAgIHJldHVybiAtRUlO VkFMOworICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQ7CisgICAgaW50IHJldDsKKyAg ICB1aW50NjRfdCAqdmFsX3RtcCA9IHZhbDsKKworICAgIC8qIFNldCBuZXcgdmFsdWUgaW50byBh cnJheSBhY2NvcmRpbmcgdG8gZmVhdHVyZSdzIHBvc2l0aW9uIGluIGFycmF5LiAqLworICAgIGxp c3RfZm9yX2VhY2hfZW50cnkoZmVhdCwgJmluZm8tPmZlYXRfbGlzdCwgbGlzdCkKKyAgICB7Cisg ICAgICAgIGlmICggZmVhdC0+ZmVhdHVyZSAhPSBmZWF0X3R5cGUgKQorICAgICAgICB7CisgICAg ICAgICAgICB2YWxfdG1wICs9IGZlYXQtPm9wcy5nZXRfY29zX251bShmZWF0KTsKKyAgICAgICAg ICAgIGlmICggdmFsX3RtcCAtIHZhbCA+IGFycmF5X2xlbikKKyAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKKworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAg ICAvKgorICAgICAgICAgKiBWYWx1ZSBzZXR0aW5nIHBvc2l0aW9uIGlzIHNhbWUgYXMgZmVhdHVy ZSBsaXN0LgorICAgICAgICAgKiBEaWZmZXJlbnQgZmVhdHVyZXMgbWF5IGhhdmUgZGlmZmVyZW50 IHNldHRpbmcgYmVoYXZpb3JzLCBlLmcuIENEUAorICAgICAgICAgKiBoYXMgdHdvIHZhbHVlcyAo REFUQS9DT0RFKSB3aGljaCBuZWVkIHVzIHRvIHNhdmUgaW5wdXQgdmFsdWUgdG8KKyAgICAgICAg ICogZGlmZmVyZW50IHBvc2l0aW9uIGluIHRoZSBhcnJheSBhY2NvcmRpbmcgdG8gdHlwZSwgc28g d2UgaGF2ZSB0bworICAgICAgICAgKiBtYWludGFpbiBhIGNhbGxiYWNrIGZ1bmN0aW9uLgorICAg ICAgICAgKi8KKyAgICAgICAgcmV0ID0gZmVhdC0+b3BzLnNldF9uZXdfdmFsKHZhbF90bXAsIGZl YXQsIHR5cGUsIG0pOworICAgICAgICBpZiAoIHJldCApCisgICAgICAgICAgICByZXR1cm4gcmV0 OworICAgICAgICBlbHNlCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g MDsKIH0KIAogc3RhdGljIGludCBmaW5kX2Nvcyhjb25zdCB1aW50NjRfdCAqdmFsLCB1aW50MzJf dCBhcnJheV9sZW4sCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=