From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 14/25] x86: refactor psr: CDP: implement CPU init and free flow. Date: Sat, 1 Apr 2017 21:53:45 +0800 Message-ID: <1491054836-30488-15-git-send-email-yi.y.sun@linux.intel.com> References: <1491054836-30488-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 1cuJTs-0005vS-G4 for xen-devel@lists.xenproject.org; Sat, 01 Apr 2017 13:54:16 +0000 In-Reply-To: <1491054836-30488-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: kevin.tian@intel.com, 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, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBDUFUgaW5pdCBhbmQgZnJlZSBmbG93IGZvciBDRFAg aW5jbHVkaW5nIEwzIENEUAppbml0aWFsaXphdGlvbiBjYWxsYmFjayBmdW5jdGlvbi4gVGhlIGZs b3cgaXMgYWxtb3N0IHNhbWUgYXMgTDMgQ0FULgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55 LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQp2MTA6CiAgICAtIGZpeCBjb21tZW50LgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSB1c2Ugc3dpdGggaW4gJ2NhdF9pbml0X2Zl YXR1cmUnIHRvIGhhbmRsZSBkaWZmZXJlbnQgZmVhdHVyZSB0eXBlcy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkKICAgIC0gY2hhbmdlcyBhYm91dCAncHJvcHMnLgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZXN0b3JlIE1TUnMgdG8gZGVmYXVsdCB2YWx1 ZSB3aGVuIGNwdSBvbmxpbmUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IHJlbW92ZSBmZWF0X21hc2suCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5Ogog ICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gZGVzY3JpYmUgZmxvdyBjbGVhcmVyLgogICAg LSBoYW5kbGUgY3B1IG9mZmxpbmUgYW5kIG9ubGluZSBhZ2FpbiBjYXNlIHRvIHJlYWQgTVNScyBy ZWdpc3RlcnMgdmFsdWVzCiAgICAgIGJhY2sgYW5kIHNhdmUgdGhlbSBpbnRvIGNvcyBhcnJheSB0 byBtYWtlIHVzZXIgY2FuIGdldCByZWFsIGRhdGEuCiAgICAtIG1vZGlmeSBlcnJvciBoYW5kbGlu ZyBwcm9jZXNzIGluICdwc3JfY3B1X3ByZXBhcmUnIHRvIHJlZHVjZSByZWR1bmRhbnQKICAgICAg Y29kZXMuCiAgICAtIG1vZGlmeSAnZ2V0X2NkcF9kYXRhJyBhbmQgJ2dldF9jZHBfY29kZScgdG8g bWFrZSB0aGVtIHN0YW5kYXJkLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBhbmQgSmFu IEJldWxpY2gpCiAgICAtIGVuY2Fwc3VsYXRlIENEUCBvcGVyYXRpb25zIGludG8gJ2NhdF9pbml0 X2ZlYXR1cmUnIHRvIHJlZHVjZSByZWR1bmRhbnQKICAgICAgY29kZXMuCiAgICAgIChzdWdnZXN0 ZWQgYnkgUm9nZXIgUGF1KQogICAgLSByZXVzZSAnY2F0X2dldF9jb3NfbWF4JyBmb3IgQ0RQLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSkKICAgIC0gaGFuZGxlICdQU1JfQ0RQJyBpbiBw c3JfcHJlc21wX2luaXQgdG8gbWFrZSBpbml0IHdvcmsgY2FuIGJlIGRvbmUgd2hlbgogICAgICB0 aGVyZSBpcyBvbmx5ICdwc3I9Y2RwJyBpbiBjbWRsaW5lLgogICAgLSByZW1vdmUgdW5uZWNlc3Nh cnkgY29tbWVudC4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gbW92ZSBD RFAgcmVsYXRlZCBjb2RlcyBpbiAnY3B1X2luaXRfd29yaycgaW50byAncHNyX2NwdV9pbml0Jy4K ICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gYWRkIGNvZGVzIHRvIGhhbmRs ZSBDRFAncyAnY29zX251bScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IGZpeCBjb2Rpbmcgc3R5bGUgaXNzdWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CiAgICAtIGRvIG5vdCBmcmVlIHJlc291cmNlcyB3aGVuIGFsbG9jYXRpb24gZmFpbHMgaW4gJ3Bz cl9jcHVfcHJlcGFyZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNo YW5nZXMgYWJvdXQgJ3VpbnQ2NF90JyB0byAndWludDMyX3QnLgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQp2NzoKICAgIC0gaW5pdGlhbGl6ZSAnbDNfY2RwJy4KICAgICAgKHN1Z2dl c3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspCnY2OgogICAgLSB1c2UgJ2NwdWlkX2xlYWYn LgogICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsayBhbmQgSmFuIEJldWxp Y2gpCnY1OgogICAgLSByZW1vdmUgY29kZXMgdG8gZnJlZSAnZmVhdF9sM19jZHAnIGluICdmcmVl X2ZlYXR1cmUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBlbmNhcHN1 bGF0ZSBjcHVpZCByZWdpc3RlcnMgaW50byAnc3RydWN0IGNwdWlkX2xlYWZfcmVncycuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHByaW50IHNvY2tldCBpbmZvIHdoZW4g J29wdF9jcHVfaW5mbycgaXMgdHJ1ZS4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gcmVuYW1lICdsM19jZHBfZ2V0X21heF9jb3NfbWF4JyB0byAnbDNfY2RwX2dldF9jb3Nf bWF4Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gcmVuYW1lICdkYXRb XScgdG8gJ2RhdGFbXScuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIG1v dmUgJ2NwdV9wcmVwYXJlX3dvcmsnIGNvbnRlbnRzIGludG8gJ3Bzcl9jcHVfcHJlcGFyZScuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAgLSBjcmVhdGUgdGhpcyBwYXRj aCB0byBtYWtlIGNvZGVzIGVhc2llciB0byB1bmRlcnN0YW5kLgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDg0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDBmNTc2NzYuLjU4OTcwZmEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAg LTE0NCwxMSArMTQ0LDI4IEBAIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgcHNyX2Fzc29j LCBwc3JfYXNzb2MpOwogICogYXJyYXkgY3JlYXRpb24uIEl0IGlzIHVzZWQgdG8gdHJhbnNpZW50 bHkgc3RvcmUgYSBzcGFyZSBub2RlLgogICovCiBzdGF0aWMgc3RydWN0IGZlYXRfbm9kZSAqZmVh dF9sM19jYXQ7CitzdGF0aWMgc3RydWN0IGZlYXRfbm9kZSAqZmVhdF9sM19jZHA7CiAKIC8qIENv bW1vbiBmdW5jdGlvbnMgKi8KICNkZWZpbmUgY2F0X2RlZmF1bHRfdmFsKGxlbikgKDB4ZmZmZmZm ZmYgPj4gKDMyIC0gKGxlbikpKQogCiAvKgorICogZ2V0X2NkcF9kYXRhIC0gZ2V0IERBVEEgQ09T IHJlZ2lzdGVyIHZhbHVlIGZyb20gaW5wdXQgQ09TIElELgorICogQGZlYXQ6ICAgICAgICB0aGUg ZmVhdHVyZSBub2RlLgorICogQGNvczogICAgICAgICB0aGUgQ09TIElELgorICovCisjZGVmaW5l IGdldF9jZHBfZGF0YShmZWF0LCBjb3MpICAgICAgICAgICAgICBcCisgICAgICAgICAgICAoIChm ZWF0KS0+Y29zX3JlZ192YWxbKGNvcykgKiAyXSApCisKKy8qCisgKiBnZXRfY2RwX2NvZGUgLSBn ZXQgQ09ERSBDT1MgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpbnB1dCBDT1MgSUQuCisgKiBAZmVhdDog ICAgICAgIHRoZSBmZWF0dXJlIG5vZGUuCisgKiBAY29zOiAgICAgICAgIHRoZSBDT1MgSUQuCisg Ki8KKyNkZWZpbmUgZ2V0X2NkcF9jb2RlKGZlYXQsIGNvcykgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgICggKGZlYXQpLT5jb3NfcmVnX3ZhbFsoY29zKSAqIDIgKyAxXSApCisKKy8qCiAgKiBV c2UgdGhpcyBmdW5jdGlvbiB0byBjaGVjayBpZiBhbnkgYWxsb2NhdGlvbiBmZWF0dXJlIGhhcyBi ZWVuIGVuYWJsZWQKICAqIGluIGNtZGxpbmUuCiAgKi8KQEAgLTI4Myw2ICszMDAsMzcgQEAgc3Rh dGljIHZvaWQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVncywK IAogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgUFNSX1NPQ0tFVF9MM19DRFA6CisgICAgewor ICAgICAgICB1bnNpZ25lZCBsb25nIHZhbDsKKworICAgICAgICAvKiBDdXQgaGFsZiBvZiBjb3Nf bWF4IHdoZW4gQ0RQIGlzIGVuYWJsZWQuICovCisgICAgICAgIGZlYXQtPnByb3BzLT5jb3NfbWF4 ID4+PSAxOworCisgICAgICAgIC8qIFdlIG9ubHkgd3JpdGUgbWFzazEgc2luY2UgbWFzazAgaXMg YWx3YXlzIGFsbCBvbmVzIGJ5IGRlZmF1bHQuICovCisgICAgICAgIHdybXNybChNU1JfSUEzMl9Q U1JfTDNfTUFTSygxKSwgY2F0X2RlZmF1bHRfdmFsKGZlYXQtPnByb3BzLT5jYm1fbGVuKSk7Cisg ICAgICAgIHJkbXNybChNU1JfSUEzMl9QU1JfTDNfUU9TX0NGRywgdmFsKTsKKyAgICAgICAgd3Jt c3JsKE1TUl9JQTMyX1BTUl9MM19RT1NfQ0ZHLCB2YWwgfCAoMSA8PCBQU1JfTDNfUU9TX0NEUF9F TkFCTEVfQklUKSk7CisKKyAgICAgICAgLyogY29zPTAgaXMgcmVzZXJ2ZWQgYXMgZGVmYXVsdCBj Ym0oYWxsIGJpdHMgd2l0aGluIGNibV9sZW4gYXJlIDEpLiAqLworICAgICAgICBnZXRfY2RwX2Nv ZGUoZmVhdCwgMCkgPSBjYXRfZGVmYXVsdF92YWwoZmVhdC0+cHJvcHMtPmNibV9sZW4pOworICAg ICAgICBnZXRfY2RwX2RhdGEoZmVhdCwgMCkgPSBjYXRfZGVmYXVsdF92YWwoZmVhdC0+cHJvcHMt PmNibV9sZW4pOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIGhhbmRsZSBjcHUgb2ZmbGlu ZSBhbmQgdGhlbiBvbmxpbmUgY2FzZSwgd2UgbmVlZCByZXN0b3JlIE1TUnMgdG8KKyAgICAgICAg ICogZGVmYXVsdCB2YWx1ZXMuCisgICAgICAgICAqLworICAgICAgICBmb3IgKCBpID0gMTsgaSA8 PSBmZWF0LT5wcm9wcy0+Y29zX21heDsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgd3Jt c3JsKE1TUl9JQTMyX1BTUl9MM19NQVNLX0RBVEEoaSksIGdldF9jZHBfZGF0YShmZWF0LCAwKSk7 CisgICAgICAgICAgICB3cm1zcmwoTVNSX0lBMzJfUFNSX0wzX01BU0tfQ09ERShpKSwgZ2V0X2Nk cF9jb2RlKGZlYXQsIDApKTsKKyAgICAgICAgICAgIGdldF9jZHBfY29kZShmZWF0LCBpKSA9IGdl dF9jZHBfY29kZShmZWF0LCAwKTsKKyAgICAgICAgICAgIGdldF9jZHBfZGF0YShmZWF0LCBpKSA9 IGdldF9jZHBfZGF0YShmZWF0LCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGJyZWFrOworICAg IH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTQsOCArMzQy LDkgQEAgc3RhdGljIHZvaWQgY2F0X2luaXRfZmVhdHVyZShjb25zdCBzdHJ1Y3QgY3B1aWRfbGVh ZiAqcmVncywKICAgICBpZiAoICFvcHRfY3B1X2luZm8gKQogICAgICAgICByZXR1cm47CiAKLSAg ICBwcmludGsoWEVOTE9HX0lORk8gIiVzIENBVDogZW5hYmxlZCBvbiBzb2NrZXQgJXUsIGNvc19t YXg6JXUsIGNibV9sZW46JXVcbiIsCi0gICAgICAgICAgICgodHlwZSA9PSBQU1JfU09DS0VUX0wz X0NBVCkgPyAiTDMiIDogIkwyIiksCisgICAgcHJpbnRrKFhFTkxPR19JTkZPICIlczogZW5hYmxl ZCBvbiBzb2NrZXQgJXUsIGNvc19tYXg6JXUsIGNibV9sZW46JXVcbiIsCisgICAgICAgICAgICgo dHlwZSA9PSBQU1JfU09DS0VUX0wzX0NEUCkgPyAiQ0RQIiA6CisgICAgICAgICAgICAoKHR5cGUg PT0gUFNSX1NPQ0tFVF9MM19DQVQpID8gIkwzIENBVCI6ICJMMiBDQVQiKSksCiAgICAgICAgICAg IHNvY2tldCwgZmVhdC0+cHJvcHMtPmNvc19tYXgsIGZlYXQtPnByb3BzLT5jYm1fbGVuKTsKIH0K IApAQCAtMzM2LDYgKzM4NSwxMSBAQCBzdGF0aWMgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2F0X3By b3BzID0gewogICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAogfTsKIAorLyogTDMg Q0RQIG9wcyAqLworc3RhdGljIHN0cnVjdCBmZWF0X3Byb3BzIGwzX2NkcF9wcm9wcyA9IHsKKyAg ICAuY29zX251bSA9IDIsCit9OworCiBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfcHNyX2Jvb2wo Y2hhciAqcywgY2hhciAqdmFsdWUsIGNoYXIgKmZlYXR1cmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1hc2spCiB7CkBAIC0xMTYxLDYgKzEyMTUsMTAg QEAgc3RhdGljIGludCBwc3JfY3B1X3ByZXBhcmUodm9pZCkKICAgICAgICAgIChmZWF0X2wzX2Nh dCA9IHh6YWxsb2Moc3RydWN0IGZlYXRfbm9kZSkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4g LUVOT01FTTsKIAorICAgIGlmICggZmVhdF9sM19jZHAgPT0gTlVMTCAmJgorICAgICAgICAgKGZl YXRfbDNfY2RwID0geHphbGxvYyhzdHJ1Y3QgZmVhdF9ub2RlKSkgPT0gTlVMTCApCisgICAgICAg IHJldHVybiAtRU5PTUVNOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTExOTMsMTEgKzEyNTEs MjEgQEAgc3RhdGljIHZvaWQgcHNyX2NwdV9pbml0KHZvaWQpCiAgICAgewogICAgICAgICBjcHVp ZF9jb3VudF9sZWFmKFBTUl9DUFVJRF9MRVZFTF9DQVQsIDEsICZyZWdzKTsKIAotICAgICAgICBm ZWF0ID0gZmVhdF9sM19jYXQ7Ci0gICAgICAgIGZlYXRfbDNfY2F0ID0gTlVMTDsKLSAgICAgICAg ZmVhdC0+cHJvcHMgPSAmbDNfY2F0X3Byb3BzOwotCi0gICAgICAgIGNhdF9pbml0X2ZlYXR1cmUo JnJlZ3MsIGZlYXQsIGluZm8sIFBTUl9TT0NLRVRfTDNfQ0FUKTsKKyAgICAgICAgaWYgKCAocmVn cy5jICYgUFNSX0NBVF9DRFBfQ0FQQUJJTElUWSkgJiYgKG9wdF9wc3IgJiBQU1JfQ0RQKSAmJgor ICAgICAgICAgICAgICFpbmZvLT5mZWF0dXJlc1tQU1JfU09DS0VUX0wzX0NEUF0gKQorICAgICAg ICB7CisgICAgICAgICAgICBmZWF0ID0gZmVhdF9sM19jZHA7CisgICAgICAgICAgICBmZWF0X2wz X2NkcCA9IE5VTEw7CisgICAgICAgICAgICBmZWF0LT5wcm9wcyA9ICZsM19jZHBfcHJvcHM7Cisg ICAgICAgICAgICBjYXRfaW5pdF9mZWF0dXJlKCZyZWdzLCBmZWF0LCBpbmZvLCBQU1JfU09DS0VU X0wzX0NEUCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAg ICBmZWF0ID0gZmVhdF9sM19jYXQ7CisgICAgICAgICAgICBmZWF0X2wzX2NhdCA9IE5VTEw7Cisg ICAgICAgICAgICBmZWF0LT5wcm9wcyA9ICZsM19jYXRfcHJvcHM7CisgICAgICAgICAgICBjYXRf aW5pdF9mZWF0dXJlKCZyZWdzLCBmZWF0LCBpbmZvLCBQU1JfU09DS0VUX0wzX0NBVCk7CisgICAg ICAgIH0KICAgICB9CiAKICBhc3NvY19pbml0OgpAQCAtMTI1Nyw3ICsxMzI1LDcgQEAgc3RhdGlj IGludCBfX2luaXQgcHNyX3ByZXNtcF9pbml0KHZvaWQpCiAgICAgaWYgKCAob3B0X3BzciAmIFBT Ul9DTVQpICYmIG9wdF9ybWlkX21heCApCiAgICAgICAgIGluaXRfcHNyX2NtdChvcHRfcm1pZF9t YXgpOwogCi0gICAgaWYgKCBvcHRfcHNyICYgUFNSX0NBVCApCisgICAgaWYgKCBvcHRfcHNyICYg KFBTUl9DQVQgfCBQU1JfQ0RQKSApCiAgICAgICAgIGluaXRfcHNyKCk7CiAKICAgICBpZiAoIHBz cl9jcHVfcHJlcGFyZSgpICkKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==