From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 08/92] kvm: introspection: add KVMI_CHECK_COMMAND and KVMI_CHECK_EVENT Date: Fri, 9 Aug 2019 18:59:23 +0300 Message-ID: <20190809160047.8319-9-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 VGhlc2UgY29tbWFuZHMgY2FuIGJlIHVzZWQgYnkgdGhlIGludHJvc3BlY3Rpb24gdG9vbCB0byBj aGVjayB3aGF0CmludHJvc3BlY3Rpb24gY29tbWFuZHMgYW5kIGV2ZW50cyBhcmUgc3VwcG9ydGVk IChieSBLVk1pKSBhbmQgYWxsb3dlZAooYnkgdXNlcnNwYWNlL1FFTVUpLgoKVGhlIGludHJvc3Bl Y3Rpb24gdG9vbCB3aWxsIGdldCBvbmUgb2YgdGhlIGZvbGxvd2luZyBlcnJvciBjb2RlczoKICAq IC1LVk1fRU9QTk9UU1VQUCAodW5zdXBwb3J0ZWQgY29tbWFuZC9ldmVudCkKICAqIC1LVk1fUEVS TSAoZGlzYWxsb3dlZCBjb21tYW5kL2V2ZW50KQogICogLUtWTV9FSU5WQUwgKHRoZSBwYWRkaW5n IHNwYWNlLCB1c2VkIGZvciBmdXR1cmUgZXh0ZW5zaW9ucywKICAgICAgICAgICAgICAgICBpcyBu b3QgemVybykKICAqIDAgKHRoZSBjb21tYW5kL2V2ZW50IGlzIHN1cHBvcnRlZCBhbmQgYWxsb3dl ZCkKClRoZXNlIGNvbW1hbmRzIGNhbiBiZSBzZWVuIGFzIGFuIGFsdGVybmF0aXZlIG1ldGhvZCB0 byBLVk1JX0dFVF9WRVJTSU9OCmluIGNoZWNraW5nIGlmIHRoZSBpbnRyb3NwZWN0aW9uIHN1cHBv cnRzIGEgc3BlY2lmaWMgY29tbWFuZC9ldmVudC4KCkFzIHdpdGggdGhlIEtWTUlfR0VUX1ZFUlNJ T04gY29tbWFuZCwgdGhlc2UgY29tbWFuZHMgY2FuIG5ldmVyIGJlCmRpc2FsbG93ZWQgYnkgdXNl cnNwYWNlL1FFTVUuCgpTaWduZWQtb2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRk ZWZlbmRlci5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCB8IDYw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L2t2bWku aCAgICAgICAgICB8IDEyICsrKysrKwogdmlydC9rdm0va3ZtaS5jICAgICAgICAgICAgICAgICAg ICB8ICA4ICsrKy0KIHZpcnQva3ZtL2t2bWlfbXNnLmMgICAgICAgICAgICAgICAgfCAzOCArKysr KysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJz dCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKaW5kZXggODJkZTQ3NGQ1MTJi Li42MWNmNjlhYTVkMDcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3Zt aS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdApAQCAtMzAyLDMg KzMwMiw2MyBAQCBXaGlsZSB0aGUgY29tbWFuZCByZXBseSBpcyBkaXNhYmxlZDoKICogdGhlIHJl cGx5IHN0YXR1cyBpcyBpZ25vcmVkIGZvciBhbnkgdW5zdXBwb3J0ZWQvdW5rbm93biBvciBkaXNh bGxvd2VkCiAgIGNvbW1hbmRzIChhbmQgYGBzdHJ1Y3Qga3ZtaV9lcnJvcl9jb2RlYGAgd2lsbCBi ZSBzZW50IHdpdGggLUtWTV9FT1BOT1RTVVBQCiAgIG9yIC1LVk1fUEVSTSkuCisKKzMuIEtWTUlf Q0hFQ0tfQ09NTUFORAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzpBcmNoaXRlY3R1cmVzOiBh bGwKKzpWZXJzaW9uczogPj0gMQorOlBhcmFtZXRlcnM6CisKKzo6CisKKwlzdHJ1Y3Qga3ZtaV9j aGVja19jb21tYW5kIHsKKwkJX191MTYgaWQ7CisJCV9fdTE2IHBhZGRpbmcxOworCQlfX3UzMiBw YWRkaW5nMjsKKwl9OworCis6UmV0dXJuczoKKworOjoKKworCXN0cnVjdCBrdm1pX2Vycm9yX2Nv ZGU7CisKK0NoZWNrcyBpZiB0aGUgY29tbWFuZCBzcGVjaWZpZWQgYnkgYGBpZGBgIGlzIGFsbG93 ZWQuCisKK1RoaXMgY29tbWFuZCBpcyBhbHdheXMgYWxsb3dlZC4KKworOkVycm9yczoKKworKiAt S1ZNX1BFUk0gLSB0aGUgY29tbWFuZCBzcGVjaWZpZWQgYnkgYGBpZGBgIGlzIGRpc2FsbG93ZWQK KyogLUtWTV9FSU5WQUwgLSBwYWRkaW5nIGlzIG5vdCB6ZXJvCisKKzQuIEtWTUlfQ0hFQ0tfRVZF TlQKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworOkFyY2hpdGVjdHVyZXM6IGFsbAorOlZlcnNpb25z OiA+PSAxCis6UGFyYW1ldGVyczoKKworOjoKKworCXN0cnVjdCBrdm1pX2NoZWNrX2V2ZW50IHsK KwkJX191MTYgaWQ7CisJCV9fdTE2IHBhZGRpbmcxOworCQlfX3UzMiBwYWRkaW5nMjsKKwl9Owor Cis6UmV0dXJuczoKKworOjoKKworCXN0cnVjdCBrdm1pX2Vycm9yX2NvZGU7CisKK0NoZWNrcyBp ZiB0aGUgZXZlbnQgc3BlY2lmaWVkIGJ5IGBgaWRgYCBpcyBhbGxvd2VkLgorCitUaGlzIGNvbW1h bmQgaXMgYWx3YXlzIGFsbG93ZWQuCisKKzpFcnJvcnM6CisKKyogLUtWTV9QRVJNIC0gdGhlIGV2 ZW50IHNwZWNpZmllZCBieSBgYGlkYGAgaXMgZGlzYWxsb3dlZAorKiAtS1ZNX0VJTlZBTCAtIHBh ZGRpbmcgaXMgbm90IHplcm8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgg Yi9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCmluZGV4IGExYWIzOWM1YjhlMC4uNzM5MDMwMzM3 MWM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCisrKyBiL2luY2x1ZGUv dWFwaS9saW51eC9rdm1pLmgKQEAgLTkwLDQgKzkwLDE2IEBAIHN0cnVjdCBrdm1pX2NvbnRyb2xf Y21kX3Jlc3BvbnNlIHsKIAlfX3UzMiBwYWRkaW5nMjsKIH07CiAKK3N0cnVjdCBrdm1pX2NoZWNr X2NvbW1hbmQgeworCV9fdTE2IGlkOworCV9fdTE2IHBhZGRpbmcxOworCV9fdTMyIHBhZGRpbmcy OworfTsKKworc3RydWN0IGt2bWlfY2hlY2tfZXZlbnQgeworCV9fdTE2IGlkOworCV9fdTE2IHBh ZGRpbmcxOworCV9fdTMyIHBhZGRpbmcyOworfTsKKwogI2VuZGlmIC8qIF9VQVBJX19MSU5VWF9L Vk1JX0ggKi8KZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2bWkuYyBiL3ZpcnQva3ZtL2t2bWkuYwpp bmRleCBkNWI2YWYyMTU2NGUuLmRjMWJiODMyNjc2MyAxMDA2NDQKLS0tIGEvdmlydC9rdm0va3Zt aS5jCisrKyBiL3ZpcnQva3ZtL2t2bWkuYwpAQCAtNjksNiArNjksOCBAQCBzdGF0aWMgYm9vbCBh bGxvY19rdm1pKHN0cnVjdCBrdm0gKmt2bSwgY29uc3Qgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9u ICpxZW11KQogCQlyZXR1cm4gZmFsc2U7CiAKIAlzZXRfYml0KEtWTUlfR0VUX1ZFUlNJT04sIGlr dm0tPmNtZF9hbGxvd19tYXNrKTsKKwlzZXRfYml0KEtWTUlfQ0hFQ0tfQ09NTUFORCwgaWt2bS0+ Y21kX2FsbG93X21hc2spOworCXNldF9iaXQoS1ZNSV9DSEVDS19FVkVOVCwgaWt2bS0+Y21kX2Fs bG93X21hc2spOwogCiAJbWVtY3B5KCZpa3ZtLT51dWlkLCAmcWVtdS0+dXVpZCwgc2l6ZW9mKGlr dm0tPnV1aWQpKTsKIApAQCAtMjk1LDEwICsyOTcsMTQgQEAgaW50IGt2bWlfaW9jdGxfY29tbWFu ZChzdHJ1Y3Qga3ZtICprdm0sIHZvaWQgX191c2VyICphcmdwKQogCWlmICghYWxsb3cpIHsKIAkJ REVDTEFSRV9CSVRNQVAoYWx3YXlzX2FsbG93ZWQsIEtWTUlfTlVNX0NPTU1BTkRTKTsKIAotCQlp ZiAoaWQgPT0gS1ZNSV9HRVRfVkVSU0lPTikKKwkJaWYgKGlkID09IEtWTUlfR0VUX1ZFUlNJT04K KwkJCQl8fCBpZCA9PSBLVk1JX0NIRUNLX0NPTU1BTkQKKwkJCQl8fCBpZCA9PSBLVk1JX0NIRUNL X0VWRU5UKQogCQkJcmV0dXJuIC1FUEVSTTsKIAogCQlzZXRfYml0KEtWTUlfR0VUX1ZFUlNJT04s IGFsd2F5c19hbGxvd2VkKTsKKwkJc2V0X2JpdChLVk1JX0NIRUNLX0NPTU1BTkQsIGFsd2F5c19h bGxvd2VkKTsKKwkJc2V0X2JpdChLVk1JX0NIRUNLX0VWRU5ULCBhbHdheXNfYWxsb3dlZCk7CiAK IAkJYml0bWFwX2FuZG5vdChyZXF1ZXN0ZWQsIHJlcXVlc3RlZCwgYWx3YXlzX2FsbG93ZWQsCiAJ CQkgICAgICBLVk1JX05VTV9DT01NQU5EUyk7CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1pX21z Zy5jIGIvdmlydC9rdm0va3ZtaV9tc2cuYwppbmRleCAyMjM3YTZlZDI1ZjYuLmUyNDk5NjYxMWUz YSAxMDA2NDQKLS0tIGEvdmlydC9rdm0va3ZtaV9tc2cuYworKysgYi92aXJ0L2t2bS9rdm1pX21z Zy5jCkBAIC05LDYgKzksOCBAQAogI2luY2x1ZGUgImt2bWlfaW50LmgiCiAKIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBtc2dfSURzW10gPSB7CisJW0tWTUlfQ0hFQ0tfQ09NTUFORF0gICAgICAg ICA9ICJLVk1JX0NIRUNLX0NPTU1BTkQiLAorCVtLVk1JX0NIRUNLX0VWRU5UXSAgICAgICAgICAg PSAiS1ZNSV9DSEVDS19FVkVOVCIsCiAJW0tWTUlfQ09OVFJPTF9DTURfUkVTUE9OU0VdICA9ICJL Vk1JX0NPTlRST0xfQ01EX1JFU1BPTlNFIiwKIAlbS1ZNSV9HRVRfVkVSU0lPTl0gICAgICAgICAg ID0gIktWTUlfR0VUX1ZFUlNJT04iLAogfTsKQEAgLTE3Nyw2ICsxNzksNDAgQEAgc3RhdGljIGJv b2wgaXNfY29tbWFuZF9hbGxvd2VkKHN0cnVjdCBrdm1pICppa3ZtLCBpbnQgaWQpCiAJcmV0dXJu IHRlc3RfYml0KGlkLCBpa3ZtLT5jbWRfYWxsb3dfbWFzayk7CiB9CiAKK3N0YXRpYyBpbnQgaGFu ZGxlX2NoZWNrX2NvbW1hbmQoc3RydWN0IGt2bWkgKmlrdm0sCisJCQkJY29uc3Qgc3RydWN0IGt2 bWlfbXNnX2hkciAqbXNnLAorCQkJCWNvbnN0IHZvaWQgKl9yZXEpCit7CisJY29uc3Qgc3RydWN0 IGt2bWlfY2hlY2tfY29tbWFuZCAqcmVxID0gX3JlcTsKKwlpbnQgZWMgPSAwOworCisJaWYgKHJl cS0+cGFkZGluZzEgfHwgcmVxLT5wYWRkaW5nMikKKwkJZWMgPSAtS1ZNX0VJTlZBTDsKKwllbHNl IGlmICghaXNfY29tbWFuZF9hbGxvd2VkKGlrdm0sIHJlcS0+aWQpKQorCQllYyA9IC1LVk1fRVBF Uk07CisKKwlyZXR1cm4ga3ZtaV9tc2dfdm1fbWF5YmVfcmVwbHkoaWt2bSwgbXNnLCBlYywgTlVM TCwgMCk7Cit9CisKK3N0YXRpYyBib29sIGlzX2V2ZW50X2FsbG93ZWQoc3RydWN0IGt2bWkgKmlr dm0sIGludCBpZCkKK3sKKwlyZXR1cm4gdGVzdF9iaXQoaWQsIGlrdm0tPmV2ZW50X2FsbG93X21h c2spOworfQorCitzdGF0aWMgaW50IGhhbmRsZV9jaGVja19ldmVudChzdHJ1Y3Qga3ZtaSAqaWt2 bSwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBrdm1pX21zZ19oZHIgKm1zZywgY29uc3Qgdm9pZCAq X3JlcSkKK3sKKwljb25zdCBzdHJ1Y3Qga3ZtaV9jaGVja19ldmVudCAqcmVxID0gX3JlcTsKKwlp bnQgZWMgPSAwOworCisJaWYgKHJlcS0+cGFkZGluZzEgfHwgcmVxLT5wYWRkaW5nMikKKwkJZWMg PSAtS1ZNX0VJTlZBTDsKKwllbHNlIGlmICghaXNfZXZlbnRfYWxsb3dlZChpa3ZtLCByZXEtPmlk KSkKKwkJZWMgPSAtS1ZNX0VQRVJNOworCisJcmV0dXJuIGt2bWlfbXNnX3ZtX21heWJlX3JlcGx5 KGlrdm0sIG1zZywgZWMsIE5VTEwsIDApOworfQorCiBzdGF0aWMgaW50IGhhbmRsZV9jb250cm9s X2NtZF9yZXNwb25zZShzdHJ1Y3Qga3ZtaSAqaWt2bSwKIAkJCQkJY29uc3Qgc3RydWN0IGt2bWlf bXNnX2hkciAqbXNnLAogCQkJCQljb25zdCB2b2lkICpfcmVxKQpAQCAtMjA3LDYgKzI0Myw4IEBA IHN0YXRpYyBpbnQgaGFuZGxlX2NvbnRyb2xfY21kX3Jlc3BvbnNlKHN0cnVjdCBrdm1pICppa3Zt LAogICovCiBzdGF0aWMgaW50KCpjb25zdCBtc2dfdm1bXSkoc3RydWN0IGt2bWkgKiwgY29uc3Qg c3RydWN0IGt2bWlfbXNnX2hkciAqLAogCQkJICAgIGNvbnN0IHZvaWQgKikgPSB7CisJW0tWTUlf Q0hFQ0tfQ09NTUFORF0gICAgICAgICA9IGhhbmRsZV9jaGVja19jb21tYW5kLAorCVtLVk1JX0NI RUNLX0VWRU5UXSAgICAgICAgICAgPSBoYW5kbGVfY2hlY2tfZXZlbnQsCiAJW0tWTUlfQ09OVFJP TF9DTURfUkVTUE9OU0VdICA9IGhhbmRsZV9jb250cm9sX2NtZF9yZXNwb25zZSwKIAlbS1ZNSV9H RVRfVkVSU0lPTl0gICAgICAgICAgID0gaGFuZGxlX2dldF92ZXJzaW9uLAogfTsKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFp bGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBz Oi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0 aW9u