From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 05/15] x86: refactor psr: Use 'feat_mask' to record featues enabled. Date: Tue, 25 Oct 2016 11:40:53 +0800 Message-ID: <1477366863-5246-6-git-send-email-yi.y.sun@linux.intel.com> References: <1477366863-5246-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 1byrYo-0004HN-09 for xen-devel@lists.xenproject.org; Tue, 25 Oct 2016 02:33:54 +0000 In-Reply-To: <1477366863-5246-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, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org J2NkcF9zb2NrZXRfZW5hYmxlJyBhbmQgJ2NhdF9zb2NrZXRfZW5hYmxlJyBhcmUgdXNlZCB0byBt YXNrIGlmCkNEUC9DQVQgYXJlIGVuYWJsZWQgb24gc29ja2V0LiBCdXQgdGhleSBhcmUgc3BlY2lm aWMgZm9yIENBVCBhbmQKQ0RQLiBTbywgcmVwbGFjZSB0aGVtIHdpdGggJ2ZlYXRfbWFzaycgd2hp Y2ggaXMgYSBnZW5lcmFsIG1hc2suCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnkuc3VuQGxp bnV4LmludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgfCA0NCArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGluc2Vy dGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3Iu YyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCA5N2YxYzMzLi5hYTkwMmQyIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC0yNiw2ICsy Niw5IEBACiAvKiBQZXIgc3BlYywgdGhlIG1heGltdW0gQ09TIHJlZ2lzdGVyIG51bWJlciBpcyAx MjguICovCiAjZGVmaW5lIE1BWF9DT1NfUkVHX05VTSAgMTI4CiAKKyNkZWZpbmUgUFNSX1NPQ0tF VF9MM19DQVQgMAorI2RlZmluZSBQU1JfU09DS0VUX0wzX0NEUCAxCisKIC8qIENBVC9DRFAgSFcg aW5mbyBkYXRhIHN0cnVjdHVyZS4gKi8KIHN0cnVjdCBwc3JfY2F0X2h3X2luZm8gewogICAgIHVu c2lnbmVkIGludCBjYm1fbGVuOwpAQCAtMzMsNiArMzYsOCBAQCBzdHJ1Y3QgcHNyX2NhdF9od19p bmZvIHsKIH07CiAKIHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvIHsKKyAgICAvKiBiaXQgMX4w OiBbMDFdLT5MMyBDQVQtb25seSwgWzEwXS0+TDMgQ0RQICovCisgICAgdW5zaWduZWQgaW50IGZl YXRfbWFzazsKICAgICBzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIGwzX2luZm87CiAgICAgLyoKICAg ICAgKiBTdG9yZSB0aGUgdmFsdWVzIG9mIENPUyByZWdpc3RlcnM6CkBAIC03MSw5ICs3Niw3IEBA IHN0cnVjdCBwc3JfYXNzb2MgewogCiBzdHJ1Y3QgcHNyX2NtdCAqX19yZWFkX21vc3RseSBwc3Jf Y210OwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyAqX19yZWFkX21vc3RseSBjYXRfc29ja2V0X2Vu YWJsZTsKIHN0YXRpYyBzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbyAqX19yZWFkX21vc3RseSBj YXRfc29ja2V0X2luZm87Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyAqX19yZWFkX21vc3RseSBjZHBf c29ja2V0X2VuYWJsZTsKIAogc3RhdGljIHVuc2lnbmVkIGludCBvcHRfcHNyOwogc3RhdGljIHVu c2lnbmVkIGludCBfX2luaXRkYXRhIG9wdF9ybWlkX21heCA9IDI1NTsKQEAgLTIzOCw3ICsyNDEs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHNyX2Fzc29jX2luaXQodm9pZCkKICAgICB7CiAgICAg ICAgIHVuc2lnbmVkIGludCBzb2NrZXQgPSBjcHVfdG9fc29ja2V0KHNtcF9wcm9jZXNzb3JfaWQo KSk7CiAKLSAgICAgICAgaWYgKCB0ZXN0X2JpdChzb2NrZXQsIGNhdF9zb2NrZXRfZW5hYmxlKSAp CisgICAgICAgIGlmICggY2F0X3NvY2tldF9pbmZvW3NvY2tldF0uZmVhdF9tYXNrICkKICAgICAg ICAgICAgIHBzcmEtPmNvc19tYXNrID0gKCgxdWxsIDw8IGdldF9jb3VudF9vcmRlcigKICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2F0X3NvY2tldF9pbmZvW3NvY2tldF0ubDNfaW5mby5jb3Nf bWF4KSkgLSAxKSA8PCAzMjsKICAgICB9CkBAIC0yODUsNyArMjg4LDcgQEAgc3RhdGljIHN0cnVj dCBwc3JfY2F0X3NvY2tldF9pbmZvICpnZXRfY2F0X3NvY2tldF9pbmZvKHVuc2lnbmVkIGludCBz b2NrZXQpCiAgICAgaWYgKCBzb2NrZXQgPj0gbnJfc29ja2V0cyApCiAgICAgICAgIHJldHVybiBF UlJfUFRSKC1FTk9UU09DSyk7CiAKLSAgICBpZiAoICF0ZXN0X2JpdChzb2NrZXQsIGNhdF9zb2Nr ZXRfZW5hYmxlKSApCisgICAgaWYgKCAhY2F0X3NvY2tldF9pbmZvW3NvY2tldF0uZmVhdF9tYXNr ICkKICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7CiAKICAgICByZXR1cm4gY2F0X3Nv Y2tldF9pbmZvICsgc29ja2V0OwpAQCAtMjkzLDcgKzI5Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgcHNy X2NhdF9zb2NrZXRfaW5mbyAqZ2V0X2NhdF9zb2NrZXRfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0 KQogCiBzdGF0aWMgaW5saW5lIGJvb2xfdCBjZHBfaXNfZW5hYmxlZCh1bnNpZ25lZCBpbnQgc29j a2V0KQogewotICAgIHJldHVybiBjZHBfc29ja2V0X2VuYWJsZSAmJiB0ZXN0X2JpdChzb2NrZXQs IGNkcF9zb2NrZXRfZW5hYmxlKTsKKyAgICByZXR1cm4gdGVzdF9iaXQoUFNSX1NPQ0tFVF9MM19D RFAsICZjYXRfc29ja2V0X2luZm9bc29ja2V0XS5mZWF0X21hc2spOwogfQogCiBpbnQgcHNyX2dl dF9jYXRfbDNfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0LCB1aW50MzJfdCAqY2JtX2xlbiwKQEAg LTU1OCw3ICs1NjEsNyBAQCBzdGF0aWMgdm9pZCBwc3JfZnJlZV9jb3Moc3RydWN0IGRvbWFpbiAq ZCkKICAgICBpZiggIWQtPmFyY2gucHNyX2Nvc19pZHMgKQogICAgICAgICByZXR1cm47CiAKLSAg ICBmb3JfZWFjaF9zZXRfYml0KHNvY2tldCwgY2F0X3NvY2tldF9lbmFibGUsIG5yX3NvY2tldHMp CisgICAgZm9yKCBzb2NrZXQgPSAwOyBzb2NrZXQgPCBucl9zb2NrZXRzOyBzb2NrZXQrKyApCiAg ICAgewogICAgICAgICBpZiAoIChjb3MgPSBkLT5hcmNoLnBzcl9jb3NfaWRzW3NvY2tldF0pID09 IDAgKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02MTQsMTQgKzYxNywxNCBAQCBzdGF0aWMg dm9pZCBjYXRfY3B1X2luaXQodm9pZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc29ja2V0ID0g Y3B1X3RvX3NvY2tldChjcHUpOwotICAgIGlmICggdGVzdF9iaXQoc29ja2V0LCBjYXRfc29ja2V0 X2VuYWJsZSkgKQorICAgIGluZm8gPSBjYXRfc29ja2V0X2luZm8gKyBzb2NrZXQ7CisgICAgaWYg KCBpbmZvLT5mZWF0X21hc2sgKQogICAgICAgICByZXR1cm47CiAKICAgICBjcHVpZF9jb3VudChQ U1JfQ1BVSURfTEVWRUxfQ0FULCAwLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKICAgICBpZiAo IGVieCAmIFBTUl9SRVNPVVJDRV9UWVBFX0wzICkKICAgICB7CiAgICAgICAgIGNwdWlkX2NvdW50 KFBTUl9DUFVJRF9MRVZFTF9DQVQsIDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpOwotICAgICAg ICBpbmZvID0gY2F0X3NvY2tldF9pbmZvICsgc29ja2V0OwogICAgICAgICBpbmZvLT5sM19pbmZv LmNibV9sZW4gPSAoZWF4ICYgMHgxZikgKyAxOwogICAgICAgICBpbmZvLT5sM19pbmZvLmNvc19t YXggPSBtaW4ob3B0X2Nvc19tYXgsIGVkeCAmIDB4ZmZmZik7CiAKQEAgLTYzMCwxMCArNjMzLDgg QEAgc3RhdGljIHZvaWQgY2F0X2NwdV9pbml0KHZvaWQpCiAKICAgICAgICAgc3Bpbl9sb2NrX2lu aXQoJmluZm8tPnJlZl9sb2NrKTsKIAotICAgICAgICBzZXRfYml0KHNvY2tldCwgY2F0X3NvY2tl dF9lbmFibGUpOwotCiAgICAgICAgIGlmICggKGVjeCAmIFBTUl9DQVRfQ0RQX0NBUEFCSUxJVFkp ICYmIChvcHRfcHNyICYgUFNSX0NEUCkgJiYKLSAgICAgICAgICAgICBjZHBfc29ja2V0X2VuYWJs ZSAmJiAhdGVzdF9iaXQoc29ja2V0LCBjZHBfc29ja2V0X2VuYWJsZSkgKQorICAgICAgICAgICAg ICF0ZXN0X2JpdChQU1JfU09DS0VUX0wzX0NEUCwgJmluZm8tPmZlYXRfbWFzaykgKQogICAgICAg ICB7CiAgICAgICAgICAgICAvKiBDT0RFICovCiAgICAgICAgICAgICBnZXRfY2RwX2NvZGUoaW5m bywgMCkgPSAoMXVsbCA8PCBpbmZvLT5sM19pbmZvLmNibV9sZW4pIC0gMTsKQEAgLTY0OSw4ICs2 NTAsMTEgQEAgc3RhdGljIHZvaWQgY2F0X2NwdV9pbml0KHZvaWQpCiAgICAgICAgICAgICAvKiBD dXQgaGFsZiBvZiBjb3NfbWF4IHdoZW4gQ0RQIGlzIGVuYWJsZWQuICovCiAgICAgICAgICAgICBp bmZvLT5sM19pbmZvLmNvc19tYXggPj49IDE7CiAKLSAgICAgICAgICAgIHNldF9iaXQoc29ja2V0 LCBjZHBfc29ja2V0X2VuYWJsZSk7CisgICAgICAgICAgICBfX3NldF9iaXQoUFNSX1NPQ0tFVF9M M19DRFAsICZpbmZvLT5mZWF0X21hc2spOwogICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAg ICAgICAgIF9fc2V0X2JpdChQU1JfU09DS0VUX0wzX0NBVCwgJmluZm8tPmZlYXRfbWFzayk7CisK ICAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICJDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBj b3NfbWF4OiV1LCBjYm1fbGVuOiV1LCBDRFA6JXNcbiIsCiAgICAgICAgICAgICAgICBzb2NrZXQs IGluZm8tPmwzX2luZm8uY29zX21heCwgaW5mby0+bDNfaW5mby5jYm1fbGVuLAogICAgICAgICAg ICAgICAgY2RwX2lzX2VuYWJsZWQoc29ja2V0KSA/ICJvbiIgOiAib2ZmIik7CkBAIC02NjMsMTcg KzY2NywxNyBAQCBzdGF0aWMgdm9pZCBjYXRfY3B1X2ZpbmkodW5zaWduZWQgaW50IGNwdSkKIAog ICAgIGlmICggIXNvY2tldF9jcHVtYXNrW3NvY2tldF0gfHwgY3B1bWFza19lbXB0eShzb2NrZXRf Y3B1bWFza1tzb2NrZXRdKSApCiAgICAgewotICAgICAgICBpZiAoIGNkcF9pc19lbmFibGVkKHNv Y2tldCkgKQotICAgICAgICAgICAgY2xlYXJfYml0KHNvY2tldCwgY2RwX3NvY2tldF9lbmFibGUp OworICAgICAgICBzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbyAqaW5mbyA9IGNhdF9zb2NrZXRf aW5mbyArIHNvY2tldDsKIAotICAgICAgICBjbGVhcl9iaXQoc29ja2V0LCBjYXRfc29ja2V0X2Vu YWJsZSk7CisgICAgICAgIGlmICggY2RwX2lzX2VuYWJsZWQoc29ja2V0KSApCisgICAgICAgICAg ICBjbGVhcl9iaXQoUFNSX1NPQ0tFVF9MM19DRFAsICZpbmZvLT5mZWF0X21hc2spOworICAgICAg ICBlbHNlCisgICAgICAgICAgICBjbGVhcl9iaXQoUFNSX1NPQ0tFVF9MM19DQVQsICZpbmZvLT5m ZWF0X21hc2spOwogICAgIH0KIH0KIAogc3RhdGljIHZvaWQgX19pbml0IHBzcl9jYXRfZnJlZSh2 b2lkKQogewotICAgIHhmcmVlKGNhdF9zb2NrZXRfZW5hYmxlKTsKLSAgICBjYXRfc29ja2V0X2Vu YWJsZSA9IE5VTEw7CiAgICAgeGZyZWUoY2F0X3NvY2tldF9pbmZvKTsKICAgICBjYXRfc29ja2V0 X2luZm8gPSBOVUxMOwogfQpAQCAtNjg2LDEyICs2OTAsMTAgQEAgc3RhdGljIHZvaWQgX19pbml0 IGluaXRfcHNyX2NhdCh2b2lkKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2F0X3Nv Y2tldF9lbmFibGUgPSB4emFsbG9jX2FycmF5KHVuc2lnbmVkIGxvbmcsIEJJVFNfVE9fTE9OR1Mo bnJfc29ja2V0cykpOwogICAgIGNhdF9zb2NrZXRfaW5mbyA9IHh6YWxsb2NfYXJyYXkoc3RydWN0 IHBzcl9jYXRfc29ja2V0X2luZm8sIG5yX3NvY2tldHMpOwotICAgIGNkcF9zb2NrZXRfZW5hYmxl ID0geHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25nLCBCSVRTX1RPX0xPTkdTKG5yX3NvY2tldHMp KTsKIAotICAgIGlmICggIWNhdF9zb2NrZXRfZW5hYmxlIHx8ICFjYXRfc29ja2V0X2luZm8gKQot ICAgICAgICBwc3JfY2F0X2ZyZWUoKTsKKyAgICBpZiAoICFjYXRfc29ja2V0X2luZm8gKQorICAg ICAgICBwcmludGsoWEVOTE9HX0lORk8gIkZhaWwgdG8gYWxsb2Mgc29ja2V0X2luZm8hXG4iKTsK IH0KIAogc3RhdGljIGludCBwc3JfY3B1X3ByZXBhcmUodW5zaWduZWQgaW50IGNwdSkKLS0gCjIu Ny40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==