From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 29/92] kvm: introspection: add KVMI_CONTROL_EVENTS Date: Fri, 9 Aug 2019 18:59:44 +0300 Message-ID: <20190809160047.8319-30-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 RnJvbTogTWloYWkgRG9uyJt1IDxtZG9udHVAYml0ZGVmZW5kZXIuY29tPgoKVGhpcyBjb21tYW5k IGVuYWJsZXMvZGlzYWJsZXMgdkNQVSBpbnRyb3NwZWN0aW9uIGV2ZW50cy4KClNpZ25lZC1vZmYt Ynk6IE1paGFpIERvbsibdSA8bWRvbnR1QGJpdGRlZmVuZGVyLmNvbT4KU2lnbmVkLW9mZi1ieTog QWRhbGJlcnQgTGF6xINyIDxhbGF6YXJAYml0ZGVmZW5kZXIuY29tPgotLS0KIERvY3VtZW50YXRp b24vdmlydHVhbC9rdm0va3ZtaS5yc3QgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvdWFwaS9saW51eC9rdm1pLmggICAgICAgICAgfCAgNyArKysrCiB2aXJ0L2t2 bS9rdm1pLmMgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysKIHZpcnQva3ZtL2t2bWlf aW50LmggICAgICAgICAgICAgICAgfCAgNiArKystCiB2aXJ0L2t2bS9rdm1pX21zZy5jICAgICAg ICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnR1 YWwva3ZtL2t2bWkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdAppbmRl eCA3MTg5NzMzOGU4NWEuLjk1NzY0MTgwMmNhYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92 aXJ0dWFsL2t2bS9rdm1pLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2t2bWku cnN0CkBAIC00NTYsNiArNDU2LDU5IEBAIFJldHVybnMgdGhlIFRTQyBmcmVxdWVuY3kgKGluIEha KSBmb3IgdGhlIHNwZWNpZmllZCB2Q1BVIGlmIGF2YWlsYWJsZQogKiAtS1ZNX0VJTlZBTCAtIHBh ZGRpbmcgaXMgbm90IHplcm8KICogLUtWTV9FQUdBSU4gLSB0aGUgc2VsZWN0ZWQgdkNQVSBjYW4n dCBiZSBpbnRyb3NwZWN0ZWQgeWV0CiAKKzguIEtWTUlfQ09OVFJPTF9FVkVOVFMKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKworOkFyY2hpdGVjdHVyZXM6IGFsbAorOlZlcnNpb25zOiA+PSAxCis6 UGFyYW1ldGVyczoKKworOjoKKworCXN0cnVjdCBrdm1pX3ZjcHVfaGRyOworCXN0cnVjdCBrdm1p X2NvbnRyb2xfZXZlbnRzIHsKKwkJX191MTYgZXZlbnRfaWQ7CisJCV9fdTggZW5hYmxlOworCQlf X3U4IHBhZGRpbmcxOworCQlfX3UzMiBwYWRkaW5nMjsKKwl9OworCis6UmV0dXJuczoKKworOjoK KworCXN0cnVjdCBrdm1pX2Vycm9yX2NvZGUKKworRW5hYmxlcy9kaXNhYmxlcyB2Q1BVIGludHJv c3BlY3Rpb24gZXZlbnRzLiBUaGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQgd2l0aAordGhlIGZvbGxv d2luZyBldmVudHM6OgorCisJS1ZNSV9FVkVOVF9DUgorCUtWTUlfRVZFTlRfTVNSCisJS1ZNSV9F VkVOVF9YU0VUQlYKKwlLVk1JX0VWRU5UX0JSRUFLUE9JTlQKKwlLVk1JX0VWRU5UX0hZUEVSQ0FM TAorCUtWTUlfRVZFTlRfUEYKKwlLVk1JX0VWRU5UX1RSQVAKKwlLVk1JX0VWRU5UX0RFU0NSSVBU T1IKKwlLVk1JX0VWRU5UX1NJTkdMRVNURVAKKworV2hlbiBhbiBldmVudCBpcyBlbmFibGVkLCB0 aGUgaW50cm9zcGVjdGlvbiB0b29sIGlzIG5vdGlmaWVkIGFuZCBpdAorbXVzdCByZXBseSB3aXRo OiBjb250aW51ZSwgcmV0cnksIGNyYXNoLCBldGMuIChzZWUgKipFdmVudHMqKiBiZWxvdykuCisK K1RoZSAqS1ZNSV9FVkVOVF9QQVVTRV9WQ1BVKiBldmVudCBpcyBhbHdheXMgYWxsb3dlZCwKK2Jl Y2F1c2UgaXQgaXMgdHJpZ2dlcmVkIGJ5IHRoZSAqS1ZNSV9QQVVTRV9WQ1BVKiBjb21tYW5kLgor VGhlICpLVk1JX0VWRU5UX0NSRUFURV9WQ1BVKiBhbmQgKktWTUlfRVZFTlRfVU5IT09LKiBldmVu dHMgYXJlIGNvbnRyb2xsZWQKK2J5IHRoZSAqS1ZNSV9DT05UUk9MX1ZNX0VWRU5UUyogY29tbWFu ZC4KKworOkVycm9yczoKKworKiAtS1ZNX0VJTlZBTCAtIHRoZSBzZWxlY3RlZCB2Q1BVIGlzIGlu dmFsaWQKKyogLUtWTV9FSU5WQUwgLSB0aGUgZXZlbnQgSUQgaXMgaW52YWxpZAorKiAtS1ZNX0VJ TlZBTCAtIHBhZGRpbmcgaXMgbm90IHplcm8KKyogLUtWTV9FQUdBSU4gLSB0aGUgc2VsZWN0ZWQg dkNQVSBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQgeWV0CisqIC1LVk1fRVBFUk0gLSB0aGUgYWNjZXNz IGlzIHJlc3RyaWN0ZWQgYnkgdGhlIGhvc3QKKyogLUtWTV9FT1BOT1RTVVBQIC0gb25lIHRoZSBl dmVudHMgY2FuJ3QgYmUgaW50ZXJjZXB0ZWQgaW4gdGhlIGN1cnJlbnQgc2V0dXAKKwogRXZlbnRz CiA9PT09PT0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9rdm1pLmgKaW5kZXggYzU2ZTY3NmRkYjJiLi45MzRjMDYxMDE0MGEgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L2t2bWkuaApAQCAtMTIwLDYgKzEyMCwxMyBAQCBzdHJ1Y3Qga3ZtaV9nZXRfdmNwdV9pbmZv X3JlcGx5IHsKIAlfX3U2NCB0c2Nfc3BlZWQ7CiB9OwogCitzdHJ1Y3Qga3ZtaV9jb250cm9sX2V2 ZW50cyB7CisJX191MTYgZXZlbnRfaWQ7CisJX191OCBlbmFibGU7CisJX191OCBwYWRkaW5nMTsK KwlfX3UzMiBwYWRkaW5nMjsKK307CisKIHN0cnVjdCBrdm1pX2NvbnRyb2xfdm1fZXZlbnRzIHsK IAlfX3UxNiBldmVudF9pZDsKIAlfX3U4IGVuYWJsZTsKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2 bWkuYyBiL3ZpcnQva3ZtL2t2bWkuYwppbmRleCA1Y2JjODJiMjg0ZjQuLjE0OTYzNDc0NjE3ZSAx MDA2NDQKLS0tIGEvdmlydC9rdm0va3ZtaS5jCisrKyBiL3ZpcnQva3ZtL2t2bWkuYwpAQCAtOTY5 LDYgKzk2OSwxOSBAQCB2b2lkIGt2bWlfaGFuZGxlX3JlcXVlc3RzKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSkKIAlrdm1pX3B1dCh2Y3B1LT5rdm0pOwogfQogCitpbnQga3ZtaV9jbWRfY29udHJvbF9l dmVudHMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgZXZlbnRfaWQsCisJCQkg ICAgYm9vbCBlbmFibGUpCit7CisJc3RydWN0IGt2bWlfdmNwdSAqaXZjcHUgPSBJVkNQVSh2Y3B1 KTsKKworCWlmIChlbmFibGUpCisJCXNldF9iaXQoZXZlbnRfaWQsIGl2Y3B1LT5ldl9tYXNrKTsK KwllbHNlCisJCWNsZWFyX2JpdChldmVudF9pZCwgaXZjcHUtPmV2X21hc2spOworCisJcmV0dXJu IDA7Cit9CisKIGludCBrdm1pX2NtZF9jb250cm9sX3ZtX2V2ZW50cyhzdHJ1Y3Qga3ZtaSAqaWt2 bSwgdW5zaWduZWQgaW50IGV2ZW50X2lkLAogCQkJICAgICAgIGJvb2wgZW5hYmxlKQogewpkaWZm IC0tZ2l0IGEvdmlydC9rdm0va3ZtaV9pbnQuaCBiL3ZpcnQva3ZtL2t2bWlfaW50LmgKaW5kZXgg ZDc5ODkwOGQwZjcwLi5jMDA0NGNhZTgwODkgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2t2bWlfaW50 LmgKKysrIGIvdmlydC9rdm0va3ZtaV9pbnQuaApAQCAtOTUsNiArOTUsOCBAQCBzdHJ1Y3Qga3Zt aV92Y3B1IHsKIAlib29sIHJlcGx5X3dhaXRpbmc7CiAJc3RydWN0IGt2bWlfdmNwdV9yZXBseSBy ZXBseTsKIAorCURFQ0xBUkVfQklUTUFQKGV2X21hc2ssIEtWTUlfTlVNX0VWRU5UUyk7CisKIAlz dHJ1Y3QgbGlzdF9oZWFkIGpvYl9saXN0OwogCXNwaW5sb2NrX3Qgam9iX2xvY2s7CiAKQEAgLTEz MSw3ICsxMzMsNyBAQCBzdHJ1Y3Qga3ZtaV9tZW1fYWNjZXNzIHsKIAogc3RhdGljIGlubGluZSBi b29sIGlzX2V2ZW50X2VuYWJsZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgZXZlbnQpCiB7 Ci0JcmV0dXJuIGZhbHNlOyAvKiBUT0RPICovCisJcmV0dXJuIHRlc3RfYml0KGV2ZW50LCBJVkNQ VSh2Y3B1KS0+ZXZfbWFzayk7CiB9CiAKIC8qIGt2bWlfbXNnLmMgKi8KQEAgLTE0Niw2ICsxNDgs OCBAQCBpbnQga3ZtaV9tc2dfc2VuZF91bmhvb2soc3RydWN0IGt2bWkgKmlrdm0pOwogdm9pZCAq a3ZtaV9tc2dfYWxsb2Modm9pZCk7CiB2b2lkICprdm1pX21zZ19hbGxvY19jaGVjayhzaXplX3Qg c2l6ZSk7CiB2b2lkIGt2bWlfbXNnX2ZyZWUodm9pZCAqYWRkcik7CitpbnQga3ZtaV9jbWRfY29u dHJvbF9ldmVudHMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgZXZlbnRfaWQs CisJCQkgICAgYm9vbCBlbmFibGUpOwogaW50IGt2bWlfY21kX2NvbnRyb2xfdm1fZXZlbnRzKHN0 cnVjdCBrdm1pICppa3ZtLCB1bnNpZ25lZCBpbnQgZXZlbnRfaWQsCiAJCQkgICAgICAgYm9vbCBl bmFibGUpOwogaW50IGt2bWlfcnVuX2pvYnNfYW5kX3dhaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 KTsKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2bWlfbXNnLmMgYi92aXJ0L2t2bS9rdm1pX21zZy5j CmluZGV4IDMzNzJkOGM3ZTc0Zi4uYTNjNjdhZjg2NzRlIDEwMDY0NAotLS0gYS92aXJ0L2t2bS9r dm1pX21zZy5jCisrKyBiL3ZpcnQva3ZtL2t2bWlfbXNnLmMKQEAgLTI0LDYgKzI0LDcgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IG1zZ19JRHNbXSA9IHsKIAlbS1ZNSV9DSEVDS19DT01NQU5E XSAgICAgICAgID0gIktWTUlfQ0hFQ0tfQ09NTUFORCIsCiAJW0tWTUlfQ0hFQ0tfRVZFTlRdICAg ICAgICAgICA9ICJLVk1JX0NIRUNLX0VWRU5UIiwKIAlbS1ZNSV9DT05UUk9MX0NNRF9SRVNQT05T RV0gID0gIktWTUlfQ09OVFJPTF9DTURfUkVTUE9OU0UiLAorCVtLVk1JX0NPTlRST0xfRVZFTlRT XSAgICAgICAgPSAiS1ZNSV9DT05UUk9MX0VWRU5UUyIsCiAJW0tWTUlfQ09OVFJPTF9WTV9FVkVO VFNdICAgICA9ICJLVk1JX0NPTlRST0xfVk1fRVZFTlRTIiwKIAlbS1ZNSV9FVkVOVF0gICAgICAg ICAgICAgICAgID0gIktWTUlfRVZFTlQiLAogCVtLVk1JX0VWRU5UX1JFUExZXSAgICAgICAgICAg PSAiS1ZNSV9FVkVOVF9SRVBMWSIsCkBAIC00MDMsNiArNDA0LDI4IEBAIHN0YXRpYyBpbnQgaGFu ZGxlX2dldF92Y3B1X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCXJldHVybiByZXBseV9j Yih2Y3B1LCBtc2csIDAsICZycGwsIHNpemVvZihycGwpKTsKIH0KIAorc3RhdGljIGludCBoYW5k bGVfY29udHJvbF9ldmVudHMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAorCQkJCSBjb25zdCBzdHJ1 Y3Qga3ZtaV9tc2dfaGRyICptc2csCisJCQkJIGNvbnN0IHZvaWQgKl9yZXEsCisJCQkJIHZjcHVf cmVwbHlfZmN0IHJlcGx5X2NiKQoreworCXVuc2lnbmVkIGxvbmcga25vd25fZXZlbnRzID0gS1ZN SV9LTk9XTl9WQ1BVX0VWRU5UUzsKKwljb25zdCBzdHJ1Y3Qga3ZtaV9jb250cm9sX2V2ZW50cyAq cmVxID0gX3JlcTsKKwlzdHJ1Y3Qga3ZtaSAqaWt2bSA9IElLVk0odmNwdS0+a3ZtKTsKKwlpbnQg ZWM7CisKKwlpZiAocmVxLT5wYWRkaW5nMSB8fCByZXEtPnBhZGRpbmcyKQorCQllYyA9IC1LVk1f RUlOVkFMOworCWVsc2UgaWYgKCF0ZXN0X2JpdChyZXEtPmV2ZW50X2lkLCAma25vd25fZXZlbnRz KSkKKwkJZWMgPSAtS1ZNX0VJTlZBTDsKKwllbHNlIGlmICghaXNfZXZlbnRfYWxsb3dlZChpa3Zt LCByZXEtPmV2ZW50X2lkKSkKKwkJZWMgPSAtS1ZNX0VQRVJNOworCWVsc2UKKwkJZWMgPSBrdm1p X2NtZF9jb250cm9sX2V2ZW50cyh2Y3B1LCByZXEtPmV2ZW50X2lkLCByZXEtPmVuYWJsZSk7CisK KwlyZXR1cm4gcmVwbHlfY2IodmNwdSwgbXNnLCBlYywgTlVMTCwgMCk7Cit9CisKIC8qCiAgKiBU aGVzZSBjb21tYW5kcyBhcmUgZXhlY3V0ZWQgb24gdGhlIHZDUFUgdGhyZWFkLiBUaGUgcmVjZWl2 aW5nIHRocmVhZAogICogcGFzc2VzIHRoZSBtZXNzYWdlcyB1c2luZyBhIG5ld2x5IGFsbG9jYXRl ZCAnc3RydWN0IGt2bWlfdmNwdV9jbWQnCkBAIC00MTIsNiArNDM1LDcgQEAgc3RhdGljIGludCBo YW5kbGVfZ2V0X3ZjcHVfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiBzdGF0aWMgaW50KCpj b25zdCBtc2dfdmNwdVtdKShzdHJ1Y3Qga3ZtX3ZjcHUgKiwKIAkJCSAgICAgIGNvbnN0IHN0cnVj dCBrdm1pX21zZ19oZHIgKiwgY29uc3Qgdm9pZCAqLAogCQkJICAgICAgdmNwdV9yZXBseV9mY3Qp ID0geworCVtLVk1JX0NPTlRST0xfRVZFTlRTXSAgID0gaGFuZGxlX2NvbnRyb2xfZXZlbnRzLAog CVtLVk1JX0VWRU5UX1JFUExZXSAgICAgID0gaGFuZGxlX2V2ZW50X3JlcGx5LAogCVtLVk1JX0dF VF9WQ1BVX0lORk9dICAgID0gaGFuZGxlX2dldF92Y3B1X2luZm8sCiB9OwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5n IGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9s aXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=