From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [RFC 09/16] x86: implement set value flow for MBA. Date: Tue, 10 Jan 2017 15:42:28 +0800 Message-ID: <1484034155-4521-10-git-send-email-yi.y.sun@linux.intel.com> References: <1484034155-4521-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 1cQr5w-00042u-Ma for xen-devel@lists.xenproject.org; Tue, 10 Jan 2017 07:43:48 +0000 In-Reply-To: <1484034155-4521-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.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHNldCB2YWx1ZSBmbG93IGZvciBNQkEgaW5jbHVkaW5nIGl0 cyBjYWxsYmFjawpmdW5jdGlvbiBhbmQgZG9tY3RsIGludGVyZmFjZS4KClNpZ25lZC1vZmYtYnk6 IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9kb21j dGwuYyAgICAgICAgICAgfCAgIDYgKysKIHhlbi9hcmNoL3g4Ni9wc3IuYyAgICAgICAgICAgICAg fCAxNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaCB8ICAgMSArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3Rs LmggICAgIHwgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDExIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNo L3g4Ni9kb21jdGwuYwppbmRleCA2MTQ1Y2Y0Li5hN2NmNjkwIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0xMzkzLDYgKzEz OTMsMTIgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBTUl9WQUxfVFlQRV9MMik7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNl IFhFTl9ET01DVExfUFNSX01CQV9PUF9TRVRfVEhSVEw6CisgICAgICAgICAgICByZXQgPSBwc3Jf c2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2FsbG9jX29wLnRhcmdldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfYWxsb2Nfb3AuZGF0YSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBTUl9WQUxfVFlQRV9NQkEpOworICAgICAgICAgICAgYnJlYWs7 CisKICAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NCTToKICAgICAg ICAgICAgIHJldCA9IHBzcl9nZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfYWxsb2Nfb3AudGFyZ2V0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS5wc3JfYWxsb2Nfb3Au ZGF0YSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3Iu YwppbmRleCBmZDk1YTZkLi45NjVlZDE3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMK KysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC0zMzIsNiArMzMyLDE0IEBAIHN0YXRpYyBib29s X3QgcHNyX2NoZWNrX2NibSh1bnNpZ25lZCBpbnQgY2JtX2xlbiwgdWludDY0X3QgY2JtKQogICAg IHJldHVybiAxOwogfQogCitzdGF0aWMgYm9vbF90IHBzcl9jaGVja190aHJ0bCh1bnNpZ25lZCBp bnQgdGhydGxfbWF4LCB1aW50NjRfdCB0aHJ0bCkKK3sKKyAgICBpZiAoIHRocnRsID4gdGhydGxf bWF4ICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gMTsKK30KKwogLyogTDMgQ0FU IGNhbGxiYWNrIGZ1bmN0aW9ucyBpbXBsZW1lbnRhdGlvbi4gKi8KIHN0YXRpYyB2b2lkIGwzX2Nh dF9pbml0X2ZlYXR1cmUodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVieCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGVjeCwgdW5zaWduZWQgaW50 IGVkeCwKQEAgLTEwMTIsMTEgKzEwMjAsMTIxIEBAIHN0YXRpYyBib29sIG1iYV9nZXRfdmFsKGNv bnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVuc2lnbmVkIGludCBjb3MsCiAgICAgcmV0dXJu IHRydWU7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbWJhX2dldF9jb3NfbnVtKGNvbnN0IHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgLyogTUJBIHVzZXMgb25lIENPUy4gKi8KKyAg ICByZXR1cm4gMTsKK30KKworc3RhdGljIGludCBtYmFfZ2V0X29sZF92YWwodWludDY0X3QgdmFs W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MpCit7 CisgICAgaWYgKCBvbGRfY29zID4gZmVhdC0+aW5mby5tYmFfaW5mby5jb3NfbWF4ICkKKyAgICAg ICAgLyogVXNlIGRlZmF1bHQgdmFsdWUuICovCisgICAgICAgIG9sZF9jb3MgPSAwOworCisgICAg dmFsWzBdID0gZmVhdC0+Y29zX3JlZ192YWxbb2xkX2Nvc107CisKKyAgICAvKiBNQkEgdXNlcyBv bmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IG1iYV9zZXRfbmV3X3Zh bCh1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBmZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgb2xkX2NvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcHNyX3ZhbF90eXBl IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBtKQoreworICAgIGlm ICggdHlwZSAhPSBQU1JfVkFMX1RZUEVfTUJBICkKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBp ZiAoICFwc3JfY2hlY2tfdGhydGwoZmVhdC0+aW5mby5tYmFfaW5mby50aHJ0bF9tYXgsIG0pICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICB2YWxbMF0gPSBtOworCisgICAgLyogTUJB IHVzZXMgb25lIENPUy4gKi8KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGlu dCBtYmFfZ2V0X2Nvc19tYXhfZnJvbV90eXBlKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3Jf dmFsX3R5cGUgdHlwZSkKK3sKKyAgICBpZiAoIHR5cGUgIT0gUFNSX1ZBTF9UWVBFX01CQSApCisg ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGZlYXQtPmluZm8ubWJhX2luZm8uY29zX21h eDsKK30KKworc3RhdGljIGludCBtYmFfY29tcGFyZV92YWwoY29uc3QgdWludDY0X3QgdmFsW10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvcywgYm9vbCAqZm91 bmQpCit7CisgICAgdWludDY0X3QgbWJhX2RlZiA9IDA7CisKKyAgICBpZiAoIGNvcyA+IGZlYXQt PmluZm8ubWJhX2luZm8uY29zX21heCApCisgICAgeworICAgICAgICBpZiAoIHZhbFswXSAhPSBt YmFfZGVmICkKKyAgICAgICAgeworICAgICAgICAgICAgKmZvdW5kID0gZmFsc2U7CisgICAgICAg ICAgICByZXR1cm4gLUVOT0VOVDsKKyAgICAgICAgfQorICAgICAgICAqZm91bmQgPSB0cnVlOwor ICAgIH0KKyAgICBlbHNlCisgICAgICAgICpmb3VuZCA9ICh2YWxbMF0gPT0gZmVhdC0+Y29zX3Jl Z192YWxbY29zXSk7CisKKyAgICAvKiBNQkEgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAx OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IG1iYV9leGNlZWRzX2Nvc19tYXgoY29uc3QgdWlu dDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zKQoreworICAgIHVpbnQ2NF90IG1iYV9kZWYgPSAw OworCisgICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLm1iYV9pbmZvLmNvc19tYXggJiYKKyAgICAg ICAgIHZhbFswXSAhPSBtYmFfZGVmICkKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBF eGNlZWQgY29zX21heCBhbmQgdmFsdWUgdG8gc2V0IGlzIG5vdCBkZWZhdWx0LAorICAgICAgICAg ICAgICogcmV0dXJuIGVycm9yLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICByZXR1cm4g MDsKKworICAgIC8qIE1CQSB1c2VzIG9uZSBDT1MuICovCisgICAgcmV0dXJuIDE7Cit9CisKK3N0 YXRpYyBpbnQgbWJhX3dyaXRlX21zcih1bnNpZ25lZCBpbnQgY29zLCBjb25zdCB1aW50NjRfdCB2 YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQor eworICAgIGlmICggY29zID4gZmVhdC0+aW5mby5tYmFfaW5mby5jb3NfbWF4ICkKKyAgICAgICAg cmV0dXJuIDE7CisKKyAgICBpZiAoIGZlYXQtPmNvc19yZWdfdmFsW2Nvc10gIT0gdmFsWzBdICkK KyAgICB7CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTUJBX01BU0soY29zKSwgdmFsWzBd KTsKKyAgICAgICAgZmVhdC0+Y29zX3JlZ192YWxbY29zXSA9IHZhbFswXTsKKyAgICB9CisKKyAg ICAvKiBNQkEgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCiBzdHJ1Y3QgZmVh dF9vcHMgbWJhX29wcyA9IHsKICAgICAuaW5pdF9mZWF0dXJlID0gbWJhX2luaXRfZmVhdHVyZSwK ICAgICAuZ2V0X21heF9jb3NfbWF4ID0gbWJhX2dldF9tYXhfY29zX21heCwKICAgICAuZ2V0X2Zl YXRfaW5mbyA9IG1iYV9nZXRfZmVhdF9pbmZvLAogICAgIC5nZXRfdmFsID0gbWJhX2dldF92YWws CisgICAgLmdldF9jb3NfbnVtID0gbWJhX2dldF9jb3NfbnVtLAorICAgIC5nZXRfb2xkX3ZhbCA9 IG1iYV9nZXRfb2xkX3ZhbCwKKyAgICAuc2V0X25ld192YWwgPSBtYmFfc2V0X25ld192YWwsCisg ICAgLmdldF9jb3NfbWF4X2Zyb21fdHlwZSA9IG1iYV9nZXRfY29zX21heF9mcm9tX3R5cGUsCisg ICAgLmNvbXBhcmVfdmFsID0gbWJhX2NvbXBhcmVfdmFsLAorICAgIC5leGNlZWRzX2Nvc19tYXgg PSBtYmFfZXhjZWVkc19jb3NfbWF4LAorICAgIC53cml0ZV9tc3IgPSBtYmFfd3JpdGVfbXNyLAog fTsKIAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZh bHVlLCBjaGFyICpmZWF0dXJlLApAQCAtMTUxOSwyMCArMTYzNywxMCBAQCBzdGF0aWMgaW50IHdy aXRlX3Bzcl9tc3IodW5zaWduZWQgaW50IHNvY2tldCwgdW5zaWduZWQgaW50IGNvcywKICAgICBy ZXR1cm4gMDsKIH0KIAotaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBzb2NrZXQsCi0gICAgICAgICAgICAgICAgdWludDY0X3QgdmFsLCBlbnVtIHBzcl92YWxf dHlwZSB0eXBlKQorc3RhdGljIHVpbnQzMl90IHBzcl92YWxfdHlwZV90b19mZWF0X2ZsYWcoZW51 bSBwc3JfdmFsX3R5cGUgdHlwZSkKIHsKLSAgICB1bnNpZ25lZCBpbnQgb2xkX2NvczsKLSAgICBp bnQgY29zLCByZXQ7Ci0gICAgdW5zaWduZWQgaW50ICpyZWY7Ci0gICAgdWludDY0X3QgKnZhbF9h cnJheTsKLSAgICBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvID0gZ2V0X3NvY2tldF9pbmZv KHNvY2tldCk7Ci0gICAgdWludDMyX3QgYXJyYXlfbGVuOwogICAgIHVpbnQzMl90IGZsYWc7CiAK LSAgICBpZiAoIElTX0VSUihpbmZvKSApCi0gICAgICAgIHJldHVybiBQVFJfRVJSKGluZm8pOwot CiAgICAgLyogSnVkZ2UgaWYgZmVhdHVyZSBpcyBlbmFibGVkLiAqLwogICAgIHN3aXRjaCAoIHR5 cGUgKSB7CiAgICAgY2FzZSBQU1JfVkFMX1RZUEVfTDM6CkBAIC0xNTQ1LDEwICsxNjUzLDMyIEBA IGludCBwc3Jfc2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc29ja2V0LAog ICAgIGNhc2UgUFNSX1ZBTF9UWVBFX0wyOgogICAgICAgICBmbGFnID0gUFNSX1NPQ0tFVF9MMl9D QVQ7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFNSX1ZBTF9UWVBFX01CQToKKyAgICAgICAg ZmxhZyA9IFBTUl9TT0NLRVRfTUJBOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg ICAgICBmbGFnID0gMHhGRkZGOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICByZXR1cm4g ZmxhZzsKK30KKworaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBzb2NrZXQsCisgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsLCBlbnVtIHBzcl92YWxfdHlw ZSB0eXBlKQoreworICAgIHVuc2lnbmVkIGludCBvbGRfY29zOworICAgIGludCBjb3MsIHJldDsK KyAgICB1bnNpZ25lZCBpbnQgKnJlZjsKKyAgICB1aW50NjRfdCAqdmFsX2FycmF5OworICAgIHN0 cnVjdCBwc3Jfc29ja2V0X2luZm8gKmluZm8gPSBnZXRfc29ja2V0X2luZm8oc29ja2V0KTsKKyAg ICB1aW50MzJfdCBhcnJheV9sZW47CisgICAgdWludDMyX3QgZmxhZzsKKworICAgIGlmICggSVNf RVJSKGluZm8pICkKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5mbyk7CisKKyAgICBmbGFnID0g cHNyX3ZhbF90eXBlX3RvX2ZlYXRfZmxhZyh0eXBlKTsKICAgICBpZiAoICF0ZXN0X2JpdChmbGFn LCAmaW5mby0+ZmVhdF9tYXNrKSApCiAgICAgICAgIHJldHVybiAtRU5PREVWOwogCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9tc3ItaW5kZXguaAppbmRleCBhNDFlNjNhLi4yZTk3YzZjIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L21zci1pbmRleC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLWlu ZGV4LmgKQEAgLTM0NCw2ICszNDQsNyBAQAogI2RlZmluZSBNU1JfSUEzMl9QU1JfTDNfTUFTS19D T0RFKG4pCSgweDAwMDAwYzkwICsgKG4pICogMiArIDEpCiAjZGVmaW5lIE1TUl9JQTMyX1BTUl9M M19NQVNLX0RBVEEobikJKDB4MDAwMDBjOTAgKyAobikgKiAyKQogI2RlZmluZSBNU1JfSUEzMl9Q U1JfTDJfTUFTSyhuKQkJKDB4MDAwMDBkMTAgKyAobikpCisjZGVmaW5lIE1TUl9JQTMyX1BTUl9N QkFfTUFTSyhuKQkoMHgwMDAwMGQ1MCArIChuKSkKIAogLyogSW50ZWwgTW9kZWwgNiAqLwogI2Rl ZmluZSBNU1JfUDZfUEVSRkNUUihuKQkJKDB4MDAwMDAwYzEgKyAobikpCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgK aW5kZXggMmRlNzIxNC4uMTE2MDliYyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2Rv bWN0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMTE0MCw2ICsxMTQw LDcgQEAgc3RydWN0IHhlbl9kb21jdGxfcHNyX2FsbG9jX29wIHsKICNkZWZpbmUgWEVOX0RPTUNU TF9QU1JfQ0FUX09QX0dFVF9MM19EQVRBICAgIDUKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FU X09QX1NFVF9MMl9DQk0gICAgIDYKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9M Ml9DQk0gICAgIDcKKyNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfTUJBX09QX1NFVF9USFJUTCAgICAg IDgKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfTUJBX09QX0dFVF9USFJUTCAgICAgIDkKICAgICB1 aW50MzJfdCBjbWQ7ICAgICAgIC8qIElOOiBYRU5fRE9NQ1RMX1BTUl8qX09QXyogKi8KICAgICB1 aW50MzJfdCB0YXJnZXQ7ICAgIC8qIElOICovCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=