From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 52/92] kvm: introspection: add KVMI_GET_CPUID Date: Fri, 9 Aug 2019 19:00:07 +0300 Message-ID: <20190809160047.8319-53-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 , Marian Rotariu , 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 RnJvbTogTWFyaWFuIFJvdGFyaXUgPG1hcmlhbi5jLnJvdGFyaXVAZ21haWwuY29tPgoKVGhpcyBj b21tYW5kIHJldHVybnMgYSBDUFVJRCBsZWFmIChhcyBzZWVuIGJ5IHRoZSBndWVzdCBPUykuCgpT aWduZWQtb2ZmLWJ5OiBNYXJpYW4gUm90YXJpdSA8bWFyaWFuLmMucm90YXJpdUBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEFkYWxiZXJ0IExhesSDciA8YWxhemFyQGJpdGRlZmVuZGVyLmNvbT4K LS0tCiBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2t2bWkucnN0IHwgMzYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBhcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bWkuaCAgIHwg MTIgKysrKysrKysrKwogYXJjaC94ODYva3ZtL2t2bWkuYyAgICAgICAgICAgICAgICB8IDE5ICsr KysrKysrKysrKysrKysKIGluY2x1ZGUvdWFwaS9saW51eC9rdm1fcGFyYS5oICAgICAgfCAgMSAr CiB2aXJ0L2t2bS9rdm1pX2ludC5oICAgICAgICAgICAgICAgIHwgIDMgKysrCiB2aXJ0L2t2bS9r dm1pX21zZy5jICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFu Z2VkLCA4NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFs L2t2bS9rdm1pLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKaW5kZXgg YjY3MjJkMDcxYWI3Li45ZTE1MTMyZWQ5NzYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmly dHVhbC9rdm0va3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJz dApAQCAtOTMzLDYgKzkzMyw0MiBAQCBjdXJyZW50bHkgYmVpbmcgaGFuZGxlZCBpcyByZXBsaWVk IHRvLgogKiAtS1ZNX0VJTlZBTCAtIHBhZGRpbmcgaXMgbm90IHplcm8KICogLUtWTV9FQUdBSU4g LSB0aGUgc2VsZWN0ZWQgdkNQVSBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQgeWV0CiAKKzE5LiBLVk1J X0dFVF9DUFVJRAorLS0tLS0tLS0tLS0tLS0tLS0tCisKKzpBcmNoaXRlY3R1cmVzOiB4ODYKKzpW ZXJzaW9uczogPj0gMQorOlBhcmFtZXRlcnM6CisKKzo6CisKKwlzdHJ1Y3Qga3ZtaV92Y3B1X2hk cjsKKwlzdHJ1Y3Qga3ZtaV9nZXRfY3B1aWQgeworCQlfX3UzMiBmdW5jdGlvbjsKKwkJX191MzIg aW5kZXg7CisJfTsKKworOlJldHVybnM6CisKKzo6CisKKwlzdHJ1Y3Qga3ZtaV9lcnJvcl9jb2Rl OworCXN0cnVjdCBrdm1pX2dldF9jcHVpZF9yZXBseSB7CisJCV9fdTMyIGVheDsKKwkJX191MzIg ZWJ4OworCQlfX3UzMiBlY3g7CisJCV9fdTMyIGVkeDsKKwl9OworCitSZXR1cm5zIGEgQ1BVSUQg bGVhZiAoYXMgc2VlbiBieSB0aGUgZ3Vlc3QgT1MpLgorCis6RXJyb3JzOgorCisqIC1LVk1fRUlO VkFMIC0gdGhlIHNlbGVjdGVkIHZDUFUgaXMgaW52YWxpZAorKiAtS1ZNX0VJTlZBTCAtIHBhZGRp bmcgaXMgbm90IHplcm8KKyogLUtWTV9FQUdBSU4gLSB0aGUgc2VsZWN0ZWQgdkNQVSBjYW4ndCBi ZSBpbnRyb3NwZWN0ZWQgeWV0CisqIC1LVk1fRU5PRU5UIC0gdGhlIHNlbGVjdGVkIGxlYWYgaXMg bm90IHByZXNlbnQgb3IgaXMgaW52YWxpZAorCiBFdmVudHMKID09PT09PQogCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bWkuaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFw aS9hc20va3ZtaS5oCmluZGV4IDk4ZmIyN2UxMjczYy4uZmEyNzE5MjI2MTk4IDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bWkuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRl L3VhcGkvYXNtL2t2bWkuaApAQCAtNDEsNCArNDEsMTYgQEAgc3RydWN0IGt2bWlfZ2V0X3JlZ2lz dGVyc19yZXBseSB7CiAJc3RydWN0IGt2bV9tc3JzIG1zcnM7CiB9OwogCitzdHJ1Y3Qga3ZtaV9n ZXRfY3B1aWQgeworCV9fdTMyIGZ1bmN0aW9uOworCV9fdTMyIGluZGV4OworfTsKKworc3RydWN0 IGt2bWlfZ2V0X2NwdWlkX3JlcGx5IHsKKwlfX3UzMiBlYXg7CisJX191MzIgZWJ4OworCV9fdTMy IGVjeDsKKwlfX3UzMiBlZHg7Cit9OworCiAjZW5kaWYgLyogX1VBUElfQVNNX1g4Nl9LVk1JX0gg Ki8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9rdm1pLmMgYi9hcmNoL3g4Ni9rdm0va3ZtaS5j CmluZGV4IGE3ODc3MWIyMWQyZi4uNDYxNWJiZTljMGRiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r dm0va3ZtaS5jCisrKyBiL2FyY2gveDg2L2t2bS9rdm1pLmMKQEAgLTUsNiArNSw3IEBACiAgKiBD b3B5cmlnaHQgKEMpIDIwMTkgQml0ZGVmZW5kZXIgUy5SLkwuCiAgKi8KICNpbmNsdWRlICJ4ODYu aCIKKyNpbmNsdWRlICJjcHVpZC5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL3ZpcnQva3ZtL2t2bWlf aW50LmgiCiAKIHN0YXRpYyB2b2lkICphbGxvY19nZXRfcmVnaXN0ZXJzX3JlcGx5KGNvbnN0IHN0 cnVjdCBrdm1pX21zZ19oZHIgKm1zZywKQEAgLTIxMSw2ICsyMTIsMjQgQEAgYm9vbCBrdm1pX2Fy Y2hfcGZfZXZlbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCBncGEsIGd2YV90IGd2YSwK IAlyZXR1cm4gcmV0OwogfQogCitpbnQga3ZtaV9hcmNoX2NtZF9nZXRfY3B1aWQoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1LAorCQkJICAgIGNvbnN0IHN0cnVjdCBrdm1pX2dldF9jcHVpZCAqcmVxLAor CQkJICAgIHN0cnVjdCBrdm1pX2dldF9jcHVpZF9yZXBseSAqcnBsKQoreworCXN0cnVjdCBrdm1f Y3B1aWRfZW50cnkyICplOworCisJZSA9IGt2bV9maW5kX2NwdWlkX2VudHJ5KHZjcHUsIHJlcS0+ ZnVuY3Rpb24sIHJlcS0+aW5kZXgpOworCWlmICghZSkKKwkJcmV0dXJuIC1LVk1fRU5PRU5UOwor CisJcnBsLT5lYXggPSBlLT5lYXg7CisJcnBsLT5lYnggPSBlLT5lYng7CisJcnBsLT5lY3ggPSBl LT5lY3g7CisJcnBsLT5lZHggPSBlLT5lZHg7CisKKwlyZXR1cm4gMDsKK30KKwogaW50IGt2bWlf YXJjaF9jbWRfZ2V0X3ZjcHVfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCQkJc3RydWN0 IGt2bWlfZ2V0X3ZjcHVfaW5mb19yZXBseSAqcnBsKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2xpbnV4L2t2bV9wYXJhLmggYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtX3BhcmEuaAppbmRl eCAwN2UzZjI2NjJiMzYuLjU1M2YxNjgzMzFhNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xp bnV4L2t2bV9wYXJhLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bV9wYXJhLmgKQEAgLTE5 LDYgKzE5LDcgQEAKICNkZWZpbmUgS1ZNX0VPUE5PVFNVUFAJCTk1CiAjZGVmaW5lIEtWTV9FQUdB SU4JCTExCiAjZGVmaW5lIEtWTV9FQlVTWQkJRUJVU1kKKyNkZWZpbmUgS1ZNX0VOT0VOVAkJRU5P RU5UCiAjZGVmaW5lIEtWTV9FTk9NRU0JCUVOT01FTQogCiAjZGVmaW5lIEtWTV9IQ19WQVBJQ19Q T0xMX0lSUQkJMQpkaWZmIC0tZ2l0IGEvdmlydC9rdm0va3ZtaV9pbnQuaCBiL3ZpcnQva3ZtL2t2 bWlfaW50LmgKaW5kZXggN2JjM2RkMWYyMjk4Li4yMjUwOGQxNDc0OTUgMTAwNjQ0Ci0tLSBhL3Zp cnQva3ZtL2t2bWlfaW50LmgKKysrIGIvdmlydC9rdm0va3ZtaV9pbnQuaApAQCAtMjMwLDYgKzIz MCw5IEBAIGludCBrdm1pX2FyY2hfY21kX3NldF9wYWdlX3dyaXRlX2JpdG1hcChzdHJ1Y3Qga3Zt aSAqaWt2bSwKIHZvaWQga3ZtaV9hcmNoX3NldHVwX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNw dSwgc3RydWN0IGt2bWlfZXZlbnQgKmV2KTsKIGJvb2wga3ZtaV9hcmNoX3BmX2V2ZW50KHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgZ3BhLCBndmFfdCBndmEsCiAJCQl1OCBhY2Nlc3MpOwor aW50IGt2bWlfYXJjaF9jbWRfZ2V0X2NwdWlkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCSAg ICBjb25zdCBzdHJ1Y3Qga3ZtaV9nZXRfY3B1aWQgKnJlcSwKKwkJCSAgICBzdHJ1Y3Qga3ZtaV9n ZXRfY3B1aWRfcmVwbHkgKnJwbCk7CiBpbnQga3ZtaV9hcmNoX2NtZF9nZXRfdmNwdV9pbmZvKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJCQlzdHJ1Y3Qga3ZtaV9nZXRfdmNwdV9pbmZvX3JlcGx5 ICpycGwpOwogCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1pX21zZy5jIGIvdmlydC9rdm0va3Zt aV9tc2cuYwppbmRleCAzNTVjZWM3MGEyOGQuLjk1NDgwNDJkZTYxOCAxMDA2NDQKLS0tIGEvdmly dC9rdm0va3ZtaV9tc2cuYworKysgYi92aXJ0L2t2bS9rdm1pX21zZy5jCkBAIC0yOSw2ICsyOSw3 IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBtc2dfSURzW10gPSB7CiAJW0tWTUlfQ09OVFJP TF9WTV9FVkVOVFNdICAgICA9ICJLVk1JX0NPTlRST0xfVk1fRVZFTlRTIiwKIAlbS1ZNSV9FVkVO VF0gICAgICAgICAgICAgICAgID0gIktWTUlfRVZFTlQiLAogCVtLVk1JX0VWRU5UX1JFUExZXSAg ICAgICAgICAgPSAiS1ZNSV9FVkVOVF9SRVBMWSIsCisJW0tWTUlfR0VUX0NQVUlEXSAgICAgICAg ICAgICA9ICJLVk1JX0dFVF9DUFVJRCIsCiAJW0tWTUlfR0VUX0dVRVNUX0lORk9dICAgICAgICA9 ICJLVk1JX0dFVF9HVUVTVF9JTkZPIiwKIAlbS1ZNSV9HRVRfUEFHRV9BQ0NFU1NdICAgICAgID0g IktWTUlfR0VUX1BBR0VfQUNDRVNTIiwKIAlbS1ZNSV9HRVRfUEFHRV9XUklURV9CSVRNQVBdID0g IktWTUlfR0VUX1BBR0VfV1JJVEVfQklUTUFQIiwKQEAgLTY0MSw2ICs2NDIsMjAgQEAgc3RhdGlj IGludCBoYW5kbGVfY29udHJvbF9ldmVudHMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCXJldHVy biByZXBseV9jYih2Y3B1LCBtc2csIGVjLCBOVUxMLCAwKTsKIH0KIAorc3RhdGljIGludCBoYW5k bGVfZ2V0X2NwdWlkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCSAgICBjb25zdCBzdHJ1Y3Qg a3ZtaV9tc2dfaGRyICptc2csCisJCQkgICAgY29uc3Qgdm9pZCAqcmVxLCB2Y3B1X3JlcGx5X2Zj dCByZXBseV9jYikKK3sKKwlzdHJ1Y3Qga3ZtaV9nZXRfY3B1aWRfcmVwbHkgcnBsOworCWludCBl YzsKKworCW1lbXNldCgmcnBsLCAwLCBzaXplb2YocnBsKSk7CisKKwllYyA9IGt2bWlfYXJjaF9j bWRfZ2V0X2NwdWlkKHZjcHUsIHJlcSwgJnJwbCk7CisKKwlyZXR1cm4gcmVwbHlfY2IodmNwdSwg bXNnLCBlYywgJnJwbCwgc2l6ZW9mKHJwbCkpOworfQorCiAvKgogICogVGhlc2UgY29tbWFuZHMg YXJlIGV4ZWN1dGVkIG9uIHRoZSB2Q1BVIHRocmVhZC4gVGhlIHJlY2VpdmluZyB0aHJlYWQKICAq IHBhc3NlcyB0aGUgbWVzc2FnZXMgdXNpbmcgYSBuZXdseSBhbGxvY2F0ZWQgJ3N0cnVjdCBrdm1p X3ZjcHVfY21kJwpAQCAtNjUyLDYgKzY2Nyw3IEBAIHN0YXRpYyBpbnQoKmNvbnN0IG1zZ192Y3B1 W10pKHN0cnVjdCBrdm1fdmNwdSAqLAogCQkJICAgICAgdmNwdV9yZXBseV9mY3QpID0gewogCVtL Vk1JX0NPTlRST0xfRVZFTlRTXSAgID0gaGFuZGxlX2NvbnRyb2xfZXZlbnRzLAogCVtLVk1JX0VW RU5UX1JFUExZXSAgICAgID0gaGFuZGxlX2V2ZW50X3JlcGx5LAorCVtLVk1JX0dFVF9DUFVJRF0g ICAgICAgID0gaGFuZGxlX2dldF9jcHVpZCwKIAlbS1ZNSV9HRVRfUkVHSVNURVJTXSAgICA9IGhh bmRsZV9nZXRfcmVnaXN0ZXJzLAogCVtLVk1JX0dFVF9WQ1BVX0lORk9dICAgID0gaGFuZGxlX2dl dF92Y3B1X2luZm8sCiAJW0tWTUlfU0VUX1JFR0lTVEVSU10gICAgPSBoYW5kbGVfc2V0X3JlZ2lz dGVycywKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmly dHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5k YXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3ZpcnR1YWxpemF0aW9u