From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH 19/19] tools/xen-mceinj: support injecting LMCE Date: Fri, 17 Feb 2017 14:39:36 +0800 Message-ID: <20170217063936.13208-20-haozhong.zhang@intel.com> References: <20170217063936.13208-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170217063936.13208-1-haozhong.zhang@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.xen.org Cc: Haozhong Zhang , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org SWYgb3B0aW9uICctbCcgb3IgJy0tbG1jZScgaXMgc3BlY2lmaWVkIGFuZCB0aGUgaG9zdCBzdXBw b3J0cyBMTUNFLAp4ZW4tbWNlaW5qIHdpbGwgaW5qZWN0IExNQ0UgdG8gQ1BVIHNwZWNpZmllZCBi eSAnLWMnIChvciBDUFUwIGlmICctYycKaXMgbm90IHByZXNlbnQpLgoKU2lnbmVkLW9mZi1ieTog SGFvemhvbmcgWmhhbmcgPGhhb3pob25nLnpoYW5nQGludGVsLmNvbT4KLS0tCkNjOiBJYW4gSmFj a3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgICAgIHwg IDEgKwogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgICAgIHwgMjUgKysrKysr KysrKysrKysrCiB0b29scy90ZXN0cy9tY2UtdGVzdC90b29scy94ZW4tbWNlaW5qLmMgfCA1NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgODEgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDg1ZDdm ZTUuLjI1OTg5NTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisr KyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xOTY4LDYgKzE5NjgsNyBAQCBp bnQgeGNfY3B1aWRfYXBwbHlfcG9saWN5KHhjX2ludGVyZmFjZSAqeGNoLAogdm9pZCB4Y19jcHVp ZF90b19zdHIoY29uc3QgdW5zaWduZWQgaW50ICpyZWdzLAogICAgICAgICAgICAgICAgICAgICAg Y2hhciAqKnN0cnMpOyAvKiBzb21lIHN0cnNbXSBtYXkgYmUgTlVMTCBpZiBFTk9NRU0gKi8KIGlu dCB4Y19tY2Ffb3AoeGNfaW50ZXJmYWNlICp4Y2gsIHN0cnVjdCB4ZW5fbWMgKm1jKTsKK2ludCB4 Y19tY2Ffb3BfY3B1bWFwKHhjX2ludGVyZmFjZSAqeGNoLCBzdHJ1Y3QgeGVuX21jICptYywgeGNf Y3B1bWFwX3QgY3B1bWFwKTsKICNlbmRpZgogCiBzdHJ1Y3QgeGNfcHhfdmFsIHsKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCAw ZmM2YzIyLi4yNGY3ZmRmIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIv dG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC0zNDEsNiArMzQxLDMxIEBAIGludCB4Y19tY2Ffb3Ao eGNfaW50ZXJmYWNlICp4Y2gsIHN0cnVjdCB4ZW5fbWMgKm1jKQogICAgIHhjX2h5cGVyY2FsbF9i b3VuY2VfcG9zdCh4Y2gsIG1jKTsKICAgICByZXR1cm4gcmV0OwogfQorCitpbnQgeGNfbWNhX29w X2NwdW1hcCh4Y19pbnRlcmZhY2UgKnhjaCwgc3RydWN0IHhlbl9tYyAqbWMsIHhjX2NwdW1hcF90 IGNwdW1hcCkKK3sKKyAgICBpbnQgcmV0OworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShj cHVtYXAsIDAsIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX0lOKTsKKworICAgIGlmICggY3B1 bWFwICkKKyAgICB7CisgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUoY3B1bWFwLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYy0+dS5tY19pbmplY3RfdjIuY3B1 bWFwLm5yX2JpdHMgKyA3KSAvIDgpOworICAgICAgICBpZiAoIHhjX2h5cGVyY2FsbF9ib3VuY2Vf cHJlKHhjaCwgY3B1bWFwKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIFBFUlJPUigiQ291bGQg bm90IGJvdWNlIGNwdW1hcCBtZW1vcnkgYnVmZmVyIik7CisgICAgICAgICAgICByZXR1cm4gLTE7 CisgICAgICAgIH0KKyAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUobWMtPnUubWNfaW5qZWN0 X3YyLmNwdW1hcC5iaXRtYXAsIGNwdW1hcCk7CisgICAgfQorCisgICAgcmV0ID0geGNfbWNhX29w KHhjaCwgbWMpOworCisgICAgaWYgKCBjcHVtYXAgKQorICAgICAgICB4Y19oeXBlcmNhbGxfYm91 bmNlX3Bvc3QoeGNoLCBjcHVtYXApOworCisgICAgcmV0dXJuIHJldDsKK30KICNlbmRpZgogCiBp bnQgeGNfcGVyZmNfcmVzZXQoeGNfaW50ZXJmYWNlICp4Y2gpCmRpZmYgLS1naXQgYS90b29scy90 ZXN0cy9tY2UtdGVzdC90b29scy94ZW4tbWNlaW5qLmMgYi90b29scy90ZXN0cy9tY2UtdGVzdC90 b29scy94ZW4tbWNlaW5qLmMKaW5kZXggNWY3MGE2MS4uYjJlYjdkMyAxMDA2NDQKLS0tIGEvdG9v bHMvdGVzdHMvbWNlLXRlc3QvdG9vbHMveGVuLW1jZWluai5jCisrKyBiL3Rvb2xzL3Rlc3RzL21j ZS10ZXN0L3Rvb2xzL3hlbi1tY2VpbmouYwpAQCAtNTYsNiArNTYsOCBAQAogI2RlZmluZSBNU1Jf SUEzMl9NQzBfTUlTQyAgICAgICAgMHgwMDAwMDQwMwogI2RlZmluZSBNU1JfSUEzMl9NQzBfQ1RM MiAgICAgICAgMHgwMDAwMDI4MAogCisjZGVmaW5lIE1DR19TVEFUVVNfTE1DRSAgICAgICAgICAw eDgKKwogc3RydWN0IG1jZV9pbmZvIHsKICAgICBjb25zdCBjaGFyICpkZXNjcmlwdGlvbjsKICAg ICB1aW50OF90IG1jZ19zdGF0OwpAQCAtMTEzLDYgKzExNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbWNl X2luZm8gbWNlX3RhYmxlW10gPSB7CiAjZGVmaW5lIExPR0ZJTEUgc3Rkb3V0CiAKIGludCBkdW1w OworaW50IGxtY2U7CiBzdHJ1Y3QgeGVuX21jX21zcmluamVjdCBtc3JfaW5qOwogCiBzdGF0aWMg dm9pZCBMcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQpAQCAtMjEzLDYgKzIxNiw0MiBAQCBz dGF0aWMgaW50IGluamVjdF9tY2UoeGNfaW50ZXJmYWNlICp4Y19oYW5kbGUsIGludCBjcHVfbnIp CiAgICAgcmV0dXJuIHhjX21jYV9vcCh4Y19oYW5kbGUsICZtYyk7CiB9CiAKK3N0YXRpYyBpbnQg aW5qZWN0X2xtY2UoeGNfaW50ZXJmYWNlICp4Y19oYW5kbGUsIHVpbnQzMl90IGNwdV9ucikKK3sK KyAgICBzdHJ1Y3QgeGVuX21jIG1jOworICAgIHVpbnQ4X3QgKmNwdW1hcCA9IE5VTEw7CisgICAg c2l6ZV90IGNwdW1hcF9zaXplLCBsaW5lLCBzaGlmdDsKKyAgICB1aW50MzJfdCBucl9jcHVzOwor ICAgIGludCByZXQ7CisKKyAgICBucl9jcHVzID0gbWNhX2NwdWluZm8oeGNfaGFuZGxlKTsKKyAg ICBpZiAoICFucl9jcHVzICkKKyAgICAgICAgZXJyKHhjX2hhbmRsZSwgIkZhaWxlZCB0byBnZXQg bWNhX2NwdWluZm8iKTsKKyAgICBpZiAoIGNwdV9uciA+PSBucl9jcHVzICkKKyAgICAgICAgZXJy KHhjX2hhbmRsZSwgIi1jICUiUFJJdTMyIiBpcyBsYXJnZXIgdGhhbiAlIlBSSXUzMiwKKyAgICAg ICAgICAgIGNwdV9uciwgbnJfY3B1cyAtIDEpOworCisgICAgbWVtc2V0KCZtYywgMCwgc2l6ZW9m KHN0cnVjdCB4ZW5fbWMpKTsKKyAgICBtYy5jbWQgPSBYRU5fTUNfaW5qZWN0X3YyOworICAgIG1j LmludGVyZmFjZV92ZXJzaW9uID0gWEVOX01DQV9JTlRFUkZBQ0VfVkVSU0lPTjsKKyAgICBtYy51 Lm1jX2luamVjdF92Mi5mbGFncyB8PSBYRU5fTUNfSU5KRUNUX1RZUEVfTE1DRTsKKworICAgIGNw dW1hcF9zaXplID0gKG5yX2NwdXMgKyA3KSAvIDg7CisgICAgY3B1bWFwID0gbWFsbG9jKGNwdW1h cF9zaXplKTsKKyAgICBpZiAoICFjcHVtYXAgKQorICAgICAgICBlcnIoeGNfaGFuZGxlLCAiRmFp bGVkIHRvIGFsbG9jYXRlIGNwdW1hcFxuIik7CisgICAgbWVtc2V0KGNwdW1hcCwgMCwgY3B1bWFw X3NpemUpOworICAgIGxpbmUgPSBjcHVfbnIgLyA4OworICAgIHNoaWZ0ID0gY3B1X25yICUgODsK KyAgICBtZW1zZXQoY3B1bWFwICsgbGluZSwgMSA8PCBzaGlmdCwgMSk7CisKKyAgICBtYy51Lm1j X2luamVjdF92Mi5jcHVtYXAubnJfYml0cyA9IGNwdW1hcF9zaXplICogODsKKyAgICByZXQgPSB4 Y19tY2Ffb3BfY3B1bWFwKHhjX2hhbmRsZSwgJm1jLCBjcHVtYXApOworCisgICAgZnJlZShjcHVt YXApOworICAgIHJldHVybiByZXQ7Cit9CisKIHN0YXRpYyB1aW50NjRfdCBiYW5rX2FkZHIoaW50 IGJhbmssIGludCB0eXBlKQogewogICAgIHVpbnQ2NF90IGFkZHI7CkBAIC0zMzEsOCArMzcwLDE1 IEBAIHN0YXRpYyBpbnQgaW5qZWN0KHhjX2ludGVyZmFjZSAqeGNfaGFuZGxlLCBzdHJ1Y3QgbWNl X2luZm8gKm1jZSwKICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNwdV9uciwgdWludDMyX3Qg ZG9tYWluLCB1aW50NjRfdCBnYWRkcikKIHsKICAgICBpbnQgcmV0ID0gMDsKKyAgICB1aW50OF90 IG1jZ19zdGF0dXMgPSBtY2UtPm1jZ19zdGF0OwogCi0gICAgcmV0ID0gaW5qZWN0X21jZ19zdGF0 dXMoeGNfaGFuZGxlLCBjcHVfbnIsIG1jZS0+bWNnX3N0YXQsIGRvbWFpbik7CisgICAgaWYgKCBs bWNlICkKKyAgICB7CisgICAgICAgIGlmICggbWNlLT5jbWNpICkKKyAgICAgICAgICAgIGVycih4 Y19oYW5kbGUsICJObyBzdXBwb3J0IHRvIGluamVjdCBDTUNJIGFzIExNQ0UiKTsKKyAgICAgICAg bWNnX3N0YXR1cyB8PSBNQ0dfU1RBVFVTX0xNQ0U7CisgICAgfQorICAgIHJldCA9IGluamVjdF9t Y2dfc3RhdHVzKHhjX2hhbmRsZSwgY3B1X25yLCBtY2dfc3RhdHVzLCBkb21haW4pOwogICAgIGlm ICggcmV0ICkKICAgICAgICAgZXJyKHhjX2hhbmRsZSwgIkZhaWxlZCB0byBpbmplY3QgTUNHX1NU QVRVUyBNU1IiKTsKIApAQCAtMzU1LDYgKzQwMSw4IEBAIHN0YXRpYyBpbnQgaW5qZWN0KHhjX2lu dGVyZmFjZSAqeGNfaGFuZGxlLCBzdHJ1Y3QgbWNlX2luZm8gKm1jZSwKICAgICAgICAgZXJyKHhj X2hhbmRsZSwgIkZhaWxlZCB0byBpbmplY3QgTVNSIik7CiAgICAgaWYgKCBtY2UtPmNtY2kgKQog ICAgICAgICByZXQgPSBpbmplY3RfY21jaSh4Y19oYW5kbGUsIGNwdV9ucik7CisgICAgZWxzZSBp ZiAoIGxtY2UgKQorICAgICAgICByZXQgPSBpbmplY3RfbG1jZSh4Y19oYW5kbGUsIGNwdV9ucik7 CiAgICAgZWxzZQogICAgICAgICByZXQgPSBpbmplY3RfbWNlKHhjX2hhbmRsZSwgY3B1X25yKTsK ICAgICBpZiAoIHJldCApCkBAIC0zOTQsNiArNDQyLDcgQEAgc3RhdGljIHN0cnVjdCBvcHRpb24g b3B0c1tdID0gewogICAgIHsiZHVtcCIsIDAsIDAsICdEJ30sCiAgICAgeyJoZWxwIiwgMCwgMCwg J2gnfSwKICAgICB7InBhZ2UiLCAwLCAwLCAncCd9LAorICAgIHsibG1jZSIsIDAsIDAsICdsJ30s CiAgICAgeyIiLCAwLCAwLCAnXDAnfQogfTsKIApAQCAtNDEwLDYgKzQ1OSw3IEBAIHN0YXRpYyB2 b2lkIGhlbHAodm9pZCkKICAgICAgICAgICAgIiAgLWQsIC0tZG9tYWluPURPTUlEICAgdGFyZ2V0 IGRvbWFpbiwgdGhlIGRlZmF1bHQgaXMgWGVuIGl0c2VsZlxuIgogICAgICAgICAgICAiICAtaCwg LS1oZWxwICAgICAgICAgICBwcmludCB0aGlzIHBhZ2VcbiIKICAgICAgICAgICAgIiAgLXAsIC0t cGFnZT1BRERSICAgICAgcGh5c2ljYWwgYWRkcmVzcyB0byByZXBvcnRcbiIKKyAgICAgICAgICAg IiAgLWwsIC0tbG1jZSAgICAgICAgICAgaW5qZWN0IGFzIExNQ0UgKEludGVsIG9ubHkpXG4iCiAg ICAgICAgICAgICIgIC10LCAtLXR5cGU9RVJST1IgICAgIGVycm9yIHR5cGVcbiIpOwogCiAgICAg Zm9yICggaSA9IDA7IGkgPCBNQ0VfVEFCTEVfU0laRTsgaSsrICkKQEAgLTQzOSw3ICs0ODksNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIH0KIAogICAgIHdoaWxlICgg MSApIHsKLSAgICAgICAgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJjOkRkOnQ6aHA6Iiwg b3B0cywgJm9wdF9pbmRleCk7CisgICAgICAgIGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi YzpEZDp0OmhwOmwiLCBvcHRzLCAmb3B0X2luZGV4KTsKICAgICAgICAgaWYgKCBjID09IC0xICkK ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBzd2l0Y2ggKCBjICkgewpAQCAtNDY0LDYgKzUx NCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIGNhc2UgJ3Qn OgogICAgICAgICAgICAgdHlwZSA9IHN0cnRvbChvcHRhcmcsIE5VTEwsIDApOwogICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2wnOgorICAgICAgICAgICAgbG1jZSA9IDE7CisgICAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnaCc6CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgICBoZWxwKCk7Ci0tIAoyLjEwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK