From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 18/92] kvm: introspection: add KVMI_EVENT_UNHOOK Date: Fri, 9 Aug 2019 18:59:33 +0300 Message-ID: <20190809160047.8319-19-alazar@bitdefender.com> References: <20190809160047.8319-1-alazar@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809160047.8319-1-alazar@bitdefender.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: kvm@vger.kernel.org Cc: Tamas K Lengyel , Weijiang Yang , Yu C , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Jan Kiszka , =?UTF-8?q?Samuel=20Laur=C3=A9n?= , Konrad Rzeszutek Wilk , virtualization@lists.linux-foundation.org, =?UTF-8?q?Adalbert=20Laz=C4=83r?= , linux-mm@kvack.org, Patrick Colp , Mathieu Tarral , Stefan Hajnoczi , Paolo Bonzini , Zhang@mail.linuxfoundation.org, =?UTF-8?q?Mihai=20Don=C8=9Bu?= List-Id: virtualization@lists.linuxfoundation.org SW4gY2VydGFpbiBzaXR1YXRpb25zICh3aGVuIHRoZSBndWVzdCBoYXMgdG8gYmUgcGF1c2VkLCBz dXNwZW5kZWQsCm1pZ3JhdGVkLCBldGMuKSwgdXNlcnNwYWNlL1FFTVUgd2lsbCB1c2UgdGhlIEtW TV9JTlRST1NQRUNUSU9OX1VOSE9PSwppb2N0bCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBLVk1J X0VWRU5UX1VOSE9PSy4gSWYgdGhlIGV2ZW50IGlzIHNlbnQKc3VjY2Vzc2Z1bGx5ICh0aGUgVk0g aGFzIGFuIGFjdGl2ZSBpbnRyb3NwZWN0aW9uIGNoYW5uZWwpLCB1c2Vyc3BhY2UKc2hvdWxkIGRl bGF5IHRoZSBhY3Rpb24gKHBhdXNlL3N1c3BlbmQvLi4uKSB0byBnaXZlIHRoZSBpbnRyb3NwZWN0 aW9uCnRvb2wgdGhlIGNoYW5jZSB0byByZW1vdmUgaXRzIGhvb2tzIChlZy4gYnJlYWtwb2ludHMp LiBPbmNlIGEgdGltZW91dAppcyByZWFjaGVkIG9yIHRoZSBpbnRyb3NwZWN0aW9uIHRvb2wgaGFz IGNsb3NlZCB0aGUgc29ja2V0LCBRRU1VIHNob3VsZApjb250aW51ZSB3aXRoIHRoZSBwbGFubmVk IGFjdGlvbi4KClNpZ25lZC1vZmYtYnk6IEFkYWxiZXJ0IExhesSDciA8YWxhemFyQGJpdGRlZmVu ZGVyLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2t2bWkucnN0IHwgMjAgKysr KysrKysrKysrKysrKysrCiB2aXJ0L2t2bS9rdm1pLmMgICAgICAgICAgICAgICAgICAgIHwgMzQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB2aXJ0L2t2bS9rdm1pX2ludC5oICAgICAg ICAgICAgICAgIHwgIDEgKwogdmlydC9rdm0va3ZtaV9tc2cuYyAgICAgICAgICAgICAgICB8IDIw ICsrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1p LnJzdCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKaW5kZXggMWVhNGJlMGQ1 YTQ1Li4yOGUxYTFjODA1NTEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0v a3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdApAQCAtNDkz LDMgKzQ5MywyMyBAQCBTb21lIG9mIHRoZSBldmVudHMgYWNjZXB0IHRoZSBLVk1JX0VWRU5UX0FD VElPTl9SRVRSWSBhY3Rpb24sIHRvIGNvbnRpbnVlCiBieSByZS1lbnRlcmluZyB0aGUgZ3Vlc3Qu CiAKIFNwZWNpZmljIGRhdGEgY2FuIGZvbGxvdyB0aGVzZSBjb21tb24gc3RydWN0dXJlcy4KKwor MS4gS1ZNSV9FVkVOVF9VTkhPT0sKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzpBcmNoaXRlY3R1 cmU6IGFsbAorOlZlcnNpb25zOiA+PSAxCis6QWN0aW9uczogQ09OVElOVUUsIENSQVNICis6UGFy YW1ldGVyczoKKworOjoKKworCXN0cnVjdCBrdm1pX2V2ZW50OworCis6UmV0dXJuczogbm9uZQor CitUaGlzIGV2ZW50IGlzIHNlbnQgd2hlbiB0aGUgZGV2aWNlIG1hbmFnZXIgKGllLiBRRU1VKSBo YXMgdG8KK3BhdXNlL3N0b3AvbWlncmF0ZSB0aGUgZ3Vlc3QgKHNlZSAqKlVuaG9va2luZyoqKSBh bmQgdGhlIGludHJvc3BlY3Rpb24KK2hhcyBiZWVuIGVuYWJsZWQgZm9yIHRoaXMgZXZlbnQgKHNl ZSAqKktWTUlfQ09OVFJPTF9WTV9FVkVOVFMqKikuCitUaGUgaW50cm9zcGVjdGlvbiB0b29sIGhh cyBhIGNoYW5jZSB0byB1bmhvb2sgYW5kIGNsb3NlIHRoZSBLVk1JIGNoYW5uZWwKKyhzaWduYWxp bmcgdGhhdCB0aGUgb3BlcmF0aW9uIGNhbiBwcm9jZWVkKS4KZGlmZiAtLWdpdCBhL3ZpcnQva3Zt L2t2bWkuYyBiL3ZpcnQva3ZtL2t2bWkuYwppbmRleCAwZDM1NjBiNzRmMmQuLjdlZGE0OWJmNjVj NCAxMDA2NDQKLS0tIGEvdmlydC9rdm0va3ZtaS5jCisrKyBiL3ZpcnQva3ZtL2t2bWkuYwpAQCAt NjQ0LDYgKzY0NCw5IEBAIGludCBrdm1pX2NtZF9jb250cm9sX3ZtX2V2ZW50cyhzdHJ1Y3Qga3Zt aSAqaWt2bSwgdW5zaWduZWQgaW50IGV2ZW50X2lkLAogCiBzdGF0aWMgdm9pZCBrdm1pX2pvYl9h Ym9ydChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHZvaWQgKmN0eCkKIHsKKwlzdHJ1Y3Qga3ZtaV92 Y3B1ICppdmNwdSA9IElWQ1BVKHZjcHUpOworCisJaXZjcHUtPnJlcGx5X3dhaXRpbmcgPSBmYWxz ZTsKIH0KIAogc3RhdGljIHZvaWQga3ZtaV9hYm9ydF9ldmVudHMoc3RydWN0IGt2bSAqa3ZtKQpA QCAtNjU1LDYgKzY1OCwzNCBAQCBzdGF0aWMgdm9pZCBrdm1pX2Fib3J0X2V2ZW50cyhzdHJ1Y3Qg a3ZtICprdm0pCiAJCWt2bWlfYWRkX2pvYih2Y3B1LCBrdm1pX2pvYl9hYm9ydCwgTlVMTCwgTlVM TCk7CiB9CiAKK3N0YXRpYyBib29sIF9fa3ZtaV91bmhvb2tfZXZlbnQoc3RydWN0IGt2bWkgKmlr dm0pCit7CisJaW50IGVycjsKKworCWlmICghdGVzdF9iaXQoS1ZNSV9FVkVOVF9VTkhPT0ssIGlr dm0tPnZtX2V2X21hc2spKQorCQlyZXR1cm4gZmFsc2U7CisKKwllcnIgPSBrdm1pX21zZ19zZW5k X3VuaG9vayhpa3ZtKTsKKworCXJldHVybiAhZXJyOworfQorCitzdGF0aWMgYm9vbCBrdm1pX3Vu aG9va19ldmVudChzdHJ1Y3Qga3ZtICprdm0pCit7CisJc3RydWN0IGt2bWkgKmlrdm07CisJYm9v bCByZXQgPSB0cnVlOworCisJaWt2bSA9IGt2bWlfZ2V0KGt2bSk7CisJaWYgKCFpa3ZtKQorCQly ZXR1cm4gZmFsc2U7CisKKwlyZXQgPSBfX2t2bWlfdW5ob29rX2V2ZW50KGlrdm0pOworCisJa3Zt aV9wdXQoa3ZtKTsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBrdm1pX2lvY3RsX3VuaG9vayhz dHJ1Y3Qga3ZtICprdm0sIGJvb2wgZm9yY2VfcmVzZXQpCiB7CiAJc3RydWN0IGt2bWkgKmlrdm07 CkBAIC02NjQsNyArNjk1LDggQEAgaW50IGt2bWlfaW9jdGxfdW5ob29rKHN0cnVjdCBrdm0gKmt2 bSwgYm9vbCBmb3JjZV9yZXNldCkKIAlpZiAoIWlrdm0pCiAJCXJldHVybiAtRUZBVUxUOwogCi0J a3ZtX2luZm8oIlRPRE86ICVzIGZvcmNlX3Jlc2V0ICVkIiwgX19mdW5jX18sIGZvcmNlX3Jlc2V0 KTsKKwlpZiAoIWZvcmNlX3Jlc2V0ICYmICFrdm1pX3VuaG9va19ldmVudChrdm0pKQorCQllcnIg PSAtRU5PRU5UOwogCiAJa3ZtaV9wdXQoa3ZtKTsKIApkaWZmIC0tZ2l0IGEvdmlydC9rdm0va3Zt aV9pbnQuaCBiL3ZpcnQva3ZtL2t2bWlfaW50LmgKaW5kZXggNzBjOGNhMDM0M2EzLi45NzUwYTli OTkwMmIgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2t2bWlfaW50LmgKKysrIGIvdmlydC9rdm0va3Zt aV9pbnQuaApAQCAtMTIzLDYgKzEyMyw3IEBAIGJvb2wga3ZtaV9zb2NrX2dldChzdHJ1Y3Qga3Zt aSAqaWt2bSwgaW50IGZkKTsKIHZvaWQga3ZtaV9zb2NrX3NodXRkb3duKHN0cnVjdCBrdm1pICpp a3ZtKTsKIHZvaWQga3ZtaV9zb2NrX3B1dChzdHJ1Y3Qga3ZtaSAqaWt2bSk7CiBib29sIGt2bWlf bXNnX3Byb2Nlc3Moc3RydWN0IGt2bWkgKmlrdm0pOworaW50IGt2bWlfbXNnX3NlbmRfdW5ob29r KHN0cnVjdCBrdm1pICppa3ZtKTsKIAogLyoga3ZtaS5jICovCiB2b2lkICprdm1pX21zZ19hbGxv Yyh2b2lkKTsKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2bWlfbXNnLmMgYi92aXJ0L2t2bS9rdm1p X21zZy5jCmluZGV4IDUzNjAzNGUxYmVhNy4uMGM3YzFlOTY4MDA3IDEwMDY0NAotLS0gYS92aXJ0 L2t2bS9rdm1pX21zZy5jCisrKyBiL3ZpcnQva3ZtL2t2bWlfbXNnLmMKQEAgLTcwNSwzICs3MDUs MjMgQEAgaW50IGt2bWlfc2VuZF9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBldl9p ZCwKIAlyZXR1cm4gZXJyOwogfQogCitpbnQga3ZtaV9tc2dfc2VuZF91bmhvb2soc3RydWN0IGt2 bWkgKmlrdm0pCit7CisJc3RydWN0IGt2bWlfbXNnX2hkciBoZHI7CisJc3RydWN0IGt2bWlfZXZl bnQgY29tbW9uOworCXN0cnVjdCBrdmVjIHZlY1tdID0geworCQl7Lmlvdl9iYXNlID0gJmhkciwJ Lmlvdl9sZW4gPSBzaXplb2YoaGRyKQkgfSwKKwkJey5pb3ZfYmFzZSA9ICZjb21tb24sCS5pb3Zf bGVuID0gc2l6ZW9mKGNvbW1vbil9LAorCX07CisJc2l6ZV90IG1zZ19zaXplID0gc2l6ZW9mKGhk cikgKyBzaXplb2YoY29tbW9uKTsKKwlzaXplX3QgbiA9IEFSUkFZX1NJWkUodmVjKTsKKworCW1l bXNldCgmaGRyLCAwLCBzaXplb2YoaGRyKSk7CisJaGRyLmlkID0gS1ZNSV9FVkVOVDsKKwloZHIu c2VxID0gbmV3X3NlcShpa3ZtKTsKKwloZHIuc2l6ZSA9IG1zZ19zaXplIC0gc2l6ZW9mKGhkcik7 CisKKwlrdm1pX3NldHVwX2V2ZW50X2NvbW1vbigmY29tbW9uLCBLVk1JX0VWRU5UX1VOSE9PSywg MCk7CisKKwlyZXR1cm4ga3ZtaV9zb2NrX3dyaXRlKGlrdm0sIHZlYywgbiwgbXNnX3NpemUpOwor fQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFs aXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlv bi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8v dmlydHVhbGl6YXRpb24=