From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 07/15] x86: refactor psr: Implement feature operations structure. Date: Tue, 25 Oct 2016 11:40:55 +0800 Message-ID: <1477366863-5246-8-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 1byrYt-0004MO-V7 for xen-devel@lists.xenproject.org; Tue, 25 Oct 2016 02:34:00 +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 VG8gaGFuZGxlIGFsbCBmZWF0dXJlcyBpbiBhIHVuaXZlcnNhbCB3YXksIHdlIG5lZWQgYWJzdHJh Y3QgdGhlCmNvbW1vbiBvcGVyYXRpb25zIG9mIGFsbCBmZWF0dXJlcyBhbmQgcmVnaXN0ZXIgZGlm ZmVyZW50IGNhbGxiYWNrCmZ1bmN0aW9ucyBmb3IgZGlmZmVybmV0IGZlYXR1cmVzLiBUaGUgZmVh dHVyZSBzcGVjaWZpYyBiZWhhdmlvcnMKc2hvdWxkIGJlIGVuY2Fwc3VsYXRlZCBpbnRvIHRoZXNl IGNhbGxiYWNrIGZ1bmN0aW9ucy4KClRoaXMgcGF0Y2ggZGVmaW5lcyAnc3RydWN0IGZlYXRfb3Bz JyB0byBtYWludGFpbiBmZWF0dXJlcycgY2FsbGJhY2sKZnVuY3Rpb25zLiBBbHNvIGltcGxlbWVu dCB0aGUgTDMgQ0FUL0NEUCBpbml0IGNhbGxiYWNrIGZ1bmN0aW9uIHRvCnNob3cgaG93IHRoaXMg bWVjaGFuaXNtIHdvcmsuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnkuc3VuQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgfCAxMjMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4NCBp bnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv cHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggMzhhNjRmMC4uNzUwMjc4YyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtMzIs NiArMzIsMjEgQEAgZW51bSBwc3JfZmVhdF90eXBlIHsKICAgICBQU1JfU09DS0VUX0wzX0NEUCwK IH07CiAKK3N0cnVjdCBmZWF0X25vZGU7CitzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbzsKKwor LyogRXZlcnkgZmVhdHVyZSBlbmFibGVkIE1VU1QgaW1wbGVtZW50IHN1Y2ggb3BzIGFuZCBjYWxs YmFjayBmdW5jdGlvbnMuICovCitzdHJ1Y3QgZmVhdF9vcHMgeworICAgIC8qCisgICAgICogaW5p dF9mZWF0dXJlIGlzIHVzZWQgaW4gY3B1IGluaXRpYWxpemF0aW9uIHByb2Nlc3MgdG8gZG8gZmVh dHVyZQorICAgICAqIHNwZWNpZmljIGluaXRpYWxpemF0aW9uIHdvcmtzLgorICAgICAqLworICAg IHZvaWQgKCppbml0X2ZlYXR1cmUpKHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlYngs CisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGVjeCwgdW5zaWduZWQgaW50 IGVkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAor ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvICppbmZv KTsKK307CisKIC8qIENBVC9DRFAgSFcgaW5mbyBkYXRhIHN0cnVjdHVyZS4gKi8KIHN0cnVjdCBw c3JfY2F0X2h3X2luZm8gewogICAgIHVuc2lnbmVkIGludCBjYm1fbGVuOwpAQCAtNDEsNiArNTYs OCBAQCBzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIHsKIHN0cnVjdCBmZWF0X25vZGUgewogICAgIC8q IFdoaWNoIGZlYXR1cmUgaXQgaXMuICovCiAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXR1cmU7 CisgICAgLyogRmVhdHVyZSBvcGVyYXRpb24gY2FsbGJhY2sgZnVuY3Rpb25zLiAqLworICAgIHN0 cnVjdCBmZWF0X29wcyBvcHM7CiAgICAgLyogRmVhdHVyZSBIVyBpbmZvLiAqLwogICAgIHN0cnVj dCBwc3JfY2F0X2h3X2luZm8gaW5mbzsKICAgICAvKgpAQCAtMTMzLDYgKzE1MCw2OSBAQCBzdGF0 aWMgdm9pZCBmcmVlX2ZlYXR1cmUoc3RydWN0IHBzcl9jYXRfc29ja2V0X2luZm8gKmluZm8pCiAg ICAgfQogfQogCisvKiBMMyBDQVQvQ0RQIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlv bi4gKi8KK3N0YXRpYyB2b2lkIGwzX2NhdF9pbml0X2ZlYXR1cmUodW5zaWduZWQgaW50IGVheCwg dW5zaWduZWQgaW50IGVieCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IGVjeCwgdW5zaWduZWQgaW50IGVkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHBzcl9jYXRfc29ja2V0X2luZm8gKmluZm8pCit7CisgICAgc3RydWN0IHBz cl9jYXRfaHdfaW5mbyBsM19jYXQ7CisgICAgdW5zaWduZWQgaW50IHNvY2tldDsKKyAgICB1aW50 NjRfdCB2YWw7CisKKyAgICAvKiBObyB2YWxpZCB2YWx1ZSBzbyBkbyBub3QgZW5hYmxlIGZlYXR1 cmUuICovCisgICAgaWYgKCAhZWF4IHx8ICFlZHggKQorICAgICAgICByZXR1cm47CisKKyAgICBs M19jYXQuY2JtX2xlbiA9IChlYXggJiAweDFmKSArIDE7CisgICAgbDNfY2F0LmNvc19tYXggPSBt aW4ob3B0X2Nvc19tYXgsIGVkeCAmIDB4ZmZmZik7CisKKyAgICAvKiBjb3M9MCBpcyByZXNlcnZl ZCBhcyBkZWZhdWx0IGNibShhbGwgb25lcykuICovCisgICAgZmVhdC0+Y29zX3JlZ192YWxbMF0g PSAoMXVsbCA8PCBsM19jYXQuY2JtX2xlbikgLSAxOworCisgICAgaWYgKCAoZWN4ICYgUFNSX0NB VF9DRFBfQ0FQQUJJTElUWSkgJiYgKG9wdF9wc3IgJiBQU1JfQ0RQKSAmJgorICAgICAgICAgIXRl c3RfYml0KFBTUl9TT0NLRVRfTDNfQ0RQLCAmaW5mby0+ZmVhdF9tYXNrKSApCisgICAgeworICAg ICAgICAvKiBDT0RFICovCisgICAgICAgIGdldF9jZHBfY29kZShmZWF0LCAwKSA9CisgICAgICAg ICAgICAgICAgICAgICAoMXVsbCA8PCBsM19jYXQuY2JtX2xlbikgLSAxOworICAgICAgICAvKiBE QVRBICovCisgICAgICAgIGdldF9jZHBfZGF0YShmZWF0LCAwKSA9CisgICAgICAgICAgICAgICAg ICAgICAoMXVsbCA8PCBsM19jYXQuY2JtX2xlbikgLSAxOworCisgICAgICAgIC8qIFdlIG9ubHkg d3JpdGUgbWFzazEgc2luY2UgbWFzazAgaXMgYWx3YXlzIGFsbCBvbmVzIGJ5IGRlZmF1bHQuICov CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSygxKSwKKyAgICAgICAgICAgICAg ICgxdWxsIDw8IGwzX2NhdC5jYm1fbGVuKSAtIDEpOworICAgICAgICByZG1zcmwoTVNSX0lBMzJf UFNSX0wzX1FPU19DRkcsIHZhbCk7CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfUU9T X0NGRywgdmFsIHwgKDEgPDwgUFNSX0wzX1FPU19DRFBfRU5BQkxFX0JJVCkpOworCisgICAgICAg IC8qIEN1dCBoYWxmIG9mIGNvc19tYXggd2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8KKyAgICAgICAg bDNfY2F0LmNvc19tYXggPj49IDE7CisKKyAgICAgICAgZmVhdC0+ZmVhdHVyZSA9IFBTUl9TT0NL RVRfTDNfQ0RQOworICAgICAgICBfX3NldF9iaXQoUFNSX1NPQ0tFVF9MM19DRFAsICZpbmZvLT5m ZWF0X21hc2spOworICAgIH0gZWxzZSB7CisgICAgICAgIGZlYXQtPmZlYXR1cmUgPSBQU1JfU09D S0VUX0wzX0NBVDsKKyAgICAgICAgX19zZXRfYml0KFBTUl9TT0NLRVRfTDNfQ0FULCAmaW5mby0+ ZmVhdF9tYXNrKTsKKyAgICB9CisKKyAgICBmZWF0LT5pbmZvID0gbDNfY2F0OworCisgICAgaW5m by0+bnJfZmVhdCsrOworCisgICAgLyogQWRkIHRoaXMgZmVhdHVyZSBpbnRvIGxpc3QuICovCisg ICAgbGlzdF9hZGRfdGFpbCgmZmVhdC0+bGlzdCwgJmluZm8tPmZlYXRfbGlzdCk7CisKKyAgICBz b2NrZXQgPSBjcHVfdG9fc29ja2V0KHNtcF9wcm9jZXNzb3JfaWQoKSk7CisgICAgcHJpbnRrKFhF TkxPR19JTkZPICJMMyBDQVQ6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBjb3NfbWF4OiV1LCBjYm1f bGVuOiV1LCBDRFA6JXNcbiIsCisgICAgICAgICAgIHNvY2tldCwgZmVhdC0+aW5mby5jb3NfbWF4 LCBmZWF0LT5pbmZvLmNibV9sZW4sCisgICAgICAgICAgIHRlc3RfYml0KFBTUl9TT0NLRVRfTDNf Q0RQLCAmaW5mby0+ZmVhdF9tYXNrKSA/ICJvbiIgOiAib2ZmIik7Cit9CisKK3N0cnVjdCBmZWF0 X29wcyBsM19jYXRfb3BzID0geworICAgIC5pbml0X2ZlYXR1cmUgPSBsM19jYXRfaW5pdF9mZWF0 dXJlLAorfTsKKwogc3RhdGljIHVuc2lnbmVkIGludCBnZXRfc29ja2V0X2NwdSh1bnNpZ25lZCBp bnQgc29ja2V0KQogewogICAgIGlmICggbGlrZWx5KHNvY2tldCA8IG5yX3NvY2tldHMpICkKQEAg LTY4Myw3ICs3NjMsNiBAQCBzdGF0aWMgdm9pZCBjYXRfY3B1X2luaXQodm9pZCkKICAgICBzdHJ1 Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbyAqaW5mbzsKICAgICB1bnNpZ25lZCBpbnQgc29ja2V0Owog ICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0gICAgdWludDY0X3Qg dmFsOwogICAgIGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9IGNwdV9kYXRhICsgY3B1Owog ICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXRfdG1wOwogCkBAIC02OTUsNiArNzc0LDggQEAgc3Rh dGljIHZvaWQgY2F0X2NwdV9pbml0KHZvaWQpCiAgICAgaWYgKCBpbmZvLT5mZWF0X21hc2sgKQog ICAgICAgICByZXR1cm47CiAKKyAgICBzcGluX2xvY2tfaW5pdCgmaW5mby0+cmVmX2xvY2spOwor CiAgICAgY3B1aWRfY291bnQoUFNSX0NQVUlEX0xFVkVMX0NBVCwgMCwgJmVheCwgJmVieCwgJmVj eCwgJmVkeCk7CiAgICAgaWYgKCBlYnggJiBQU1JfUkVTT1VSQ0VfVFlQRV9MMyApCiAgICAgewpA QCAtNzAyLDQ0ICs3ODMsOCBAQCBzdGF0aWMgdm9pZCBjYXRfY3B1X2luaXQodm9pZCkKICAgICAg ICAgZmVhdF9sMyA9IE5VTEw7CiAKICAgICAgICAgY3B1aWRfY291bnQoUFNSX0NQVUlEX0xFVkVM X0NBVCwgMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7Ci0gICAgICAgIGZlYXRfdG1wLT5pbmZv LmNibV9sZW4gPSAoZWF4ICYgMHgxZikgKyAxOwotICAgICAgICBmZWF0X3RtcC0+aW5mby5jb3Nf bWF4ID0gbWluKG9wdF9jb3NfbWF4LCBlZHggJiAweGZmZmYpOwotCi0gICAgICAgIC8qIGNvcz0w IGlzIHJlc2VydmVkIGFzIGRlZmF1bHQgY2JtKGFsbCBvbmVzKS4gKi8KLSAgICAgICAgZmVhdF90 bXAtPmNvc19yZWdfdmFsWzBdID0gKDF1bGwgPDwgZmVhdF90bXAtPmluZm8uY2JtX2xlbikgLSAx OwotCi0gICAgICAgIHNwaW5fbG9ja19pbml0KCZpbmZvLT5yZWZfbG9jayk7Ci0KLSAgICAgICAg aWYgKCAoZWN4ICYgUFNSX0NBVF9DRFBfQ0FQQUJJTElUWSkgJiYgKG9wdF9wc3IgJiBQU1JfQ0RQ KSAmJgotICAgICAgICAgICAgICF0ZXN0X2JpdChQU1JfU09DS0VUX0wzX0NEUCwgJmluZm8tPmZl YXRfbWFzaykgKQotICAgICAgICB7Ci0gICAgICAgICAgICAvKiBDT0RFICovCi0gICAgICAgICAg ICBnZXRfY2RwX2NvZGUoZmVhdF90bXAsIDApID0gKDF1bGwgPDwgZmVhdF90bXAtPmluZm8uY2Jt X2xlbikgLSAxOwotICAgICAgICAgICAgLyogREFUQSAqLwotICAgICAgICAgICAgZ2V0X2NkcF9k YXRhKGZlYXRfdG1wLCAwKSA9ICgxdWxsIDw8IGZlYXRfdG1wLT5pbmZvLmNibV9sZW4pIC0gMTsK LQotICAgICAgICAgICAgLyogV2Ugb25seSB3cml0ZSBtYXNrMSBzaW5jZSBtYXNrMCBpcyBhbHdh eXMgYWxsIG9uZXMgYnkgZGVmYXVsdC4gKi8KLSAgICAgICAgICAgIHdybXNybChNU1JfSUEzMl9Q U1JfTDNfTUFTSygxKSwgKDF1bGwgPDwgZmVhdF90bXAtPmluZm8uY2JtX2xlbikgLSAxKTsKLQot ICAgICAgICAgICAgcmRtc3JsKE1TUl9JQTMyX1BTUl9MM19RT1NfQ0ZHLCB2YWwpOwotICAgICAg ICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19RT1NfQ0ZHLCB2YWwgfCAoMSA8PCBQU1JfTDNf UU9TX0NEUF9FTkFCTEVfQklUKSk7Ci0KLSAgICAgICAgICAgIC8qIEN1dCBoYWxmIG9mIGNvc19t YXggd2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8KLSAgICAgICAgICAgIGZlYXRfdG1wLT5pbmZvLmNv c19tYXggPj49IDE7Ci0KLSAgICAgICAgICAgIF9fc2V0X2JpdChQU1JfU09DS0VUX0wzX0NEUCwg JmluZm8tPmZlYXRfbWFzayk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmZWF0X3Rt cC0+ZmVhdHVyZSA9IFBTUl9TT0NLRVRfTDNfQ0FUOwotICAgICAgICAgICAgX19zZXRfYml0KFBT Ul9TT0NLRVRfTDNfQ0FULCAmaW5mby0+ZmVhdF9tYXNrKTsKLSAgICAgICAgfQotCi0gICAgICAg IGluZm8tPm5yX2ZlYXQrKzsKLSAgICAgICAgLyogQWRkIHRoaXMgZmVhdHVyZSBpbnRvIGxpc3Qu ICovCi0gICAgICAgIGxpc3RfYWRkX3RhaWwoJmZlYXRfdG1wLT5saXN0LCAmaW5mby0+ZmVhdF9s aXN0KTsKLQotICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIkNBVDogZW5hYmxlZCBvbiBzb2Nr ZXQgJXUsIGNvc19tYXg6JXUsIGNibV9sZW46JXUsIENEUDolc1xuIiwKLSAgICAgICAgICAgICAg IHNvY2tldCwgZmVhdF90bXAtPmluZm8uY29zX21heCwgZmVhdF90bXAtPmluZm8uY2JtX2xlbiwK LSAgICAgICAgICAgICAgIGNkcF9pc19lbmFibGVkKHNvY2tldCkgPyAib24iIDogIm9mZiIpOwor ICAgICAgICBmZWF0X3RtcC0+b3BzID0gbDNfY2F0X29wczsKKyAgICAgICAgZmVhdF90bXAtPm9w cy5pbml0X2ZlYXR1cmUoZWF4LCBlYngsIGVjeCwgZWR4LCBmZWF0X3RtcCwgaW5mbyk7CiAgICAg fQogfQogCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=