From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v6 04/16] x86: a few optimizations to psr codes Date: Sun, 8 Oct 2017 15:23:49 +0800 Message-ID: <1507447441-5422-5-git-send-email-yi.y.sun@linux.intel.com> References: <1507447441-5422-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e16Gu-0002fr-HB for xen-devel@lists.xenproject.org; Sun, 08 Oct 2017 07:45:12 +0000 In-Reply-To: <1507447441-5422-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 Liu , Yi Sun , Andrew Cooper , Jan Beulich , Chao Peng , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZWZpbmVzIHBzciBjb2RlczoKMS4gQ2hhbmdlIHR5cGUgb2YgJ2NhdF9pbml0 X2ZlYXR1cmUnIHRvICdib29sJyB0byByZW1vdmUgdGhlIHBvaW50bGVzcwogICByZXR1cm5pbmcg b2YgZXJyb3IgY29kZS4KMi4gTW92ZSBwcmludGsgaW4gJ2NhdF9pbml0X2ZlYXR1cmUnIHRvIHJl ZHVjZSBhIHJldHVybiBwYXRoLgozLiBEZWZpbmUgYSBsb2NhbCB2YXJpYWJsZSAnZmVhdF9tYXNr JyBpbiAncHNyX2NwdV9pbml0JyB0byByZWR1Y2UgY2FsbGluZyBvZgogICAnY3B1aWRfY291bnRf bGVhZigpJy4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29t PgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0t LQpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IENoYW8g UGVuZyA8Y2hhby5wLnBlbmdAbGludXguaW50ZWwuY29tPgoKdjY6CiAgICAtIHJlc3RvcmUgJ3dy aXRlX21zcigpJyB0eXBlIHRvICd2b2lkJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCBhbmQgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdlYngnIGluICdwc3JfY3B1X2lu aXQnIHRvICdmZWF0X21hc2snLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoIGFuZCBS b2dlciBQYXUgTW9ubsOpKQp2NToKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8gbWFrZSBjb2Rl cyBjbGVhcmVyLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoIGFuZCBSb2dlciBQYXUg TW9ubsOpKQotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDM1ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2 L3Bzci5jCmluZGV4IDI2M2RkYmUuLjU5NDVlZmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9w c3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTI3MywxMCArMjczLDEwIEBAIHN0YXRp YyBib29sIHBzcl9jaGVja19jYm0odW5zaWduZWQgaW50IGNibV9sZW4sIHVuc2lnbmVkIGxvbmcg Y2JtKQogfQogCiAvKiBDQVQgY29tbW9uIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlvbi4gKi8KLXN0 YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmluZm8sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIHR5cGUpCitzdGF0 aWMgYm9vbCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHBzcl9mZWF0X3R5cGUgdHlwZSkKIHsK ICAgICBjb25zdCBjaGFyICpjb25zdCBjYXRfZmVhdF9uYW1lW0ZFQVRfVFlQRV9OVU1dID0gewog ICAgICAgICBbRkVBVF9UWVBFX0wzX0NBVF0gPSAiTDMgQ0FUIiwKQEAgLTI4Niw3ICsyODYsNyBA QCBzdGF0aWMgaW50IGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qgc3RydWN0IGNwdWlkX2xlYWYgKnJl Z3MsCiAKICAgICAvKiBObyB2YWxpZCB2YWx1ZSBzbyBkbyBub3QgZW5hYmxlIGZlYXR1cmUuICov CiAgICAgaWYgKCAhcmVncy0+YSB8fCAhcmVncy0+ZCApCi0gICAgICAgIHJldHVybiAtRU5PRU5U OworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmZWF0LT5jYm1fbGVuID0gKHJlZ3MtPmEg JiBDQVRfQ0JNX0xFTl9NQVNLKSArIDE7CiAgICAgZmVhdC0+Y29zX21heCA9IG1pbihvcHRfY29z X21heCwgcmVncy0+ZCAmIENBVF9DT1NfTUFYX01BU0spOwpAQCAtMjk2LDcgKzI5Niw3IEBAIHN0 YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywK ICAgICBjYXNlIEZFQVRfVFlQRV9MM19DQVQ6CiAgICAgY2FzZSBGRUFUX1RZUEVfTDJfQ0FUOgog ICAgICAgICBpZiAoIGZlYXQtPmNvc19tYXggPCAxICkKLSAgICAgICAgICAgIHJldHVybiAtRU5P RU5UOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8qIFdlIHJlc2VydmUg Y29zPTAgYXMgZGVmYXVsdCBjYm0gKGFsbCBiaXRzIHdpdGhpbiBjYm1fbGVuIGFyZSAxKS4gKi8K ICAgICAgICAgZmVhdC0+Y29zX3JlZ192YWxbMF0gPSBjYXRfZGVmYXVsdF92YWwoZmVhdC0+Y2Jt X2xlbik7CkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNv bnN0IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAogICAgICAgICB1aW50NjRfdCB2YWw7CiAKICAg ICAgICAgaWYgKCBmZWF0LT5jb3NfbWF4IDwgMyApCi0gICAgICAgICAgICByZXR1cm4gLUVOT0VO VDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAvKiBDdXQgaGFsZiBvZiBj b3NfbWF4IHdoZW4gQ0RQIGlzIGVuYWJsZWQuICovCiAgICAgICAgIGZlYXQtPmNvc19tYXggPSAo ZmVhdC0+Y29zX21heCAtIDEpID4+IDE7CkBAIC0zMzIsMjAgKzMzMiwxOCBAQCBzdGF0aWMgaW50 IGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qgc3RydWN0IGNwdWlkX2xlYWYgKnJlZ3MsCiAgICAgfQog CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgIHJldHVybiBm YWxzZTsKICAgICB9CiAKICAgICAvKiBBZGQgdGhpcyBmZWF0dXJlIGludG8gYXJyYXkuICovCiAg ICAgaW5mby0+ZmVhdHVyZXNbdHlwZV0gPSBmZWF0OwogCi0gICAgaWYgKCAhb3B0X2NwdV9pbmZv ICkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBwcmludGsoWEVOTE9HX0lORk8gIiVzOiBlbmFi bGVkIG9uIHNvY2tldCAldSwgY29zX21heDoldSwgY2JtX2xlbjoldVxuIiwKLSAgICAgICAgICAg Y2F0X2ZlYXRfbmFtZVt0eXBlXSwgY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpLAot ICAgICAgICAgICBmZWF0LT5jb3NfbWF4LCBmZWF0LT5jYm1fbGVuKTsKKyAgICBpZiAoIG9wdF9j cHVfaW5mbyApCisgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXM6IGVuYWJsZWQgb24gc29j a2V0ICV1LCBjb3NfbWF4OiV1LCBjYm1fbGVuOiV1XG4iLAorICAgICAgICAgICAgICAgY2F0X2Zl YXRfbmFtZVt0eXBlXSwgY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpLAorICAgICAg ICAgICAgICAgZmVhdC0+Y29zX21heCwgZmVhdC0+Y2JtX2xlbik7CiAKLSAgICByZXR1cm4gMDsK KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8oY29u c3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKQEAgLTE0MTYsNiArMTQxNCw3IEBAIHN0YXRpYyB2 b2lkIHBzcl9jcHVfaW5pdCh2b2lkKQogICAgIHVuc2lnbmVkIGludCBzb2NrZXQsIGNwdSA9IHNt cF9wcm9jZXNzb3JfaWQoKTsKICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0OwogICAgIHN0cnVj dCBjcHVpZF9sZWFmIHJlZ3M7CisgICAgdWludDMyX3QgZmVhdF9tYXNrOwogCiAgICAgaWYgKCAh cHNyX2FsbG9jX2ZlYXRfZW5hYmxlZCgpIHx8ICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfUFFF KSApCiAgICAgICAgIGdvdG8gYXNzb2NfaW5pdDsKQEAgLTE0MzQsNyArMTQzMyw4IEBAIHN0YXRp YyB2b2lkIHBzcl9jcHVfaW5pdCh2b2lkKQogICAgIHNwaW5fbG9ja19pbml0KCZpbmZvLT5yZWZf bG9jayk7CiAKICAgICBjcHVpZF9jb3VudF9sZWFmKFBTUl9DUFVJRF9MRVZFTF9DQVQsIDAsICZy ZWdzKTsKLSAgICBpZiAoIHJlZ3MuYiAmIFBTUl9SRVNPVVJDRV9UWVBFX0wzICkKKyAgICBmZWF0 X21hc2sgPSByZWdzLmI7CisgICAgaWYgKCBmZWF0X21hc2sgJiBQU1JfUkVTT1VSQ0VfVFlQRV9M MyApCiAgICAgewogICAgICAgICBjcHVpZF9jb3VudF9sZWFmKFBTUl9DUFVJRF9MRVZFTF9DQVQs IDEsICZyZWdzKTsKIApAQCAtMTQ1NSw4ICsxNDU1LDcgQEAgc3RhdGljIHZvaWQgcHNyX2NwdV9p bml0KHZvaWQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjcHVpZF9jb3VudF9sZWFmKFBTUl9D UFVJRF9MRVZFTF9DQVQsIDAsICZyZWdzKTsKLSAgICBpZiAoIHJlZ3MuYiAmIFBTUl9SRVNPVVJD RV9UWVBFX0wyICkKKyAgICBpZiAoIGZlYXRfbWFzayAmIFBTUl9SRVNPVVJDRV9UWVBFX0wyICkK ICAgICB7CiAgICAgICAgIGNwdWlkX2NvdW50X2xlYWYoUFNSX0NQVUlEX0xFVkVMX0NBVCwgMiwg JnJlZ3MpOwogCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=