From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 09/24] x86: refactor psr: set value: assemble features value array. Date: Wed, 14 Dec 2016 12:07:49 +0800 Message-ID: <1481688484-5093-10-git-send-email-yi.y.sun@linux.intel.com> References: <1481688484-5093-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 1cH7Rh-00052m-K0 for xen-devel@lists.xenproject.org; Wed, 14 Dec 2016 11:10:01 +0000 In-Reply-To: <1481688484-5093-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, 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 eS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDEzNSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxl IGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDgzOGYyZDEuLjhm Y2FhNzYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYv cHNyLmMKQEAgLTEyMSw2ICsxMjEsMzUgQEAgc3RydWN0IGZlYXRfb3BzIHsKICAgICAvKiBnZXRf dmFsIGlzIHVzZWQgdG8gZ2V0IGZlYXR1cmUgQ09TIHJlZ2lzdGVyIHZhbHVlLiAqLwogICAgIGJv b2wgKCpnZXRfdmFsKShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1bnNpZ25lZCBpbnQg Y29zLAogICAgICAgICAgICAgICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwgdWludDY0X3QgKnZh bCk7CisgICAgLyoKKyAgICAgKiBnZXRfY29zX251bSBpcyB1c2VkIHRvIGdldCB0aGUgQ09TIHJl Z2lzdGVycyBhbW91bnQgdXNlZCBieSB0aGUKKyAgICAgKiBmZWF0dXJlIGZvciBvbmUgc2V0dGlu ZywgZS5nLiBDRFAgdXNlcyAyIENPU3MgYnV0IENBVCB1c2VzIDEuCisgICAgICovCisgICAgdW5z aWduZWQgaW50ICgqZ2V0X2Nvc19udW0pKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpOwor ICAgIC8qCisgICAgICogZ2V0X29sZF92YWwgYW5kIHNldF9uZXdfdmFsIGFyZSBhIHBhaXIgb2Yg ZnVuY3Rpb25zIGNhbGxlZCB0b2dldGhlci4KKyAgICAgKiBUaGUgY2FsbGVyIHdpbGwgdHJhdmVy c2UgYWxsIGZlYXR1cmVzIGluIHRoZSBsaXN0IGFuZCBjYWxsIGJvdGgKKyAgICAgKiBmdW5jdGlv bnMgZm9yIGV2ZXJ5IGZlYXR1cmUgdG8gZG8gYmVsb3cgdHdvIHRoaW5nczoKKyAgICAgKiAxLiBn ZXQgb2xkX2NvcyByZWdpc3RlciB2YWx1ZSBvZiBhbGwgc3VwcG9ydGVkIGZlYXR1cmVzIGFuZAor ICAgICAqIDIuIHNldCB0aGUgbmV3IHZhbHVlIGZvciB0aGUgZmVhdHVyZS4KKyAgICAgKgorICAg ICAqIEFsbCB0aGUgdmFsdWVzIGFyZSBzZXQgaW50byB2YWx1ZSBhcnJheSBhY2NvcmRpbmcgdGhl IHRyYXZlcnNhbCBvcmRlciwKKyAgICAgKiBtZWFuaW5nIHRoZSBzYW1lIG9yZGVyIG9mIGZlYXR1 cmUgbGlzdCBtZW1iZXJzLgorICAgICAqCisgICAgICogVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUg YW1vdW50IG9mIGVudHJpZXMgdG8gc2tpcCBpbiB0aGUgdmFsdWUgYXJyYXkKKyAgICAgKiBvciBl cnJvci4KKyAgICAgKiAxIC0gb25lIGVudHJ5IGluIHZhbHVlIGFycmF5LgorICAgICAqIDIgLSB0 d28gZW50cmllcyBpbiB2YWx1ZSBhcnJheSwgZS5nLiBDRFAgdXNlcyB0d28gZW50cmllcy4KKyAg ICAgKiBuZWdhdGl2ZSAtIGVycm9yLgorICAgICAqLworICAgIGludCAoKmdldF9vbGRfdmFsKSh1 aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRf bm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3Mp OworICAgIGludCAoKnNldF9uZXdfdmFsKSh1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MsCisgICAgICAgICAgICAgICAgICAgICAgIGVudW0g Y2JtX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbSk7CiB9Owog CiAKQEAgLTE4Niw2ICsyMTUsMjkgQEAgc3RhdGljIHZvaWQgZnJlZV9mZWF0dXJlKHN0cnVjdCBw c3Jfc29ja2V0X2luZm8gKmluZm8pCiAgICAgfQogfQogCitzdGF0aWMgYm9vbF90IHBzcl9jaGVj a19jYm0odW5zaWduZWQgaW50IGNibV9sZW4sIHVpbnQ2NF90IGNibSkKK3sKKyAgICB1bnNpZ25l ZCBpbnQgZmlyc3RfYml0LCB6ZXJvX2JpdDsKKworICAgIC8qIFNldCBiaXRzIHNob3VsZCBvbmx5 IGluIHRoZSByYW5nZSBvZiBbMCwgY2JtX2xlbikuICovCisgICAgaWYgKCBjYm0gJiAofjB1bGwg PDwgY2JtX2xlbikgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIEF0IGxlYXN0IG9uZSBi aXQgbmVlZCB0byBiZSBzZXQuICovCisgICAgaWYgKCBjYm0gPT0gMCApCisgICAgICAgIHJldHVy biAwOworCisgICAgZmlyc3RfYml0ID0gZmluZF9maXJzdF9iaXQoJmNibSwgY2JtX2xlbik7Cisg ICAgemVyb19iaXQgPSBmaW5kX25leHRfemVyb19iaXQoJmNibSwgY2JtX2xlbiwgZmlyc3RfYml0 KTsKKworICAgIC8qIFNldCBiaXRzIHNob3VsZCBiZSBjb250aWd1b3VzLiAqLworICAgIGlmICgg emVyb19iaXQgPCBjYm1fbGVuICYmCisgICAgICAgICBmaW5kX25leHRfYml0KCZjYm0sIGNibV9s ZW4sIHplcm9fYml0KSA8IGNibV9sZW4gKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy biAxOworfQorCiAvKiBMMyBDQVQgY2FsbGJhY2sgZnVuY3Rpb25zIGltcGxlbWVudGF0aW9uLiAq Lwogc3RhdGljIHZvaWQgbDNfY2F0X2luaXRfZmVhdHVyZSh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp Z25lZCBpbnQgZWJ4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4LApAQCAtMjU1LDExICszMDcsNTMgQEAgc3RhdGljIGJv b2wgbDNfY2F0X2dldF92YWwoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwgdW5zaWduZWQg aW50IGNvcywKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGludCBsM19j YXRfZ2V0X2Nvc19udW0oY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCkKK3sKKyAgICByZXR1 cm4gMTsKK30KKworc3RhdGljIGludCBsM19jYXRfZ2V0X29sZF92YWwodWludDY0X3QgdmFsW10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3Mp Cit7CisgICAgaWYgKCBvbGRfY29zID4gZmVhdC0+aW5mby5sM19jYXRfaW5mby5jb3NfbWF4ICkK KyAgICAgICAgLyogVXNlIGRlZmF1bHQgdmFsdWUuICovCisgICAgICAgIG9sZF9jb3MgPSAwOwor CisgICAgLyogQ0FUICovCisgICAgdmFsWzBdID0gIGZlYXQtPmNvc19yZWdfdmFsW29sZF9jb3Nd OworCisgICAgLyogTDMgQ0FUIHVzZXMgb25lIENPUy4gKi8KKyAgICByZXR1cm4gMTsKK30KKwor c3RhdGljIGludCBsM19jYXRfc2V0X25ld192YWwodWludDY0X3QgdmFsW10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbnVtIGNibV90eXBlIHR5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCBtKQoreworICAgIGlmICggdHlwZSAhPSBQU1JfQ0JNX1RZ UEVfTDMgKQorICAgICAgICAvKiBMMyBDQVQgdXNlcyBvbmUgQ09TLiBTa2lwIGl0LiAqLworICAg ICAgICByZXR1cm4gMTsKKworICAgIGlmICggIXBzcl9jaGVja19jYm0oZmVhdC0+aW5mby5sM19j YXRfaW5mby5jYm1fbGVuLCBtKSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgdmFs WzBdID0gbTsKKworICAgIC8qIEwzIENBVCB1c2VzIG9uZSBDT1MuICovCisgICAgcmV0dXJuIDE7 Cit9CisKIHN0cnVjdCBmZWF0X29wcyBsM19jYXRfb3BzID0gewogICAgIC5pbml0X2ZlYXR1cmUg PSBsM19jYXRfaW5pdF9mZWF0dXJlLAogICAgIC5nZXRfbWF4X2Nvc19tYXggPSBsM19jYXRfZ2V0 X21heF9jb3NfbWF4LAogICAgIC5nZXRfZmVhdF9pbmZvID0gbDNfY2F0X2dldF9mZWF0X2luZm8s CiAgICAgLmdldF92YWwgPSBsM19jYXRfZ2V0X3ZhbCwKKyAgICAuZ2V0X2Nvc19udW0gPSBsM19j YXRfZ2V0X2Nvc19udW0sCisgICAgLmdldF9vbGRfdmFsID0gbDNfY2F0X2dldF9vbGRfdmFsLAor ICAgIC5zZXRfbmV3X3ZhbCA9IGwzX2NhdF9zZXRfbmV3X3ZhbCwKIH07CiAKIHN0YXRpYyB2b2lk IF9faW5pdCBwYXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFyICp2YWx1ZSwgY2hhciAqZmVhdHVy ZSwKQEAgLTUxNiw3ICs2MTAsMTQgQEAgaW50IHBzcl9nZXRfdmFsKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGludCBzb2NrZXQsCiAvKiBTZXQgdmFsdWUgZnVuY3Rpb25zICovCiBzdGF0aWMg dW5zaWduZWQgaW50IGdldF9jb3NfbnVtKGNvbnN0IHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmlu Zm8pCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdF90 bXA7CisgICAgdW5zaWduZWQgaW50IG51bSA9IDA7CisKKyAgICAvKiBHZXQgYWxsIGZlYXR1cmVz IHRvdGFsIGFtb3VudC4gKi8KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGZlYXRfdG1wLCAmaW5m by0+ZmVhdF9saXN0LCBsaXN0KQorICAgICAgICBudW0gKz0gZmVhdF90bXAtPm9wcy5nZXRfY29z X251bShmZWF0X3RtcCk7CisKKyAgICByZXR1cm4gbnVtOwogfQogCiBzdGF0aWMgaW50IGdldF9v bGRfc2V0X25ldyh1aW50NjRfdCAqdmFsLApAQCAtNTI2LDYgKzYyNywzOCBAQCBzdGF0aWMgaW50 IGdldF9vbGRfc2V0X25ldyh1aW50NjRfdCAqdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW51bSBjYm1fdHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgbSkKIHsKKyAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0X3RtcDsKKyAgICBpbnQg cmV0OworICAgIHVpbnQ2NF90ICp2YWxfdG1wID0gdmFsOworCisgICAgaWYgKCAhdmFsICkKKyAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAvKiBHZXQgYWxsIGZlYXR1cmVzIGN1cnJlbnQg dmFsdWVzIGFjY29yZGluZyB0byBvbGRfY29zLiAqLworICAgIGxpc3RfZm9yX2VhY2hfZW50cnko ZmVhdF90bXAsICZpbmZvLT5mZWF0X2xpc3QsIGxpc3QpCisgICAgeworICAgICAgICAvKiB2YWx1 ZSBnZXR0aW5nIG9yZGVyIGlzIHNhbWUgYXMgZmVhdHVyZSBsaXN0ICovCisgICAgICAgIHJldCA9 IGZlYXRfdG1wLT5vcHMuZ2V0X29sZF92YWwodmFsX3RtcCwgZmVhdF90bXAsIG9sZF9jb3MpOwor CisgICAgICAgIHZhbF90bXAgKz0gcmV0OworICAgICAgICBpZiAoIHZhbF90bXAgLSB2YWwgPiBh cnJheV9sZW4pCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICAvKiBT ZXQgbmV3IHZhbHVlIGludG8gYXJyYXkgYWNjb3JkaW5nIHRvIGZlYXR1cmUncyBwb3NpdGlvbiBp biBhcnJheS4gKi8KKyAgICB2YWxfdG1wID0gdmFsOworICAgIGxpc3RfZm9yX2VhY2hfZW50cnko ZmVhdF90bXAsICZpbmZvLT5mZWF0X2xpc3QsIGxpc3QpCisgICAgeworICAgICAgICAvKiB2YWx1 ZSBzZXR0aW5nIG9yZGVyIGlzIHNhbWUgYXMgZmVhdHVyZSBsaXN0ICovCisgICAgICAgIHJldCA9 IGZlYXRfdG1wLT5vcHMuc2V0X25ld192YWwodmFsX3RtcCwgZmVhdF90bXAsIG9sZF9jb3MsIHR5 cGUsIG0pOworICAgICAgICBpZiAoIHJldCA8IDAgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsK KworICAgICAgICB2YWxfdG1wICs9IHJldDsKKyAgICAgICAgaWYgKCB2YWxfdG1wIC0gdmFsID4g YXJyYXlfbGVuKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCiAgICAgcmV0 dXJuIDA7CiB9CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==