From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 10/92] kvm: introspection: add KVMI_CONTROL_VM_EVENTS Date: Fri, 9 Aug 2019 18:59:25 +0300 Message-ID: <20190809160047.8319-11-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 Tm8gaW50cm9zcGVjdGlvbiBldmVudCAobmVpdGhlciBWTSBldmVudCwgbm9yIHZDUFUgZXZlbnQp IHdpbGwgYmUgc2VudAp0byB0aGUgaW50cm9zcGVjdGlvbiB0b29sIHVubGVzcyBlbmFibGVkL3Jl cXVlc3RlZC4KClRoaXMgY29tbWFuZCBlbmFibGVzL2Rpc2FibGVzIFZNIGV2ZW50cy4gRm9yIG5v dywgdGhlc2UgZXZlbnRzIGFyZToKCiAgKiBLVk1JX0VWRU5UX1VOSE9PSwogICogS1ZNSV9FVkVO VF9DUkVBVEVfVkNQVQoKVGhlIGZpcnN0IGV2ZW50IGlzIGluaXRpYXRlZCBieSB1c2Vyc3BhY2Uv UUVNVSBpbiBvcmRlciB0byBnaXZlIHRoZQppbnRyb3NwZWN0aW9uIHRvb2wgYSBjaGFuY2UgdG8g cmVtb3ZlIGl0cyBob29rcyBpbiB0aGUgZXZlbnQgb2YKcGF1c2Uvc3VzcGVuZC9taWdyYXRlLgoK VGhlIHNlY29uZCBldmVudCBpcyBhY3R1YWxseSBhIHZDUFUgZXZlbnQsIGFkZGVkIHRvIGNvdmVy IHRoZSBjYXNlIHdoZW4KdGhlIGludHJvc3BlY3Rpb24gdG9vbCBoYXMgcGF1c2VkIGFsbCB2Q1BV cyBhbmQgdXNlcnNwYWNlIGhvdHBsdWdzIChhbmQKc3RhcnRzKSBhbm90aGVyIG9uZS4gVGhlIGV2 ZW50IGlzIGNvbnRyb2xsZWQgYnkgdGhpcyBjb21tYW5kIGJlY2F1c2UgaXRzCnN0YXR1cyAoZW5h YmxlZC9kaXNhYmxlZCkgaXMga2VwdCBpbiB0aGUgVk0gcmVsYXRlZCBzdHJ1Y3R1cmVzIChhcyBv cHBvc2VkCnRvIHZDUFUgcmVsYXRlZCBzdHJ1Y3R1cmVzKS4gSSBkaWRuJ3QgaGFkIGEgYmV0dGVy IGlkZWEuIE5vdCB0byBtZW50aW9uCnRoYXQsIHRoZSB2Q1BVIGV2ZW50cyBhcmUgY29udHJvbGxl ZCB3aXRoIGNvbW1hbmRzIGxpa2UgImVuYWJsZS9kaXNhYmxlCmV2ZW50IFggZm9yIHZDUFUgWSIg YW5kIFkgaXMgX3Vua25vd25fIGZvciBYPUtWTUlfRVZFTlRfQ1JFQVRFX1ZDUFUuCgpTaWduZWQt b2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRkZWZlbmRlci5jb20+Ci0tLQogRG9j dW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCB8IDM5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCAgICAgICAgICB8ICA3ICsrKysr KwogdmlydC9rdm0va3ZtaS5jICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKwogdmly dC9rdm0va3ZtaV9pbnQuaCAgICAgICAgICAgICAgICB8ICAzICsrKwogdmlydC9rdm0va3ZtaV9t c2cuYyAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFu Z2VkLCA4MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFs L2t2bS9rdm1pLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKaW5kZXgg MmZiZTdjMjhlNGYxLi5hNjYwZGVmMjBiMjMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmly dHVhbC9rdm0va3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJz dApAQCAtMzgwLDMgKzM4MCw0MiBAQCBUaGlzIGNvbW1hbmQgaXMgYWx3YXlzIGFsbG93ZWQuCiAJ fTsKIAogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG9ubGluZSB2Q1BVcy4KKworNi4gS1ZNSV9DT05U Uk9MX1ZNX0VWRU5UUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6QXJjaGl0ZWN0dXJl czogYWxsCis6VmVyc2lvbnM6ID49IDEKKzpQYXJhbWV0ZXJzOgorCis6OgorCisJc3RydWN0IGt2 bWlfY29udHJvbF92bV9ldmVudHMgeworCQlfX3UxNiBldmVudF9pZDsKKwkJX191OCBlbmFibGU7 CisJCV9fdTggcGFkZGluZzE7CisJCV9fdTMyIHBhZGRpbmcyOworCX07CisKKzpSZXR1cm5zOgor Cis6OgorCisJc3RydWN0IGt2bWlfZXJyb3JfY29kZQorCitFbmFibGVzL2Rpc2FibGVzIFZNIGlu dHJvc3BlY3Rpb24gZXZlbnRzLiBUaGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQgd2l0aAordGhlIGZv bGxvd2luZyBldmVudHM6OgorCisJS1ZNSV9FVkVOVF9DUkVBVEVfVkNQVQorCUtWTUlfRVZFTlRf VU5IT09LCisKK1doZW4gYW4gZXZlbnQgaXMgZW5hYmxlZCwgdGhlIGludHJvc3BlY3Rpb24gdG9v bCBpcyBub3RpZmllZCBhbmQsCitpbiBhbG1vc3QgYWxsIGNhc2VzLCBpdCBtdXN0IHJlcGx5IHdp dGg6IGNvbnRpbnVlLCByZXRyeSwgY3Jhc2gsIGV0Yy4KKyhzZWUgKipFdmVudHMqKiBiZWxvdyku CisKKzpFcnJvcnM6CisKKyogLUtWTV9FSU5WQUwgLSB0aGUgZXZlbnQgSUQgaXMgaW52YWxpZAor KiAtS1ZNX0VJTlZBTCAtIHBhZGRpbmcgaXMgbm90IHplcm8KKyogLUtWTV9FUEVSTSAtIHRoZSBh Y2Nlc3MgaXMgcmVzdHJpY3RlZCBieSB0aGUgaG9zdAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvbGludXgva3ZtaS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaAppbmRleCAzNjdjOGVj MjhmNzUuLmZmMzVmYWFiYjdlZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bWku aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCkBAIC0xMDcsNCArMTA3LDExIEBAIHN0 cnVjdCBrdm1pX2dldF9ndWVzdF9pbmZvX3JlcGx5IHsKIAlfX3UzMiBwYWRkaW5nWzNdOwogfTsK IAorc3RydWN0IGt2bWlfY29udHJvbF92bV9ldmVudHMgeworCV9fdTE2IGV2ZW50X2lkOworCV9f dTggZW5hYmxlOworCV9fdTggcGFkZGluZzE7CisJX191MzIgcGFkZGluZzI7Cit9OworCiAjZW5k aWYgLyogX1VBUElfX0xJTlVYX0tWTUlfSCAqLwpkaWZmIC0tZ2l0IGEvdmlydC9rdm0va3ZtaS5j IGIvdmlydC9rdm0va3ZtaS5jCmluZGV4IGRjMWJiODMyNjc2My4uOTYxZTZjYzEzZmI2IDEwMDY0 NAotLS0gYS92aXJ0L2t2bS9rdm1pLmMKKysrIGIvdmlydC9rdm0va3ZtaS5jCkBAIC0zMzgsNiAr MzM4LDE3IEBAIHZvaWQga3ZtaV9kZXN0cm95X3ZtKHN0cnVjdCBrdm0gKmt2bSkKIAl3YWl0X2Zv cl9jb21wbGV0aW9uX2tpbGxhYmxlKCZrdm0tPmt2bWlfY29tcGxldGVkKTsKIH0KIAoraW50IGt2 bWlfY21kX2NvbnRyb2xfdm1fZXZlbnRzKHN0cnVjdCBrdm1pICppa3ZtLCB1bnNpZ25lZCBpbnQg ZXZlbnRfaWQsCisJCQkgICAgICAgYm9vbCBlbmFibGUpCit7CisJaWYgKGVuYWJsZSkKKwkJc2V0 X2JpdChldmVudF9pZCwgaWt2bS0+dm1fZXZfbWFzayk7CisJZWxzZQorCQljbGVhcl9iaXQoZXZl bnRfaWQsIGlrdm0tPnZtX2V2X21hc2spOworCisJcmV0dXJuIDA7Cit9CisKIGludCBrdm1pX2lv Y3RsX3VuaG9vayhzdHJ1Y3Qga3ZtICprdm0sIGJvb2wgZm9yY2VfcmVzZXQpCiB7CiAJc3RydWN0 IGt2bWkgKmlrdm07CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1pX2ludC5oIGIvdmlydC9rdm0v a3ZtaV9pbnQuaAppbmRleCAxNTdmNzY1ZmIzNGQuLjg0YmE0M2JkOWE5ZCAxMDA2NDQKLS0tIGEv dmlydC9rdm0va3ZtaV9pbnQuaAorKysgYi92aXJ0L2t2bS9rdm1pX2ludC5oCkBAIC04NSw2ICs4 NSw3IEBAIHN0cnVjdCBrdm1pIHsKIAogCURFQ0xBUkVfQklUTUFQKGNtZF9hbGxvd19tYXNrLCBL Vk1JX05VTV9DT01NQU5EUyk7CiAJREVDTEFSRV9CSVRNQVAoZXZlbnRfYWxsb3dfbWFzaywgS1ZN SV9OVU1fRVZFTlRTKTsKKwlERUNMQVJFX0JJVE1BUCh2bV9ldl9tYXNrLCBLVk1JX05VTV9FVkVO VFMpOwogCiAJYm9vbCBjbWRfcmVwbHlfZGlzYWJsZWQ7CiB9OwpAQCAtOTksNSArMTAwLDcgQEAg Ym9vbCBrdm1pX21zZ19wcm9jZXNzKHN0cnVjdCBrdm1pICppa3ZtKTsKIHZvaWQgKmt2bWlfbXNn X2FsbG9jKHZvaWQpOwogdm9pZCAqa3ZtaV9tc2dfYWxsb2NfY2hlY2soc2l6ZV90IHNpemUpOwog dm9pZCBrdm1pX21zZ19mcmVlKHZvaWQgKmFkZHIpOworaW50IGt2bWlfY21kX2NvbnRyb2xfdm1f ZXZlbnRzKHN0cnVjdCBrdm1pICppa3ZtLCB1bnNpZ25lZCBpbnQgZXZlbnRfaWQsCisJCQkgICAg ICAgYm9vbCBlbmFibGUpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2bWlfbXNn LmMgYi92aXJ0L2t2bS9rdm1pX21zZy5jCmluZGV4IGNmOGExMjBiMGVhZS4uYTU1YzllMzViZTM2 IDEwMDY0NAotLS0gYS92aXJ0L2t2bS9rdm1pX21zZy5jCisrKyBiL3ZpcnQva3ZtL2t2bWlfbXNn LmMKQEAgLTEyLDYgKzEyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG1zZ19JRHNbXSA9 IHsKIAlbS1ZNSV9DSEVDS19DT01NQU5EXSAgICAgICAgID0gIktWTUlfQ0hFQ0tfQ09NTUFORCIs CiAJW0tWTUlfQ0hFQ0tfRVZFTlRdICAgICAgICAgICA9ICJLVk1JX0NIRUNLX0VWRU5UIiwKIAlb S1ZNSV9DT05UUk9MX0NNRF9SRVNQT05TRV0gID0gIktWTUlfQ09OVFJPTF9DTURfUkVTUE9OU0Ui LAorCVtLVk1JX0NPTlRST0xfVk1fRVZFTlRTXSAgICAgPSAiS1ZNSV9DT05UUk9MX1ZNX0VWRU5U UyIsCiAJW0tWTUlfR0VUX0dVRVNUX0lORk9dICAgICAgICA9ICJLVk1JX0dFVF9HVUVTVF9JTkZP IiwKIAlbS1ZNSV9HRVRfVkVSU0lPTl0gICAgICAgICAgID0gIktWTUlfR0VUX1ZFUlNJT04iLAog fTsKQEAgLTIyNiw2ICsyMjcsMjcgQEAgc3RhdGljIGludCBoYW5kbGVfZ2V0X2d1ZXN0X2luZm8o c3RydWN0IGt2bWkgKmlrdm0sCiAJcmV0dXJuIGt2bWlfbXNnX3ZtX21heWJlX3JlcGx5KGlrdm0s IG1zZywgMCwgJnJwbCwgc2l6ZW9mKHJwbCkpOwogfQogCitzdGF0aWMgaW50IGhhbmRsZV9jb250 cm9sX3ZtX2V2ZW50cyhzdHJ1Y3Qga3ZtaSAqaWt2bSwKKwkJCQkgICAgY29uc3Qgc3RydWN0IGt2 bWlfbXNnX2hkciAqbXNnLAorCQkJCSAgICBjb25zdCB2b2lkICpfcmVxKQoreworCWNvbnN0IHVu c2lnbmVkIGxvbmcga25vd25fZXZlbnRzID0gS1ZNSV9LTk9XTl9WTV9FVkVOVFM7CisJY29uc3Qg c3RydWN0IGt2bWlfY29udHJvbF92bV9ldmVudHMgKnJlcSA9IF9yZXE7CisJaW50IGVjOworCisJ aWYgKHJlcS0+cGFkZGluZzEgfHwgcmVxLT5wYWRkaW5nMikKKwkJZWMgPSAtS1ZNX0VJTlZBTDsK KwllbHNlIGlmICghdGVzdF9iaXQocmVxLT5ldmVudF9pZCwgJmtub3duX2V2ZW50cykpCisJCWVj ID0gLUtWTV9FSU5WQUw7CisJZWxzZSBpZiAoIWlzX2V2ZW50X2FsbG93ZWQoaWt2bSwgcmVxLT5l dmVudF9pZCkpCisJCWVjID0gLUtWTV9FUEVSTTsKKwllbHNlCisJCWVjID0ga3ZtaV9jbWRfY29u dHJvbF92bV9ldmVudHMoaWt2bSwgcmVxLT5ldmVudF9pZCwKKwkJCQkJCXJlcS0+ZW5hYmxlKTsK KworCXJldHVybiBrdm1pX21zZ192bV9tYXliZV9yZXBseShpa3ZtLCBtc2csIGVjLCBOVUxMLCAw KTsKK30KKwogc3RhdGljIGludCBoYW5kbGVfY29udHJvbF9jbWRfcmVzcG9uc2Uoc3RydWN0IGt2 bWkgKmlrdm0sCiAJCQkJCWNvbnN0IHN0cnVjdCBrdm1pX21zZ19oZHIgKm1zZywKIAkJCQkJY29u c3Qgdm9pZCAqX3JlcSkKQEAgLTI1OSw2ICsyODEsNyBAQCBzdGF0aWMgaW50KCpjb25zdCBtc2df dm1bXSkoc3RydWN0IGt2bWkgKiwgY29uc3Qgc3RydWN0IGt2bWlfbXNnX2hkciAqLAogCVtLVk1J X0NIRUNLX0NPTU1BTkRdICAgICAgICAgPSBoYW5kbGVfY2hlY2tfY29tbWFuZCwKIAlbS1ZNSV9D SEVDS19FVkVOVF0gICAgICAgICAgID0gaGFuZGxlX2NoZWNrX2V2ZW50LAogCVtLVk1JX0NPTlRS T0xfQ01EX1JFU1BPTlNFXSAgPSBoYW5kbGVfY29udHJvbF9jbWRfcmVzcG9uc2UsCisJW0tWTUlf Q09OVFJPTF9WTV9FVkVOVFNdICAgICA9IGhhbmRsZV9jb250cm9sX3ZtX2V2ZW50cywKIAlbS1ZN SV9HRVRfR1VFU1RfSU5GT10gICAgICAgID0gaGFuZGxlX2dldF9ndWVzdF9pbmZvLAogCVtLVk1J X0dFVF9WRVJTSU9OXSAgICAgICAgICAgPSBoYW5kbGVfZ2V0X3ZlcnNpb24sCiB9OwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBt YWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0 cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6 YXRpb24=