From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v8 16/24] x86: refactor psr: implement set value callback functions for CDP. Date: Wed, 15 Feb 2017 16:49:31 +0800 Message-ID: <1487148579-7243-17-git-send-email-yi.y.sun@linux.intel.com> References: <1487148579-7243-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 1cdvLF-0007dB-5J for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 08:53:37 +0000 In-Reply-To: <1487148579-7243-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 List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIEwzIENEUCBzZXQgdmFsdWUgcmVsYXRlZCBjYWxsYmFjayBm dW5jdGlvbnMuCgpXaXRoIHRoaXMgcGF0Y2gsICdwc3ItY2F0LWNibS1zZXQnIGNvbW1hbmQgY2Fu IHdvcmsgZm9yIEwzIENEUC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXgu aW50ZWwuY29tPgotLS0Kdjg6CiAgICAtIG1vZGlmeSAnbDNfY2RwX3dyaXRlX21zcicgdG8gJ3Zv aWQnLgotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDExOCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2 L3Bzci5jCmluZGV4IDcyZWQ5MjMuLjBhMGJhYjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9w c3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTU2MCwxMCArNTYwLDEyOCBAQCBzdGF0 aWMgYm9vbCBsM19jZHBfZ2V0X3ZhbChjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1bnNp Z25lZCBpbnQgY29zLAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50 IGwzX2NkcF9nZXRfY29zX251bShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQoreworICAg IHJldHVybiAyOworfQorCitzdGF0aWMgaW50IGwzX2NkcF9nZXRfb2xkX3ZhbCh1aW50NjRfdCB2 YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2xk X2NvcykKK3sKKyAgICBpZiAoIG9sZF9jb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNvc19t YXggKQorICAgICAgICAvKiBVc2UgZGVmYXVsdCB2YWx1ZS4gKi8KKyAgICAgICAgb2xkX2NvcyA9 IDA7CisKKyAgICAvKiBEYXRhICovCisgICAgdmFsWzBdID0gZ2V0X2NkcF9kYXRhKGZlYXQsIG9s ZF9jb3MpOworICAgIC8qIENvZGUgKi8KKyAgICB2YWxbMV0gPSBnZXRfY2RwX2NvZGUoZmVhdCwg b2xkX2Nvcyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsM19jZHBfc2V0X25l d192YWwodWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgbSkKK3sKKyAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZlYXQtPmluZm8ubDNfY2RwX2luZm8u Y2JtX2xlbiwgbSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggdHlwZSA9 PSBQU1JfQ0JNX1RZUEVfTDNfREFUQSApCisgICAgICAgIHZhbFswXSA9IG07CisgICAgZWxzZQor ICAgICAgICB2YWxbMV0gPSBtOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbDNf Y2RwX2NvbXBhcmVfdmFsKGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MsIGJvb2wgKmZvdW5kKQoreworICAgIHVp bnQ2NF90IGwzX2RlZl9jYm07CisKKyAgICBsM19kZWZfY2JtID0gKDF1bGwgPDwgZmVhdC0+aW5m by5sM19jZHBfaW5mby5jYm1fbGVuKSAtIDE7CisKKyAgICAvKgorICAgICAqIERpZmZlcmVudCBm ZWF0dXJlcycgY29zX21heCBhcmUgZGlmZmVyZW50LiBJZiBjb3MgaWQgb2YgdGhlIGZlYXR1cmUK KyAgICAgKiBiZWluZyBzZXQgZXhjZWVkcyBvdGhlciBmZWF0dXJlJ3MgY29zX21heCwgdGhlIHZh bCBvZiBvdGhlciBmZWF0dXJlCisgICAgICogbXVzdCBiZSBkZWZhdWx0IHZhbHVlLiBIVyBzdXBw b3J0cyBzdWNoIGNhc2UuCisgICAgICovCisgICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLmwzX2Nk cF9pbmZvLmNvc19tYXggKQorICAgIHsKKyAgICAgICAgaWYgKCB2YWxbMF0gIT0gbDNfZGVmX2Ni bSB8fAorICAgICAgICAgICAgIHZhbFsxXSAhPSBsM19kZWZfY2JtICkKKyAgICAgICAgeworICAg ICAgICAgICAgKmZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gLUVOT0VOVDsKKyAg ICAgICAgfQorICAgICAgICAqZm91bmQgPSB0cnVlOworICAgIH0KKyAgICBlbHNlCisgICAgICAg ICpmb3VuZCA9ICh2YWxbMF0gPT0gZ2V0X2NkcF9kYXRhKGZlYXQsIGNvcykgJiYKKyAgICAgICAg ICAgICAgICAgIHZhbFsxXSA9PSBnZXRfY2RwX2NvZGUoZmVhdCwgY29zKSk7CisKKyAgICByZXR1 cm4gMDsKK30KKworc3RhdGljIGJvb2wgbDNfY2RwX2ZpdHNfY29zX21heChjb25zdCB1aW50NjRf dCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZl YXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGNvcykKK3sKKyAgICB1aW50NjRfdCBsM19kZWZfY2JtOworCisgICAgbDNfZGVmX2NibSA9 ICgxdWxsIDw8IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY2JtX2xlbikgLSAxOworCisgICAgaWYg KCBjb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNvc19tYXggJiYKKyAgICAgICAgICh2YWxb MF0gIT0gbDNfZGVmX2NibSB8fCB2YWxbMV0gIT0gbDNfZGVmX2NibSkgKQorICAgICAgICAgICAg LyoKKyAgICAgICAgICAgICAqIEV4Y2VlZCBjb3NfbWF4IGFuZCB2YWx1ZSB0byBzZXQgaXMgbm90 IGRlZmF1bHQsCisgICAgICAgICAgICAgKiByZXR1cm4gZXJyb3IuCisgICAgICAgICAgICAgKi8K KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0 aWMgdm9pZCBsM19jZHBfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIGNvbnN0IHVpbnQ2NF90 IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0KQoreworICAgIC8qCisgICAgICogSWYgaW5wdXQgY29zIGlzIG1vcmUgdGhhbiB0aGUgY29z X21heCBvZiB0aGUgZmVhdHVyZSwgd2Ugc2hvdWxkCisgICAgICogbm90IHNldCB0aGUgdmFsdWUu CisgICAgICovCisgICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNvc19tYXgg KQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBEYXRhICovCisgICAgaWYgKCBnZXRfY2RwX2Rh dGEoZmVhdCwgY29zKSAhPSB2YWxbMF0gKQorICAgIHsKKyAgICAgICAgZ2V0X2NkcF9kYXRhKGZl YXQsIGNvcykgPSB2YWxbMF07CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTS19E QVRBKGNvcyksIHZhbFswXSk7CisgICAgfQorICAgIC8qIENvZGUgKi8KKyAgICBpZiAoIGdldF9j ZHBfY29kZShmZWF0LCBjb3MpICE9IHZhbFsxXSApCisgICAgeworICAgICAgICBnZXRfY2RwX2Nv ZGUoZmVhdCwgY29zKSA9IHZhbFsxXTsKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19N QVNLX0NPREUoY29zKSwgdmFsWzFdKTsKKyAgICB9CisKKyAgICByZXR1cm47Cit9CisKIHN0cnVj dCBmZWF0X29wcyBsM19jZHBfb3BzID0gewogICAgIC5nZXRfY29zX21heCA9IGwzX2NkcF9nZXRf Y29zX21heCwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NkcF9nZXRfZmVhdF9pbmZvLAogICAg IC5nZXRfdmFsID0gbDNfY2RwX2dldF92YWwsCisgICAgLmdldF9jb3NfbnVtID0gbDNfY2RwX2dl dF9jb3NfbnVtLAorICAgIC5nZXRfb2xkX3ZhbCA9IGwzX2NkcF9nZXRfb2xkX3ZhbCwKKyAgICAu c2V0X25ld192YWwgPSBsM19jZHBfc2V0X25ld192YWwsCisgICAgLmNvbXBhcmVfdmFsID0gbDNf Y2RwX2NvbXBhcmVfdmFsLAorICAgIC5maXRzX2Nvc19tYXggPSBsM19jZHBfZml0c19jb3NfbWF4 LAorICAgIC53cml0ZV9tc3IgPSBsM19jZHBfd3JpdGVfbXNyLAogfTsKIAogc3RhdGljIHZvaWQg X19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVlLCBjaGFyICpmZWF0dXJl LAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK