From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 59/92] kvm: introspection: add KVMI_EVENT_XSETBV Date: Fri, 9 Aug 2019 19:00:14 +0300 Message-ID: <20190809160047.8319-60-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 RnJvbTogTWloYWkgRG9uyJt1IDxtZG9udHVAYml0ZGVmZW5kZXIuY29tPgoKVGhpcyBldmVudCBp cyBzZW50IHdoZW4gdGhlIGV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIgWENSMCBpcyBnb2luZyB0 bwpiZSBjaGFuZ2VkLgoKU2lnbmVkLW9mZi1ieTogTWloYWkgRG9uyJt1IDxtZG9udHVAYml0ZGVm ZW5kZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRkZWZl bmRlci5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCB8IDI1ICsr KysrKysrKysrKysrKysrKysKIGFyY2gveDg2L2luY2x1ZGUvYXNtL2t2bWlfaG9zdC5oICAgfCAg NSArKysrCiBhcmNoL3g4Ni9rdm0va3ZtaS5jICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBhcmNoL3g4Ni9rdm0veDg2LmMgICAgICAgICAgICAgICAg IHwgIDUgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCBiL0RvY3VtZW50YXRpb24vdmly dHVhbC9rdm0va3ZtaS5yc3QKaW5kZXggZTU4ZjBlMjJmMTg4Li4xZDI0MzE2Mzk3NzAgMTAwNjQ0 Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRh dGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdApAQCAtMTQ0NCwzICsxNDQ0LDI4IEBAIHJlZ2lzdGVy IChzZWUgKipLVk1JX0NPTlRST0xfRVZFTlRTKiopLgogCiBgYGt2bWlfZXZlbnRgYCwgdGhlIE1T UiBudW1iZXIsIHRoZSBvbGQgdmFsdWUgYW5kIHRoZSBuZXcgdmFsdWUgYXJlCiBzZW50IHRvIHRo ZSBpbnRyb3NwZWN0b3IuIFRoZSAqQ09OVElOVUUqIGFjdGlvbiB3aWxsIHNldCB0aGUgYGBuZXdf dmFsYGAuCisKKzguIEtWTUlfRVZFTlRfWFNFVEJWCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6 QXJjaGl0ZWN0dXJlczogeDg2Cis6VmVyc2lvbnM6ID49IDEKKzpBY3Rpb25zOiBDT05USU5VRSwg Q1JBU0gKKzpQYXJhbWV0ZXJzOgorCis6OgorCisJc3RydWN0IGt2bWlfZXZlbnQ7CisKKzpSZXR1 cm5zOgorCis6OgorCisJc3RydWN0IGt2bWlfdmNwdV9oZHI7CisJc3RydWN0IGt2bWlfZXZlbnRf cmVwbHk7CisKK1RoaXMgZXZlbnQgaXMgc2VudCB3aGVuIHRoZSBleHRlbmRlZCBjb250cm9sIHJl Z2lzdGVyIFhDUjAgaXMgZ29pbmcKK3RvIGJlIGNoYW5nZWQgYW5kIHRoZSBpbnRyb3NwZWN0aW9u IGhhcyBiZWVuIGVuYWJsZWQgZm9yIHRoaXMgZXZlbnQKKyhzZWUgKktWTUlfQ09OVFJPTF9FVkVO VFMqKS4KKworYGBrdm1pX2V2ZW50YGAgaXMgc2VudCB0byB0aGUgaW50cm9zcGVjdG9yLgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtaV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9rdm1pX2hvc3QuaAppbmRleCA4NmQ5MGI3YmVkODQuLjNmMDY2ZTdmZWVlMiAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtaV9ob3N0LmgKKysrIGIvYXJjaC94ODYv aW5jbHVkZS9hc20va3ZtaV9ob3N0LmgKQEAgLTE1LDYgKzE1LDcgQEAgYm9vbCBrdm1pX21zcl9l dmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBtc3JfZGF0YSAqbXNyKTsKIGJvb2wg a3ZtaV9tb25pdG9yZWRfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG1zcik7CiBib29s IGt2bWlfY3JfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgY3IsCiAJ CSAgIHVuc2lnbmVkIGxvbmcgb2xkX3ZhbHVlLCB1bnNpZ25lZCBsb25nICpuZXdfdmFsdWUpOwor dm9pZCBrdm1pX3hzZXRidl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCiAjZWxzZSAv KiBDT05GSUdfS1ZNX0lOVFJPU1BFQ1RJT04gKi8KIApAQCAtMzUsNiArMzYsMTAgQEAgc3RhdGlj IGlubGluZSBib29sIGt2bWlfY3JfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25l ZCBpbnQgY3IsCiAJcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBrdm1pX3hz ZXRidl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCit7Cit9CisKICNlbmRpZiAvKiBDT05G SUdfS1ZNX0lOVFJPU1BFQ1RJT04gKi8KIAogI2VuZGlmIC8qIF9BU01fWDg2X0tWTUlfSE9TVF9I ICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0va3ZtaS5jIGIvYXJjaC94ODYva3ZtL2t2bWku YwppbmRleCAwMTE0ZWQ2NmY0ZjMuLjBlOWM5MWQyZjI4MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYv a3ZtL2t2bWkuYworKysgYi9hcmNoL3g4Ni9rdm0va3ZtaS5jCkBAIC0zODksNiArMzg5LDQ1IEBA IGJvb2wga3ZtaV9jcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGludCBj ciwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdTMyIGt2bWlfc2VuZF94c2V0YnYoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1KQoreworCWludCBlcnIsIGFjdGlvbjsKKworCWVyciA9IGt2bWlfc2Vu ZF9ldmVudCh2Y3B1LCBLVk1JX0VWRU5UX1hTRVRCViwgTlVMTCwgMCwKKwkJCSAgICAgIE5VTEws IDAsICZhY3Rpb24pOworCWlmIChlcnIpCisJCXJldHVybiBLVk1JX0VWRU5UX0FDVElPTl9DT05U SU5VRTsKKworCXJldHVybiBhY3Rpb247Cit9CisKK3N0YXRpYyB2b2lkIF9fa3ZtaV94c2V0YnZf ZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQoreworCXUzMiBhY3Rpb247CisKKwlhY3Rpb24g PSBrdm1pX3NlbmRfeHNldGJ2KHZjcHUpOworCXN3aXRjaCAoYWN0aW9uKSB7CisJY2FzZSBLVk1J X0VWRU5UX0FDVElPTl9DT05USU5VRToKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJa3ZtaV9oYW5k bGVfY29tbW9uX2V2ZW50X2FjdGlvbnModmNwdSwgYWN0aW9uLCAiWFNFVEJWIik7CisJfQorfQor Cit2b2lkIGt2bWlfeHNldGJ2X2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1 Y3Qga3ZtaSAqaWt2bTsKKworCWlrdm0gPSBrdm1pX2dldCh2Y3B1LT5rdm0pOworCWlmICghaWt2 bSkKKwkJcmV0dXJuOworCisJaWYgKGlzX2V2ZW50X2VuYWJsZWQodmNwdSwgS1ZNSV9FVkVOVF9Y U0VUQlYpKQorCQlfX2t2bWlfeHNldGJ2X2V2ZW50KHZjcHUpOworCisJa3ZtaV9wdXQodmNwdS0+ a3ZtKTsKK30KKwogYm9vbCBrdm1pX2FyY2hfcGZfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LCBncGFfdCBncGEsIGd2YV90IGd2YSwKIAkJCXU4IGFjY2VzcykKIHsKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCAwNWZmMjMxODAzNTUu LjI3OGEyODZiYTI2MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jCisrKyBiL2FyY2gv eDg2L2t2bS94ODYuYwpAQCAtODY4LDYgKzg2OCwxMSBAQCBzdGF0aWMgaW50IF9fa3ZtX3NldF94 Y3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1MzIgaW5kZXgsIHU2NCB4Y3IpCiAKIGludCBrdm1f c2V0X3hjcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBpbmRleCwgdTY0IHhjcikKIHsKKyNp ZmRlZiBDT05GSUdfS1ZNX0lOVFJPU1BFQ1RJT04KKwlpZiAoeGNyICE9IHZjcHUtPmFyY2gueGNy MCkKKwkJa3ZtaV94c2V0YnZfZXZlbnQodmNwdSk7CisjZW5kaWYgLyogQ09ORklHX0tWTV9JTlRS T1NQRUNUSU9OICovCisKIAlpZiAoa3ZtX3g4Nl9vcHMtPmdldF9jcGwodmNwdSkgIT0gMCB8fAog CSAgICBfX2t2bV9zZXRfeGNyKHZjcHUsIGluZGV4LCB4Y3IpKSB7CiAJCWt2bV9pbmplY3RfZ3Ao dmNwdSwgMCk7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f ClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1m b3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9s aXN0aW5mby92aXJ0dWFsaXphdGlvbg==