From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luwei Kang Subject: [PATCH RESEND v1 6/7] x86: Implement Intel Processor Trace MSRs read/write Date: Tue, 16 Jan 2018 02:12:32 +0800 Message-ID: <1516039953-2988-7-git-send-email-luwei.kang@intel.com> References: <1516039953-2988-1-git-send-email-luwei.kang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1516039953-2988-1-git-send-email-luwei.kang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, jbeulich@suse.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, tim@xen.org, jun.nakajima@intel.com, Luwei Kang List-Id: xen-devel@lists.xenproject.org SW50ZWwgUFQgTVNScyByZWFkL3dyaXRlIHdpbGwgbm90IGJlIGludGVyY2VwdGVkIHdoZW4gZ3Vl c3QgZW5hYmxlZApJbnRlbCBQVC4gSUEzMl9SVElUX0NUTCByZWFkL3dyaXRlIHdpbGwgYWx3YXlz IGNhdXNlIGEgVk0tRXhpdC4KClNpZ25lZC1vZmYtYnk6IEx1d2VpIEthbmcgPGx1d2VpLmthbmdA aW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9jcHUvaW50ZWxfcHQuYyAgICB8IDEwMSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS92 bXgvdm14LmMgICAgIHwgIDE4ICsrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2ludGVsX3B0 LmggfCAgIDQgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsX3B0LmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVs X3B0LmMKaW5kZXggYzBlOWU2OC4uZDUzMGU1NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Nw dS9pbnRlbF9wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWxfcHQuYwpAQCAtMjgsNiAr MjgsMTA3IEBACiBib29sX3QgX19yZWFkX21vc3RseSBvcHRfaW50ZWxfcHQgPSAxOwogYm9vbGVh bl9wYXJhbSgiaW50ZWxfcHQiLCBvcHRfaW50ZWxfcHQpOwogCisKK3N0YXRpYyB2b2lkIGludGVs X3B0X2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodTMyIGFkZHJfbnVtKQoreworICAgIHN0cnVj dCB2Y3B1ICp2ID0gY3VycmVudDsKKyAgICBpbnQgaTsKKworICAgIHZteF9jbGVhcl9tc3JfaW50 ZXJjZXB0KHYsIE1TUl9JQTMyX1JUSVRfU1RBVFVTLCBWTVhfTVNSX1JXKTsKKyAgICB2bXhfY2xl YXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9SVElUX09VVFBVVF9CQVNFLCBWTVhfTVNSX1JX KTsKKyAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9SVElUX09VVFBVVF9N QVNLLCBWTVhfTVNSX1JXKTsKKyAgICB2bXhfY2xlYXJfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEz Ml9SVElUX0NSM19NQVRDSCwgVk1YX01TUl9SVyk7CisgICAgZm9yICggaSA9IDA7IGkgPCBhZGRy X251bTsgaSsrICkKKyAgICAgICAgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQodiwgTVNSX0lBMzJf UlRJVF9BRERSMF9BICsgaSwgVk1YX01TUl9SVyk7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX3B0 X2VuYWJsZV9pbnRlcmNlcHRfZm9yX21zcih1MzIgYWRkcl9udW0pCit7CisgICAgc3RydWN0IHZj cHUgKnYgPSBjdXJyZW50OworICAgIGludCBpOworCisgICAgdm14X3NldF9tc3JfaW50ZXJjZXB0 KHYsIE1TUl9JQTMyX1JUSVRfU1RBVFVTLCBWTVhfTVNSX1JXKTsKKyAgICB2bXhfc2V0X21zcl9p bnRlcmNlcHQodiwgTVNSX0lBMzJfUlRJVF9PVVRQVVRfQkFTRSwgVk1YX01TUl9SVyk7CisgICAg dm14X3NldF9tc3JfaW50ZXJjZXB0KHYsIE1TUl9JQTMyX1JUSVRfT1VUUFVUX01BU0ssIFZNWF9N U1JfUlcpOworICAgIHZteF9zZXRfbXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9SVElUX0NSM19N QVRDSCwgVk1YX01TUl9SVyk7CisgICAgZm9yICggaSA9IDA7IGkgPCBhZGRyX251bTsgaSsrICkK KyAgICAgICAgdm14X3NldF9tc3JfaW50ZXJjZXB0KHYsIE1TUl9JQTMyX1JUSVRfQUREUjBfQSAr IGksIFZNWF9NU1JfUlcpOworfQorCit2b2lkIHB0X3NldF9ydGl0X2N0bChzdHJ1Y3QgcHRfZGVz YyAqcHRfZGVzYywgdWludDY0X3QgbXNyX2NvbnRlbnQpCit7CisgICAgaWYgKG1zcl9jb250ZW50 ICYgTVNSX0lBMzJfUlRJVF9DVExfVFJBQ0VFTikKKyAgICAgICAgaW50ZWxfcHRfZGlzYWJsZV9p bnRlcmNlcHRfZm9yX21zcihwdF9kZXNjLT5hZGRyX251bSk7CisgICAgZWxzZQorICAgICAgICBp bnRlbF9wdF9lbmFibGVfaW50ZXJjZXB0X2Zvcl9tc3IocHRfZGVzYy0+YWRkcl9udW0pOworCisg ICAgcHRfZGVzYy0+Z3Vlc3RfcHRfY3R4LmN0bCA9IG1zcl9jb250ZW50OworCisgICAgdm14X3Zt Y3NfZW50ZXIoY3VycmVudCk7CisgICAgX192bXdyaXRlKEdVRVNUX0lBMzJfUlRJVF9DVEwsIG1z cl9jb250ZW50KTsKKyAgICB2bXhfdm1jc19leGl0KGN1cnJlbnQpOworfQorCitpbnQgcHRfZG9f cmRtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KQoreworICAgIHN0 cnVjdCBwdF9kZXNjICpwdF9kZXNjID0gJmN1cnJlbnQtPmFyY2guaHZtX3ZteC5wdF9kZXNjOwor CisgICAgaWYgKCAhb3B0X2ludGVsX3B0ICkKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBzd2l0 Y2ggKCBtc3IgKSB7CisgICAgY2FzZSBNU1JfSUEzMl9SVElUX0NUTDoKKyAgICAgICAgKm1zcl9j b250ZW50ID0gcHRfZGVzYy0+Z3Vlc3RfcHRfY3R4LmN0bDsKKyAgICAgICAgYnJlYWs7CisgICAg Y2FzZSBNU1JfSUEzMl9SVElUX1NUQVRVUzoKKyAgICAgICAgKm1zcl9jb250ZW50ID0gcHRfZGVz Yy0+Z3Vlc3RfcHRfY3R4LnN0YXR1czsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNU1JfSUEz Ml9SVElUX09VVFBVVF9CQVNFOgorICAgICAgICAqbXNyX2NvbnRlbnQgPSBwdF9kZXNjLT5ndWVz dF9wdF9jdHgub3V0cHV0X2Jhc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNSX0lBMzJf UlRJVF9PVVRQVVRfTUFTSzoKKyAgICAgICAgKm1zcl9jb250ZW50ID0gcHRfZGVzYy0+Z3Vlc3Rf cHRfY3R4Lm91dHB1dF9tYXNrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TUl9JQTMyX1JU SVRfQ1IzX01BVENIOgorICAgICAgICAqbXNyX2NvbnRlbnQgPSBwdF9kZXNjLT5ndWVzdF9wdF9j dHguY3IzX21hdGNoOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICAqbXNy X2NvbnRlbnQgPSBwdF9kZXNjLT5ndWVzdF9wdF9jdHguYWRkclttc3IgLSBNU1JfSUEzMl9SVElU X0FERFIwX0FdOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgcHRfZG9fd3Jtc3Io dW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQpCit7CisgICAgc3RydWN0IHB0 X2Rlc2MgKnB0X2Rlc2MgPSAmY3VycmVudC0+YXJjaC5odm1fdm14LnB0X2Rlc2M7CisKKyAgICBp ZiAoICFvcHRfaW50ZWxfcHQgKQorICAgICAgICByZXR1cm4gMTsKKworICAgIHN3aXRjaCAoIG1z ciApIHsKKyAgICBjYXNlIE1TUl9JQTMyX1JUSVRfQ1RMOgorICAgICAgICBwdF9zZXRfcnRpdF9j dGwocHRfZGVzYywgbXNyX2NvbnRlbnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TUl9J QTMyX1JUSVRfU1RBVFVTOgorICAgICAgICBwdF9kZXNjLT5ndWVzdF9wdF9jdHguc3RhdHVzID0g bXNyX2NvbnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNSX0lBMzJfUlRJVF9PVVRQ VVRfQkFTRToKKyAgICAgICAgcHRfZGVzYy0+Z3Vlc3RfcHRfY3R4Lm91dHB1dF9iYXNlID0gbXNy X2NvbnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNSX0lBMzJfUlRJVF9PVVRQVVRf TUFTSzoKKyAgICAgICAgcHRfZGVzYy0+Z3Vlc3RfcHRfY3R4Lm91dHB1dF9tYXNrID0gbXNyX2Nv bnRlbnQgfCAweDdGOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TUl9JQTMyX1JUSVRfQ1Iz X01BVENIOgorICAgICAgICBwdF9kZXNjLT5ndWVzdF9wdF9jdHguY3IzX21hdGNoID0gbXNyX2Nv bnRlbnQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHB0X2Rlc2MtPmd1 ZXN0X3B0X2N0eC5hZGRyW21zciAtIE1TUl9JQTMyX1JUSVRfQUREUjBfQV0gPSBtc3JfY29udGVu dDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHB0X2xv YWRfbXNyKHN0cnVjdCBwdF9jdHggKmN0eCwgdTMyIGFkZHJfbnVtKQogewogICAgIHUzMiBpOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92bXguYwppbmRleCBmMzg2OTMzLi5lNjcxM2ZkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMjky OSw2ICsyOTI5LDE1IEBAIHN0YXRpYyBpbnQgdm14X21zcl9yZWFkX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgICAgIGlmICggdnBtdV9kb19y ZG1zcihtc3IsIG1zcl9jb250ZW50KSApCiAgICAgICAgICAgICBnb3RvIGdwX2ZhdWx0OwogICAg ICAgICBicmVhazsKKyAgICBjYXNlIE1TUl9JQTMyX1JUSVRfQ1RMOgorICAgIGNhc2UgTVNSX0lB MzJfUlRJVF9TVEFUVVM6CisgICAgY2FzZSBNU1JfSUEzMl9SVElUX09VVFBVVF9CQVNFOgorICAg IGNhc2UgTVNSX0lBMzJfUlRJVF9PVVRQVVRfTUFTSzoKKyAgICBjYXNlIE1TUl9JQTMyX1JUSVRf Q1IzX01BVENIOgorICAgIGNhc2UgTVNSX0lBMzJfUlRJVF9BRERSMF9BIC4uLiBNU1JfSUEzMl9S VElUX0FERFIzX0I6CisgICAgICAgIGlmICggcHRfZG9fcmRtc3IobXNyLCBtc3JfY29udGVudCkg KQorICAgICAgICAgICAgZ290byBncF9mYXVsdDsKKyAgICAgICAgYnJlYWs7CiAKICAgICBkZWZh dWx0OgogICAgICAgICBpZiAoIHBhc3NpdmVfZG9tYWluX2RvX3JkbXNyKG1zciwgbXNyX2NvbnRl bnQpICkKQEAgLTMxNDksNiArMzE1OCwxNSBAQCBzdGF0aWMgaW50IHZteF9tc3Jfd3JpdGVfaW50 ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50KQogICAgICAgICAg aWYgKCB2cG11X2RvX3dybXNyKG1zciwgbXNyX2NvbnRlbnQsIDApICkKICAgICAgICAgICAgIGdv dG8gZ3BfZmF1bHQ7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNSX0lBMzJfUlRJVF9DVEw6 CisgICAgY2FzZSBNU1JfSUEzMl9SVElUX1NUQVRVUzoKKyAgICBjYXNlIE1TUl9JQTMyX1JUSVRf T1VUUFVUX0JBU0U6CisgICAgY2FzZSBNU1JfSUEzMl9SVElUX09VVFBVVF9NQVNLOgorICAgIGNh c2UgTVNSX0lBMzJfUlRJVF9DUjNfTUFUQ0g6CisgICAgY2FzZSBNU1JfSUEzMl9SVElUX0FERFIw X0EgLi4uIE1TUl9JQTMyX1JUSVRfQUREUjNfQjoKKyAgICAgICAgaWYgKCBwdF9kb193cm1zciht c3IsIG1zcl9jb250ZW50KSApCisgICAgICAgICAgICBnb3RvIGdwX2ZhdWx0OworICAgICAgICBi cmVhazsKIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICggcGFzc2l2ZV9kb21haW5fZG9fd3Jt c3IobXNyLCBtc3JfY29udGVudCkgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9p bnRlbF9wdC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9pbnRlbF9wdC5oCmluZGV4IDk1MDVjOGYu LjVkNTFhMTIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW50ZWxfcHQuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2ludGVsX3B0LmgKQEAgLTQwLDYgKzQwLDEwIEBAIHN0cnVj dCBwdF9kZXNjIHsKIAogZXh0ZXJuIGJvb2xfdCBvcHRfaW50ZWxfcHQ7CiAKK2ludCBwdF9kb19y ZG1zcih1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqcGRhdGEpOworaW50IHB0X2RvX3dybXNy KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IGRhdGEpOwordm9pZCBwdF9zZXRfcnRpdF9jdGwo c3RydWN0IHB0X2Rlc2MgKnB0X2Rlc2MsIHVpbnQ2NF90IG1zcl9jb250ZW50KTsKKwogdm9pZCBw dF92Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYpOwogdm9pZCBwdF9ndWVzdF9lbnRlcihzdHJ1Y3Qg dmNwdSAqdik7CiB2b2lkIHB0X2d1ZXN0X2V4aXQoc3RydWN0IHZjcHUgKnYpOwotLSAKMS44LjMu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=