From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luwei Kang Subject: [PATCH RESEND v1 5/7] x86: Implement Intel Processor Trace context switch Date: Tue, 16 Jan 2018 02:12:31 +0800 Message-ID: <1516039953-2988-6-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 TG9hZC9TdG9yZSBJbnRlbCBwcm9jZXNzb3IgdHJhY2UgcmVnaXN0ZXIgaW4gY29udGV4dCBzd2l0 Y2guCk1TUiBJQTMyX1JUSVRfQ1RMIGlzIGxvYWRlZC9zdG9yZWQgYXV0b21hdGljYWxseSBmcm9t IFZNQ1MuCldoZW4gSW50ZWwgUFQgaXMgc3VwcG9ydGVkIGluIGd1ZXN0LCB3ZSBuZWVkIGxvYWQv cmVzdG9yZQpQVCBNU1JzIG9ubHkgd2hlbiBQVCBpcyBlbmFibGVkIGluIGd1ZXN0LgoKU2lnbmVk LW9mZi1ieTogTHV3ZWkgS2FuZyA8bHV3ZWkua2FuZ0BpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gv eDg2L2NwdS9pbnRlbF9wdC5jICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAgICAgIHwgIDQgKysr CiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5oIHwgIDIgKysKIHhlbi9pbmNsdWRl L2FzbS14ODYvaW50ZWxfcHQuaCAgICAgfCAgNCArKysKIDQgZmlsZXMgY2hhbmdlZCwgNzkgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50ZWxfcHQuYyBiL3hl bi9hcmNoL3g4Ni9jcHUvaW50ZWxfcHQuYwppbmRleCA1MjBlMGNhLi5jMGU5ZTY4IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsX3B0LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9p bnRlbF9wdC5jCkBAIC0yMSw3ICsyMSw3NiBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogI2lu Y2x1ZGUgPHhlbi9jYWNoZS5oPgogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CisjaW5jbHVkZSA8YXNt L2h2bS92bXgvdm14Lmg+CisjaW5jbHVkZSA8YXNtL2ludGVsX3B0Lmg+CiAKIC8qIGludGVsX3B0 OiBGbGFnIHRvIGVuYWJsZSBJbnRlbCBQcm9jZXNzb3IgVHJhY2UgKGRlZmF1bHQgb24pLiAqLwog Ym9vbF90IF9fcmVhZF9tb3N0bHkgb3B0X2ludGVsX3B0ID0gMTsKIGJvb2xlYW5fcGFyYW0oImlu dGVsX3B0Iiwgb3B0X2ludGVsX3B0KTsKKworc3RhdGljIGlubGluZSB2b2lkIHB0X2xvYWRfbXNy KHN0cnVjdCBwdF9jdHggKmN0eCwgdTMyIGFkZHJfbnVtKQoreworICAgIHUzMiBpOworICAgIHdy bXNybChNU1JfSUEzMl9SVElUX1NUQVRVUywgY3R4LT5zdGF0dXMpOworICAgIHdybXNybChNU1Jf SUEzMl9SVElUX09VVFBVVF9CQVNFLCBjdHgtPm91dHB1dF9iYXNlKTsKKyAgICB3cm1zcmwoTVNS X0lBMzJfUlRJVF9PVVRQVVRfTUFTSywgY3R4LT5vdXRwdXRfbWFzayk7CisgICAgd3Jtc3JsKE1T Ul9JQTMyX1JUSVRfQ1IzX01BVENILCBjdHgtPmNyM19tYXRjaCk7CisgICAgZm9yICggaSA9IDA7 IGkgPCBhZGRyX251bTsgaSsrICkKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1JUSVRfQUREUjBf QSArIGksIGN0eC0+YWRkcltpXSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwdF9zYXZlX21z cihzdHJ1Y3QgcHRfY3R4ICpjdHgsIHUzMiBhZGRyX251bSkKK3sKKyAgICB1MzIgaTsKKyAgICBy ZG1zcmwoTVNSX0lBMzJfUlRJVF9TVEFUVVMsIGN0eC0+c3RhdHVzKTsKKyAgICByZG1zcmwoTVNS X0lBMzJfUlRJVF9PVVRQVVRfQkFTRSwgY3R4LT5vdXRwdXRfYmFzZSk7CisgICAgcmRtc3JsKE1T Ul9JQTMyX1JUSVRfT1VUUFVUX01BU0ssIGN0eC0+b3V0cHV0X21hc2spOworICAgIHJkbXNybChN U1JfSUEzMl9SVElUX0NSM19NQVRDSCwgY3R4LT5jcjNfbWF0Y2gpOworICAgIGZvciAoIGkgPSAw OyBpIDwgYWRkcl9udW07IGkrKyApCisgICAgICAgIHJkbXNybChNU1JfSUEzMl9SVElUX0FERFIw X0EgKyBpLCBjdHgtPmFkZHJbaV0pOworfQorCit2b2lkIHB0X2d1ZXN0X2VudGVyKHN0cnVjdCB2 Y3B1ICp2KQoreworICAgIHN0cnVjdCBwdF9kZXNjICpwdCA9ICZ2LT5hcmNoLmh2bV92bXgucHRf ZGVzYzsKKworICAgIGlmICggcHQtPmludGVsX3B0X2VuYWJsZWQgJiYKKyAgICAgICAocHQtPmd1 ZXN0X3B0X2N0eC5jdGwgJiBNU1JfSUEzMl9SVElUX0NUTF9UUkFDRUVOKSApCisgICAgICAgIHB0 X2xvYWRfbXNyKCZwdC0+Z3Vlc3RfcHRfY3R4LCBwdC0+YWRkcl9udW0pOworfQorCit2b2lkIHB0 X2d1ZXN0X2V4aXQoc3RydWN0IHZjcHUgKnYpCit7CisgICAgc3RydWN0IHB0X2Rlc2MgKnB0ID0g JnYtPmFyY2guaHZtX3ZteC5wdF9kZXNjOworCisgICAgaWYgKCBwdC0+aW50ZWxfcHRfZW5hYmxl ZCAmJgorICAgICAgIChwdC0+Z3Vlc3RfcHRfY3R4LmN0bCAmIE1TUl9JQTMyX1JUSVRfQ1RMX1RS QUNFRU4pICkKKyAgICAgICAgcHRfc2F2ZV9tc3IoJnB0LT5ndWVzdF9wdF9jdHgsIHB0LT5hZGRy X251bSk7Cit9CisKK3ZvaWQgcHRfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KQoreworICAgIHN0 cnVjdCBwdF9kZXNjICpwdCA9ICZ2LT5hcmNoLmh2bV92bXgucHRfZGVzYzsKKyAgICB1bnNpZ25l ZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4OworCisgICAgbWVtc2V0KHB0LCAwLCBzaXplb2Yoc3Ry dWN0IHB0X2Rlc2MpKTsKKyAgICBwdC0+aW50ZWxfcHRfZW5hYmxlZCA9IGZhbHNlOworCisgICAg aWYgKCAhY3B1X2hhc19pbnRlbF9wdCB8fCAhb3B0X2ludGVsX3B0IHx8CisgICAgICAgICAhKHYt PmFyY2guaHZtX3ZteC5zZWNvbmRhcnlfZXhlY19jb250cm9sICYgU0VDT05EQVJZX0VYRUNfUFRf VVNFX0dQQSkgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBnZXQgdGhlIG51bWJlciBvZiBh ZGRyZXNzIHJhbmdlcyAqLworICAgIGlmICggY3B1aWRfZWF4KDB4MTQpID09IDEgKQorICAgICAg ICBjcHVpZF9jb3VudCgweDE0LCAxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKyAgICBlbHNl CisgICAgICAgIHJldHVybjsKKworICAgIHB0LT5hZGRyX251bSA9IGVheCAmIDB4NzsKKyAgICBw dC0+Z3Vlc3RfcHRfY3R4Lm91dHB1dF9tYXNrID0gMHg3RjsKKyAgICBwdC0+aW50ZWxfcHRfZW5h YmxlZCA9IHRydWU7CisKKyAgICB2bXhfdm1jc19lbnRlcih2KTsKKyAgICBfX3Ztd3JpdGUoR1VF U1RfSUEzMl9SVElUX0NUTCwgMCk7CisgICAgdm14X3ZtY3NfZXhpdCh2KTsKK30KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMKaW5kZXggZTAzNjMwMy4uZjM4NjkzMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92 bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTQ2Nyw2ICs0Njcs OCBAQCBzdGF0aWMgaW50IHZteF92Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpCiAgICAg aWYgKCB2LT52Y3B1X2lkID09IDAgKQogICAgICAgICB2LT5hcmNoLnVzZXJfcmVncy5yYXggPSAx OwogCisgICAgcHRfdmNwdV9pbml0KHYpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTM1MTMs NiArMzUxNSw3IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5kbGVyKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogICAgIF9fdm1yZWFkKEdVRVNUX1JTUCwgICAgJnJlZ3MtPnJzcCk7CiAgICAgX192 bXJlYWQoR1VFU1RfUkZMQUdTLCAmcmVncy0+cmZsYWdzKTsKIAorICAgIHB0X2d1ZXN0X2V4aXQo dik7CiAgICAgaHZtX2ludmFsaWRhdGVfcmVnc19maWVsZHMocmVncyk7CiAKICAgICBpZiAoIHBh Z2luZ19tb2RlX2hhcCh2LT5kb21haW4pICkKQEAgLTQyODEsNiArNDI4NCw3IEBAIGJvb2wgdm14 X3ZtZW50ZXJfaGVscGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAg ICB9CiAgICAgfQogCisgICAgcHRfZ3Vlc3RfZW50ZXIoY3Vycik7CiAgb3V0OgogICAgIGlmICgg dW5saWtlbHkoY3Vyci0+YXJjaC5odm1fdm14Lmxicl9maXh1cF9lbmFibGVkKSApCiAgICAgICAg IGxicl9maXh1cCgpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3Zt Y3MuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKaW5kZXggMzNlYzNlNi4u NDZjMzg2ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5oCkBAIC00MjEsNiArNDIxLDgg QEAgZW51bSB2bWNzX2ZpZWxkIHsKICAgICBHVUVTVF9QRFBURTAgICAgICAgICAgICAgICAgICAg ID0gMHgwMDAwMjgwYSwKICNkZWZpbmUgR1VFU1RfUERQVEUobikgKEdVRVNUX1BEUFRFMCArIChu KSAqIDIpIC8qIG4gPSAwLi4uMyAqLwogICAgIEdVRVNUX0JORENGR1MgICAgICAgICAgICAgICAg ICAgPSAweDAwMDAyODEyLAorICAgIEdVRVNUX0lBMzJfUlRJVF9DVEwgICAgICAgICAgICAgPSAw eDAwMDAyODE0LAorICAgIEdVRVNUX0lBMzJfUlRJVF9DVExfSElHSCAgICAgICAgPSAweDAwMDAy ODE1LAogICAgIEhPU1RfUEFUICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAyYzAwLAog ICAgIEhPU1RfRUZFUiAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAyYzAyLAogICAgIEhP U1RfUEVSRl9HTE9CQUxfQ1RSTCAgICAgICAgICAgPSAweDAwMDAyYzA0LApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9pbnRlbF9wdC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9pbnRl bF9wdC5oCmluZGV4IDkwOWUyMmYuLjk1MDVjOGYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaW50ZWxfcHQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2ludGVsX3B0LmgKQEAg LTQwLDQgKzQwLDggQEAgc3RydWN0IHB0X2Rlc2MgewogCiBleHRlcm4gYm9vbF90IG9wdF9pbnRl bF9wdDsKIAordm9pZCBwdF92Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYpOwordm9pZCBwdF9ndWVz dF9lbnRlcihzdHJ1Y3QgdmNwdSAqdik7Cit2b2lkIHB0X2d1ZXN0X2V4aXQoc3RydWN0IHZjcHUg KnYpOworCiAjZW5kaWYgLyogX19BU01fWDg2X0hWTV9JTlRFTF9QVF9IXyAqLwotLSAKMS44LjMu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=