From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 20/24] x86: L2 CAT: implement set value flow. Date: Wed, 14 Dec 2016 12:08:00 +0800 Message-ID: <1481688484-5093-21-git-send-email-yi.y.sun@linux.intel.com> References: <1481688484-5093-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 1cH7SH-00068t-PO for xen-devel@lists.xenproject.org; Wed, 14 Dec 2016 11:10:37 +0000 In-Reply-To: <1481688484-5093-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, 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 VGhpcyBwYXRjaCBpbXBsZW1lbnRzIEwyIENBVCBzZXQgdmFsdWUgcmVsYXRlZCBjYWxsYmFjayBm dW5jdGlvbnMKYW5kIGRvbWN0bCBpbnRlcmZhY2UuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlp Lnkuc3VuQGxpbnV4LmludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAg ICAgIHwgICA2ICsrCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgICAgICAgIHwgMTMyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYv bXNyLWluZGV4LmggfCAgIDEgKwogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oICAgICB8ICAg MSArCiA0IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5j CmluZGV4IGU1YWE5MzIuLjY5YWE0ZDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwu YworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTE0MDMsNiArMTQwMywxMiBAQCBsb25n IGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9U WVBFX0wzX0RBVEEpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBYRU5fRE9N Q1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NCTToKKyAgICAgICAgICAgIHJldCA9IHBzcl9zZXRfdmFs KGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQU1JfQ0JNX1RZUEVfTDIpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAg Y2FzZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NCTToKICAgICAgICAgICAgIHJldCA9 IHBzcl9nZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLApkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5jCmluZGV4IDA4ODZhMDEu LmVkMWVjMmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94 ODYvcHNyLmMKQEAgLTc5NiwxNyArNzk2LDEyNyBAQCBzdGF0aWMgYm9vbCBsMl9jYXRfZ2V0X3Zh bChjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1bnNpZ25lZCBpbnQgY29zLAogICAgIGlm ICggY29zID4gZmVhdC0+aW5mby5sMl9jYXRfaW5mby5jb3NfbWF4ICkKICAgICAgICAgY29zID0g MDsKIAotICAgIC8qIEwyIENBVCAqLwogICAgICp2YWwgPSBmZWF0LT5jb3NfcmVnX3ZhbFtjb3Nd OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDJfY2F0X2dl dF9jb3NfbnVtKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgLyogTDIgQ0FU IHVzZXMgb25lIENPUy4gKi8KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludCBsMl9jYXRf Z2V0X29sZF92YWwodWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG9sZF9jb3MpCit7CisgICAgaWYgKCBvbGRfY29zID4gZmVhdC0+ aW5mby5sMl9jYXRfaW5mby5jb3NfbWF4ICkKKyAgICAgICAgLyogVXNlIGRlZmF1bHQgdmFsdWUu ICovCisgICAgICAgIG9sZF9jb3MgPSAwOworCisgICAgdmFsWzBdID0gZmVhdC0+Y29zX3JlZ192 YWxbb2xkX2Nvc107CisKKyAgICAvKiBMMiBDQVQgdXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVy biAxOworfQorCitzdGF0aWMgaW50IGwyX2NhdF9zZXRfbmV3X3ZhbCh1aW50NjRfdCB2YWxbXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZl YXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2xkX2NvcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG0pCit7CisgICAgaWYgKCB0eXBlICE9 IFBTUl9DQk1fVFlQRV9MMiApCisgICAgICAgIHJldHVybiAxOworCisgICAgaWYgKCAhcHNyX2No ZWNrX2NibShmZWF0LT5pbmZvLmwyX2NhdF9pbmZvLmNibV9sZW4sIG0pICkKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICB2YWxbMF0gPSBtOworCisgICAgLyogTDIgQ0FUIHVzZXMgb25l IENPUy4gKi8KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBsMl9jYXRf Z2V0X2Nvc19tYXhfZnJvbV90eXBlKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlw ZSB0eXBlKQoreworICAgIGlmICggdHlwZSAhPSBQU1JfQ0JNX1RZUEVfTDIgKQorICAgICAgICBy ZXR1cm4gMDsKKworICAgIHJldHVybiBmZWF0LT5pbmZvLmwyX2NhdF9pbmZvLmNvc19tYXg7Cit9 CisKK3N0YXRpYyBpbnQgbDJfY2F0X2NvbXBhcmVfdmFsKGNvbnN0IHVpbnQ2NF90IHZhbFtdLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVh dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MsIGJvb2wg KmZvdW5kKQoreworICAgIHVpbnQ2NF90IGwyX2RlZl9jYm07CisKKyAgICBsMl9kZWZfY2JtID0g KDF1bGwgPDwgZmVhdC0+aW5mby5sMl9jYXRfaW5mby5jYm1fbGVuKSAtIDE7CisKKyAgICBpZiAo IGNvcyA+IGZlYXQtPmluZm8ubDJfY2F0X2luZm8uY29zX21heCApCisgICAgeworICAgICAgICBp ZiAoIHZhbFswXSAhPSBsMl9kZWZfY2JtICkKKyAgICAgICAgeworICAgICAgICAgICAgKmZvdW5k ID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gLUVOT0VOVDsKKyAgICAgICAgfQorICAgICAg ICAqZm91bmQgPSB0cnVlOworICAgIH0KKyAgICBlbHNlCisgICAgICAgICpmb3VuZCA9ICh2YWxb MF0gPT0gZmVhdC0+Y29zX3JlZ192YWxbY29zXSk7CisKKyAgICAvKiBMMiBDQVQgdXNlcyBvbmUg Q09TLiAqLworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGwyX2NhdF9l eGNlZWRzX2Nvc19tYXgoY29uc3QgdWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29z KQoreworICAgIHVpbnQ2NF90IGwyX2RlZl9jYm07CisKKyAgICBsMl9kZWZfY2JtID0gKDF1bGwg PDwgZmVhdC0+aW5mby5sMl9jYXRfaW5mby5jYm1fbGVuKSAtIDE7CisKKyAgICBpZiAoIGNvcyA+ IGZlYXQtPmluZm8ubDJfY2F0X2luZm8uY29zX21heCAmJgorICAgICAgICAgdmFsWzBdICE9IGwy X2RlZl9jYm0gKQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEV4Y2VlZCBjb3NfbWF4 IGFuZCB2YWx1ZSB0byBzZXQgaXMgbm90IGRlZmF1bHQsCisgICAgICAgICAgICAgKiByZXR1cm4g ZXJyb3IuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgLyog TDIgQ0FUIHVzZXMgb25lIENPUy4gKi8KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludCBs Ml9jYXRfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIGNvbnN0IHVpbnQ2NF90IHZhbFtdLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7Cisg ICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLmwyX2NhdF9pbmZvLmNvc19tYXggKQorICAgICAgICBy ZXR1cm4gMTsKKworICAgIGZlYXQtPmNvc19yZWdfdmFsW2Nvc10gPSB2YWxbMF07CisgICAgd3Jt c3JsKE1TUl9JQTMyX1BTUl9MMl9NQVNLKGNvcyksIHZhbFswXSk7CisKKyAgICAvKiBMMiBDQVQg dXNlcyBvbmUgQ09TLiAqLworICAgIHJldHVybiAxOworfQorCiBzdHJ1Y3QgZmVhdF9vcHMgbDJf Y2F0X29wcyA9IHsKICAgICAuaW5pdF9mZWF0dXJlID0gbDJfY2F0X2luaXRfZmVhdHVyZSwKICAg ICAuZ2V0X21heF9jb3NfbWF4ID0gbDJfY2F0X2dldF9tYXhfY29zX21heCwKICAgICAuZ2V0X2Zl YXRfaW5mbyA9IGwyX2NhdF9nZXRfZmVhdF9pbmZvLAogICAgIC5nZXRfdmFsID0gbDJfY2F0X2dl dF92YWwsCisgICAgLmdldF9jb3NfbnVtID0gbDJfY2F0X2dldF9jb3NfbnVtLAorICAgIC5nZXRf b2xkX3ZhbCA9IGwyX2NhdF9nZXRfb2xkX3ZhbCwKKyAgICAuc2V0X25ld192YWwgPSBsMl9jYXRf c2V0X25ld192YWwsCisgICAgLmdldF9jb3NfbWF4X2Zyb21fdHlwZSA9IGwyX2NhdF9nZXRfY29z X21heF9mcm9tX3R5cGUsCisgICAgLmNvbXBhcmVfdmFsID0gbDJfY2F0X2NvbXBhcmVfdmFsLAor ICAgIC5leGNlZWRzX2Nvc19tYXggPSBsMl9jYXRfZXhjZWVkc19jb3NfbWF4LAorICAgIC53cml0 ZV9tc3IgPSBsMl9jYXRfd3JpdGVfbXNyLAogfTsKIAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNl X3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVlLCBjaGFyICpmZWF0dXJlLApAQCAtMTMxNywx MCArMTQyNywzMCBAQCBpbnQgcHNyX3NldF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IHNvY2tldCwKICAgICB1aW50NjRfdCAqdmFsX2FycmF5OwogICAgIHN0cnVjdCBwc3Jfc29j a2V0X2luZm8gKmluZm8gPSBnZXRfc29ja2V0X2luZm8oc29ja2V0KTsKICAgICB1aW50MzJfdCBh cnJheV9sZW47CisgICAgdWludDMyX3QgZmxhZzsKIAogICAgIGlmICggSVNfRVJSKGluZm8pICkK ICAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5mbyk7CiAKKyAgICAvKiBKdWRnZSBpZiBmZWF0dXJl IGlzIGVuYWJsZWQuICovCisgICAgc3dpdGNoICggdHlwZSApIHsKKyAgICBjYXNlIFBTUl9DQk1f VFlQRV9MMzoKKyAgICAgICAgZmxhZyA9IFBTUl9TT0NLRVRfTDNfQ0FUOworICAgICAgICBicmVh azsKKyAgICBjYXNlIFBTUl9DQk1fVFlQRV9MM19EQVRBOgorICAgIGNhc2UgUFNSX0NCTV9UWVBF X0wzX0NPREU6CisgICAgICAgIGZsYWcgPSBQU1JfU09DS0VUX0wzX0NEUDsKKyAgICAgICAgYnJl YWs7CisgICAgY2FzZSBQU1JfQ0JNX1RZUEVfTDI6CisgICAgICAgIGZsYWcgPSBQU1JfU09DS0VU X0wyX0NBVDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgZmxhZyA9IDB4 RkZGRjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICggIXRlc3RfYml0KGZsYWcsICZp bmZvLT5mZWF0X21hc2spICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisKICAgICAvKgogICAg ICAqIFN0ZXAgMDoKICAgICAgKiBvbGRfY29zIG1lYW5zIHRoZSBDT1MgSUQgY3VycmVudCBkb21h aW4gaXMgdXNpbmcuIEJ5IGRlZmF1bHQsIGl0IGlzIDAuCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L21zci1pbmRleC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaApp bmRleCA5OGRiZmYxLi5hNDFlNjNhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21z ci1pbmRleC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgKQEAgLTM0Myw2 ICszNDMsNyBAQAogI2RlZmluZSBNU1JfSUEzMl9QU1JfTDNfTUFTSyhuKQkoMHgwMDAwMGM5MCAr IChuKSkKICNkZWZpbmUgTVNSX0lBMzJfUFNSX0wzX01BU0tfQ09ERShuKQkoMHgwMDAwMGM5MCAr IChuKSAqIDIgKyAxKQogI2RlZmluZSBNU1JfSUEzMl9QU1JfTDNfTUFTS19EQVRBKG4pCSgweDAw MDAwYzkwICsgKG4pICogMikKKyNkZWZpbmUgTVNSX0lBMzJfUFNSX0wyX01BU0sobikJCSgweDAw MDAwZDEwICsgKG4pKQogCiAvKiBJbnRlbCBNb2RlbCA2ICovCiAjZGVmaW5lIE1TUl9QNl9QRVJG Q1RSKG4pCQkoMHgwMDAwMDBjMSArIChuKSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9kb21jdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAppbmRleCBkMDRlMzE4Li4x N2M0YWI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKKysrIGIveGVu L2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCkBAIC0xMTM3LDYgKzExMzcsNyBAQCBzdHJ1Y3QgeGVu X2RvbWN0bF9wc3JfY2F0X29wIHsKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9M M19EQVRBICAgIDMKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DT0RFICAg IDQKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19EQVRBICAgIDUKKyNkZWZp bmUgWEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MMl9DQk0gICAgIDYKICNkZWZpbmUgWEVOX0RP TUNUTF9QU1JfQ0FUX09QX0dFVF9MMl9DQk0gICAgIDcKICAgICB1aW50MzJfdCBjbWQ7ICAgICAg IC8qIElOOiBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfKiAqLwogICAgIHVpbnQzMl90IHRhcmdldDsg ICAgLyogSU4gKi8KLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==