From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v6 16/24] x86: refactor psr: implement set value callback functions for CDP. Date: Wed, 8 Feb 2017 16:16:08 +0800 Message-ID: <1486541776-8406-17-git-send-email-yi.y.sun@linux.intel.com> References: <1486541776-8406-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 1cbNTe-0006CJ-Mr for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 08:19:46 +0000 In-Reply-To: <1486541776-8406-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 aW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDExOCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEx OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2Fy Y2gveDg2L3Bzci5jCmluZGV4IGRmODNhYTEuLjNjZmE3N2QgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTU1NywxMCArNTU3LDEyOCBA QCBzdGF0aWMgYm9vbCBsM19jZHBfZ2V0X3ZhbChjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0 LCB1bnNpZ25lZCBpbnQgY29zLAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdW5zaWdu ZWQgaW50IGwzX2NkcF9nZXRfY29zX251bShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQor eworICAgIHJldHVybiAyOworfQorCitzdGF0aWMgaW50IGwzX2NkcF9nZXRfb2xkX3ZhbCh1aW50 NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgb2xkX2NvcykKK3sKKyAgICBpZiAoIG9sZF9jb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZv LmNvc19tYXggKQorICAgICAgICAvKiBVc2UgZGVmYXVsdCB2YWx1ZS4gKi8KKyAgICAgICAgb2xk X2NvcyA9IDA7CisKKyAgICAvKiBEYXRhICovCisgICAgdmFsWzBdID0gZ2V0X2NkcF9kYXRhKGZl YXQsIG9sZF9jb3MpOworICAgIC8qIENvZGUgKi8KKyAgICB2YWxbMV0gPSBnZXRfY2RwX2NvZGUo ZmVhdCwgb2xkX2Nvcyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsM19jZHBf c2V0X25ld192YWwodWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3QgbSkKK3sKKyAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZlYXQtPmluZm8ubDNfY2Rw X2luZm8uY2JtX2xlbiwgbSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICgg dHlwZSA9PSBQU1JfQ0JNX1RZUEVfTDNfREFUQSApCisgICAgICAgIHZhbFswXSA9IG07CisgICAg ZWxzZQorICAgICAgICB2YWxbMV0gPSBtOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgbDNfY2RwX2NvbXBhcmVfdmFsKGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MsIGJvb2wgKmZvdW5kKQorewor ICAgIHVpbnQ2NF90IGwzX2RlZl9jYm07CisKKyAgICBsM19kZWZfY2JtID0gKDF1bGwgPDwgZmVh dC0+aW5mby5sM19jZHBfaW5mby5jYm1fbGVuKSAtIDE7CisKKyAgICAvKgorICAgICAqIERpZmZl cmVudCBmZWF0dXJlcycgY29zX21heCBhcmUgZGlmZmVyZW50LiBJZiBjb3MgaWQgb2YgdGhlIGZl YXR1cmUKKyAgICAgKiBiZWluZyBzZXQgZXhjZWVkcyBvdGhlciBmZWF0dXJlJ3MgY29zX21heCwg dGhlIHZhbCBvZiBvdGhlciBmZWF0dXJlCisgICAgICogbXVzdCBiZSBkZWZhdWx0IHZhbHVlLiBI VyBzdXBwb3J0cyBzdWNoIGNhc2UuCisgICAgICovCisgICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZv LmwzX2NkcF9pbmZvLmNvc19tYXggKQorICAgIHsKKyAgICAgICAgaWYgKCB2YWxbMF0gIT0gbDNf ZGVmX2NibSB8fAorICAgICAgICAgICAgIHZhbFsxXSAhPSBsM19kZWZfY2JtICkKKyAgICAgICAg eworICAgICAgICAgICAgKmZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gLUVOT0VO VDsKKyAgICAgICAgfQorICAgICAgICAqZm91bmQgPSB0cnVlOworICAgIH0KKyAgICBlbHNlCisg ICAgICAgICpmb3VuZCA9ICh2YWxbMF0gPT0gZ2V0X2NkcF9kYXRhKGZlYXQsIGNvcykgJiYKKyAg ICAgICAgICAgICAgICAgIHZhbFsxXSA9PSBnZXRfY2RwX2NvZGUoZmVhdCwgY29zKSk7CisKKyAg ICByZXR1cm4gMDsKK30KKworc3RhdGljIGJvb2wgbDNfY2RwX2ZpdHNfY29zX21heChjb25zdCB1 aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IGNvcykKK3sKKyAgICB1aW50NjRfdCBsM19kZWZfY2JtOworCisgICAgbDNfZGVm X2NibSA9ICgxdWxsIDw8IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY2JtX2xlbikgLSAxOworCisg ICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNvc19tYXggJiYKKyAgICAgICAg ICh2YWxbMF0gIT0gbDNfZGVmX2NibSB8fCB2YWxbMV0gIT0gbDNfZGVmX2NibSkgKQorICAgICAg ICAgICAgLyoKKyAgICAgICAgICAgICAqIEV4Y2VlZCBjb3NfbWF4IGFuZCB2YWx1ZSB0byBzZXQg aXMgbm90IGRlZmF1bHQsCisgICAgICAgICAgICAgKiByZXR1cm4gZXJyb3IuCisgICAgICAgICAg ICAgKi8KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQor CitzdGF0aWMgaW50IGwzX2NkcF93cml0ZV9tc3IodW5zaWduZWQgaW50IGNvcywgY29uc3QgdWlu dDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZlYXRfbm9k ZSAqZmVhdCkKK3sKKyAgICAvKgorICAgICAqIElmIGlucHV0IGNvcyBpcyBtb3JlIHRoYW4gdGhl IGNvc19tYXggb2YgdGhlIGZlYXR1cmUsIHdlIHNob3VsZAorICAgICAqIG5vdCBzZXQgdGhlIHZh bHVlLgorICAgICAqLworICAgIGlmICggY29zID4gZmVhdC0+aW5mby5sM19jZHBfaW5mby5jb3Nf bWF4ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAvKiBEYXRhICovCisgICAgaWYg KCBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSAhPSB2YWxbMF0gKQorICAgIHsKKyAgICAgICAgZ2V0 X2NkcF9kYXRhKGZlYXQsIGNvcykgPSB2YWxbMF07CisgICAgICAgIHdybXNybChNU1JfSUEzMl9Q U1JfTDNfTUFTS19EQVRBKGNvcyksIHZhbFswXSk7CisgICAgfQorICAgIC8qIENvZGUgKi8KKyAg ICBpZiAoIGdldF9jZHBfY29kZShmZWF0LCBjb3MpICE9IHZhbFsxXSApCisgICAgeworICAgICAg ICBnZXRfY2RwX2NvZGUoZmVhdCwgY29zKSA9IHZhbFsxXTsKKyAgICAgICAgd3Jtc3JsKE1TUl9J QTMyX1BTUl9MM19NQVNLX0NPREUoY29zKSwgdmFsWzFdKTsKKyAgICB9CisKKyAgICByZXR1cm4g MDsKK30KKwogc3RydWN0IGZlYXRfb3BzIGwzX2NkcF9vcHMgPSB7CiAgICAgLmdldF9jb3NfbWF4 ID0gbDNfY2RwX2dldF9jb3NfbWF4LAogICAgIC5nZXRfZmVhdF9pbmZvID0gbDNfY2RwX2dldF9m ZWF0X2luZm8sCiAgICAgLmdldF92YWwgPSBsM19jZHBfZ2V0X3ZhbCwKKyAgICAuZ2V0X2Nvc19u dW0gPSBsM19jZHBfZ2V0X2Nvc19udW0sCisgICAgLmdldF9vbGRfdmFsID0gbDNfY2RwX2dldF9v bGRfdmFsLAorICAgIC5zZXRfbmV3X3ZhbCA9IGwzX2NkcF9zZXRfbmV3X3ZhbCwKKyAgICAuY29t cGFyZV92YWwgPSBsM19jZHBfY29tcGFyZV92YWwsCisgICAgLmZpdHNfY29zX21heCA9IGwzX2Nk cF9maXRzX2Nvc19tYXgsCisgICAgLndyaXRlX21zciA9IGwzX2NkcF93cml0ZV9tc3IsCiB9Owog CiBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfcHNyX2Jvb2woY2hhciAqcywgY2hhciAqdmFsdWUs IGNoYXIgKmZlYXR1cmUsCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=