From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v5 04/16] x86: a few optimizations to psr codes Date: Sat, 30 Sep 2017 09:39:14 +0800 Message-ID: <1506735566-5706-5-git-send-email-yi.y.sun@linux.intel.com> References: <1506735566-5706-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 1dy73m-0004Oy-Kk for xen-devel@lists.xenproject.org; Sat, 30 Sep 2017 01:59:18 +0000 In-Reply-To: <1506735566-5706-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 ZHVjZSBhIHJldHVybiBwYXRoLgozLiBEZWZpbmUgYSBsb2NhbCB2YXJpYWJsZSAnZWJ4JyBpbiAn cHNyX2NwdV9pbml0JyB0byByZWR1Y2UgY2FsbGluZyBvZgogICAnY3B1aWRfY291bnRfbGVhZigp Jy4KNC4gQ2hhbmdlIHR5cGUgb2YgJ3dyaXRlX21zcigpJyB0byAndWludDMyX3QnLiBUaGlzIGlz IG5lZWRlZCBieSBsYXRlciBwYXRjaDoKICAgIng4NjogaW1wbGVtZW50IHNldCB2YWx1ZSBmbG93 IGZvciBNQkEiLgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5j b20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6 IENoYW8gUGVuZyA8Y2hhby5wLnBlbmdAbGludXguaW50ZWwuY29tPgoKdjE6CiAgICAtIGNyZWF0 ZSB0aGlzIHBhdGNoIHRvIG1ha2UgY29kZXMgY2xlYXJlci4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCBhbmQgUm9nZXIgUGF1IE1vbm7DqSkKLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMg fCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXgg YWMyYWUzMi4uYzhkYjBjMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hl bi9hcmNoL3g4Ni9wc3IuYwpAQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZmVhdF9wcm9wcyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGFbXSwg dW5zaWduZWQgaW50IGFycmF5X2xlbik7CiAKICAgICAvKiB3cml0ZV9tc3IgaXMgdXNlZCB0byB3 cml0ZSBvdXQgZmVhdHVyZSBNU1IgcmVnaXN0ZXIuICovCi0gICAgdm9pZCAoKndyaXRlX21zciko dW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLCBlbnVtIHBzcl90eXBlIHR5cGUpOworICAg IHVpbnQzMl90ICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVu dW0gcHNyX3R5cGUgdHlwZSk7CiB9ICpmZWF0X3Byb3BzW0ZFQVRfVFlQRV9OVU1dOwogCiAvKgpA QCAtMjczLDEwICsyNzMsMTAgQEAgc3RhdGljIGJvb2wgcHNyX2NoZWNrX2NibSh1bnNpZ25lZCBp bnQgY2JtX2xlbiwgdW5zaWduZWQgbG9uZyBjYm0pCiB9CiAKIC8qIENBVCBjb21tb24gZnVuY3Rp b25zIGltcGxlbWVudGF0aW9uLiAqLwotc3RhdGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0 IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHBzcl9zb2NrZXRfaW5mbyAqaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt IHBzcl9mZWF0X3R5cGUgdHlwZSkKK3N0YXRpYyBib29sIGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qg c3RydWN0IGNwdWlkX2xlYWYgKnJlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBwc3Jfc29ja2V0X2luZm8gKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu dW0gcHNyX2ZlYXRfdHlwZSB0eXBlKQogewogICAgIGNvbnN0IGNoYXIgKmNvbnN0IGNhdF9mZWF0 X25hbWVbRkVBVF9UWVBFX05VTV0gPSB7CiAgICAgICAgIFtGRUFUX1RZUEVfTDNfQ0FUXSA9ICJM MyBDQVQiLApAQCAtMjg2LDcgKzI4Niw3IEBAIHN0YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShj b25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywKIAogICAgIC8qIE5vIHZhbGlkIHZhbHVlIHNv IGRvIG5vdCBlbmFibGUgZmVhdHVyZS4gKi8KICAgICBpZiAoICFyZWdzLT5hIHx8ICFyZWdzLT5k ICkKLSAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg IGZlYXQtPmNibV9sZW4gPSAocmVncy0+YSAmIENBVF9DQk1fTEVOX01BU0spICsgMTsKICAgICBm ZWF0LT5jb3NfbWF4ID0gbWluKG9wdF9jb3NfbWF4LCByZWdzLT5kICYgQ0FUX0NPU19NQVhfTUFT Syk7CkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIGludCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0 IHN0cnVjdCBjcHVpZF9sZWFmICpyZWdzLAogICAgIGNhc2UgRkVBVF9UWVBFX0wzX0NBVDoKICAg ICBjYXNlIEZFQVRfVFlQRV9MMl9DQVQ6CiAgICAgICAgIGlmICggZmVhdC0+Y29zX21heCA8IDEg KQotICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CiAKICAgICAgICAgLyogV2UgcmVzZXJ2ZSBjb3M9MCBhcyBkZWZhdWx0IGNibSAoYWxsIGJpdHMg d2l0aGluIGNibV9sZW4gYXJlIDEpLiAqLwogICAgICAgICBmZWF0LT5jb3NfcmVnX3ZhbFswXSA9 IGNhdF9kZWZhdWx0X3ZhbChmZWF0LT5jYm1fbGVuKTsKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0 aWMgaW50IGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qgc3RydWN0IGNwdWlkX2xlYWYgKnJlZ3MsCiAg ICAgICAgIHVpbnQ2NF90IHZhbDsKIAogICAgICAgICBpZiAoIGZlYXQtPmNvc19tYXggPCAzICkK LSAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog CiAgICAgICAgIC8qIEN1dCBoYWxmIG9mIGNvc19tYXggd2hlbiBDRFAgaXMgZW5hYmxlZC4gKi8K ICAgICAgICAgZmVhdC0+Y29zX21heCA9IChmZWF0LT5jb3NfbWF4IC0gMSkgPj4gMTsKQEAgLTMz MiwyMCArMzMyLDE4IEBAIHN0YXRpYyBpbnQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3Qg Y3B1aWRfbGVhZiAqcmVncywKICAgICB9CiAKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4g LUVOT0VOVDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIC8qIEFkZCB0aGlz IGZlYXR1cmUgaW50byBhcnJheS4gKi8KICAgICBpbmZvLT5mZWF0dXJlc1t0eXBlXSA9IGZlYXQ7 CiAKLSAgICBpZiAoICFvcHRfY3B1X2luZm8gKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHBy aW50ayhYRU5MT0dfSU5GTyAiJXM6IGVuYWJsZWQgb24gc29ja2V0ICV1LCBjb3NfbWF4OiV1LCBj Ym1fbGVuOiV1XG4iLAotICAgICAgICAgICBjYXRfZmVhdF9uYW1lW3R5cGVdLCBjcHVfdG9fc29j a2V0KHNtcF9wcm9jZXNzb3JfaWQoKSksCi0gICAgICAgICAgIGZlYXQtPmNvc19tYXgsIGZlYXQt PmNibV9sZW4pOworICAgIGlmICggb3B0X2NwdV9pbmZvICkKKyAgICAgICAgcHJpbnRrKFhFTkxP R19JTkZPICIlczogZW5hYmxlZCBvbiBzb2NrZXQgJXUsIGNvc19tYXg6JXUsIGNibV9sZW46JXVc biIsCisgICAgICAgICAgICAgICBjYXRfZmVhdF9uYW1lW3R5cGVdLCBjcHVfdG9fc29ja2V0KHNt cF9wcm9jZXNzb3JfaWQoKSksCisgICAgICAgICAgICAgICBmZWF0LT5jb3NfbWF4LCBmZWF0LT5j Ym1fbGVuKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMg Ym9vbCBjYXRfZ2V0X2ZlYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LApAQCAt MzYyLDEwICszNjAsMTIgQEAgc3RhdGljIGJvb2wgY2F0X2dldF9mZWF0X2luZm8oY29uc3Qgc3Ry dWN0IGZlYXRfbm9kZSAqZmVhdCwKIH0KIAogLyogTDMgQ0FUIHByb3BzICovCi1zdGF0aWMgdm9p ZCBsM19jYXRfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfdHlwZSB0eXBlKQorc3RhdGljIHVpbnQz Ml90IGwzX2NhdF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfdHlwZSB0eXBlKQogewogICAg IHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSyhjb3MpLCB2YWwpOworCisgICAgcmV0dXJuIHZh bDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIGwzX2NhdF9wcm9wcyA9IHsK QEAgLTM4OCwxMyArMzg4LDE1IEBAIHN0YXRpYyBib29sIGwzX2NkcF9nZXRfZmVhdF9pbmZvKGNv bnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp YyB2b2lkIGwzX2NkcF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHBzcl90eXBlIHR5cGUpCitzdGF0aWMg dWludDMyX3QgbDNfY2RwX3dyaXRlX21zcih1bnNpZ25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWws CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHBzcl90eXBlIHR5cGUpCiB7 CiAgICAgd3Jtc3JsKCgodHlwZSA9PSBQU1JfVFlQRV9MM19EQVRBKSA/CiAgICAgICAgICAgICBN U1JfSUEzMl9QU1JfTDNfTUFTS19EQVRBKGNvcykgOgogICAgICAgICAgICAgTVNSX0lBMzJfUFNS X0wzX01BU0tfQ09ERShjb3MpKSwKICAgICAgICAgICAgdmFsKTsKKworICAgIHJldHVybiB2YWw7 CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyBsM19jZHBfcHJvcHMgPSB7CkBA IC00MDcsMTAgKzQwOSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2Rw X3Byb3BzID0gewogfTsKIAogLyogTDIgQ0FUIHByb3BzICovCi1zdGF0aWMgdm9pZCBsMl9jYXRf d3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBwc3JfdHlwZSB0eXBlKQorc3RhdGljIHVpbnQzMl90IGwyX2Nh dF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgdWludDMyX3QgdmFsLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfdHlwZSB0eXBlKQogewogICAgIHdybXNybChN U1JfSUEzMl9QU1JfTDJfTUFTSyhjb3MpLCB2YWwpOworCisgICAgcmV0dXJuIHZhbDsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIGwyX2NhdF9wcm9wcyA9IHsKQEAgLTE0MTAs NiArMTQxNCw3IEBAIHN0YXRpYyB2b2lkIHBzcl9jcHVfaW5pdCh2b2lkKQogICAgIHVuc2lnbmVk IGludCBzb2NrZXQsIGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBzdHJ1Y3QgZmVhdF9u b2RlICpmZWF0OwogICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlZ3M7CisgICAgdWludDMyX3QgZWJ4 OwogCiAgICAgaWYgKCAhcHNyX2FsbG9jX2ZlYXRfZW5hYmxlZCgpIHx8ICFib290X2NwdV9oYXMo WDg2X0ZFQVRVUkVfUFFFKSApCiAgICAgICAgIGdvdG8gYXNzb2NfaW5pdDsKQEAgLTE0MjgsNyAr MTQzMyw4IEBAIHN0YXRpYyB2b2lkIHBzcl9jcHVfaW5pdCh2b2lkKQogICAgIHNwaW5fbG9ja19p bml0KCZpbmZvLT5yZWZfbG9jayk7CiAKICAgICBjcHVpZF9jb3VudF9sZWFmKFBTUl9DUFVJRF9M RVZFTF9DQVQsIDAsICZyZWdzKTsKLSAgICBpZiAoIHJlZ3MuYiAmIFBTUl9SRVNPVVJDRV9UWVBF X0wzICkKKyAgICBlYnggPSByZWdzLmI7CisgICAgaWYgKCBlYnggJiBQU1JfUkVTT1VSQ0VfVFlQ RV9MMyApCiAgICAgewogICAgICAgICBjcHVpZF9jb3VudF9sZWFmKFBTUl9DUFVJRF9MRVZFTF9D QVQsIDEsICZyZWdzKTsKIApAQCAtMTQ0OSw4ICsxNDU1LDcgQEAgc3RhdGljIHZvaWQgcHNyX2Nw dV9pbml0KHZvaWQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjcHVpZF9jb3VudF9sZWFmKFBT Ul9DUFVJRF9MRVZFTF9DQVQsIDAsICZyZWdzKTsKLSAgICBpZiAoIHJlZ3MuYiAmIFBTUl9SRVNP VVJDRV9UWVBFX0wyICkKKyAgICBpZiAoIGVieCAmIFBTUl9SRVNPVVJDRV9UWVBFX0wyICkKICAg ICB7CiAgICAgICAgIGNwdWlkX2NvdW50X2xlYWYoUFNSX0NQVUlEX0xFVkVMX0NBVCwgMiwgJnJl Z3MpOwogCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=