From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 39/92] KVM: VMX: Introduce SPP user-space IOCTLs Date: Fri, 9 Aug 2019 18:59:54 +0300 Message-ID: <20190809160047.8319-40-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 , Zhang Yi , Yu C , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , He Chen , 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 RnJvbTogWWFuZyBXZWlqaWFuZyA8d2VpamlhbmcueWFuZ0BpbnRlbC5jb20+CgpVc2VyIGFwcGxp Y2F0aW9uLCBlLmcuLCBRRU1VIG9yIFZNSSwgbXVzdCBpbml0aWFsaXplIFNQUApiZWZvcmUgZ2V0 cy9zZXRzIFNQUCBzdWJwYWdlcywgdGhlIGR5bmFtaWMgaW5pdGlhbGl6YXRpb24gaXMgdG8KcmVk dWNlIHRoZSBleHRyYSBzdG9yYWdlIGNvc3QgaWYgdGhlIFNQUCBmZWF0dXJlIGlzIG5vdCBub3Qg dXNlZC4KCkNvLWRldmVsb3BlZC1ieTogSGUgQ2hlbiA8aGUuY2hlbkBsaW51eC5pbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEhlIENoZW4gPGhlLmNoZW5AbGludXguaW50ZWwuY29tPgpDby1kZXZl bG9wZWQtYnk6IFpoYW5nIFlpIDx5aS56LnpoYW5nQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogWmhhbmcgWWkgPHlpLnouemhhbmdAbGludXguaW50ZWwuY29tPgpDby1kZXZlbG9wZWQt Ynk6IFlhbmcgV2VpamlhbmcgPHdlaWppYW5nLnlhbmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBZYW5nIFdlaWppYW5nIDx3ZWlqaWFuZy55YW5nQGludGVsLmNvbT4KTWVzc2FnZS1JZDogPDIw MTkwNzE3MTMzNzUxLjEyOTEwLTctd2VpamlhbmcueWFuZ0BpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEFkYWxiZXJ0IExhesSDciA8YWxhemFyQGJpdGRlZmVuZGVyLmNvbT4KLS0tCiBhcmNoL3g4 Ni9rdm0veDg2LmMgICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggfCAgMyArKwogaW5jbHVkZS91YXBpL2xp bnV4L2t2bS5oIHwgIDMgKysKIDMgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBi OGFlMjVjYjIyN2IuLmVmMjllZjc2MTdiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5j CisrKyBiL2FyY2gveDg2L2t2bS94ODYuYwpAQCAtNDkyNiw2ICs0OTI2LDUzIEBAIGxvbmcga3Zt X2FyY2hfdm1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsCiAJCWlmIChjb3B5X2Zyb21fdXNlcigm aHZldmZkLCBhcmdwLCBzaXplb2YoaHZldmZkKSkpCiAJCQlnb3RvIG91dDsKIAkJciA9IGt2bV92 bV9pb2N0bF9odl9ldmVudGZkKGt2bSwgJmh2ZXZmZCk7CisJfQorCWNhc2UgS1ZNX1NVQlBBR0VT X0dFVF9BQ0NFU1M6IHsKKwkJc3RydWN0IGt2bV9zdWJwYWdlIHNwcF9pbmZvOworCisJCWlmICgh a3ZtLT5hcmNoLnNwcF9hY3RpdmUpIHsKKwkJCXIgPSAtRU5PREVWOworCQkJZ290byBvdXQ7CisJ CX0KKworCQlyID0gLUVGQVVMVDsKKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZzcHBfaW5mbywgYXJn cCwgc2l6ZW9mKHNwcF9pbmZvKSkpCisJCQlnb3RvIG91dDsKKworCQlyID0gLUVJTlZBTDsKKwkJ aWYgKHNwcF9pbmZvLm5wYWdlcyA9PSAwIHx8CisJCSAgICBzcHBfaW5mby5ucGFnZXMgPiBTVUJQ QUdFX01BWF9CSVRNQVApCisJCQlnb3RvIG91dDsKKworCQlyID0ga3ZtX3ZtX2lvY3RsX2dldF9z dWJwYWdlcyhrdm0sICZzcHBfaW5mbyk7CisJCWlmIChjb3B5X3RvX3VzZXIoYXJncCwgJnNwcF9p bmZvLCBzaXplb2Yoc3BwX2luZm8pKSkgeworCQkJciA9IC1FRkFVTFQ7CisJCQlnb3RvIG91dDsK KwkJfQorCQlicmVhazsKKwl9CisJY2FzZSBLVk1fU1VCUEFHRVNfU0VUX0FDQ0VTUzogeworCQlz dHJ1Y3Qga3ZtX3N1YnBhZ2Ugc3BwX2luZm87CisKKwkJaWYgKCFrdm0tPmFyY2guc3BwX2FjdGl2 ZSkgeworCQkJciA9IC1FTk9ERVY7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCXIgPSAtRUZBVUxU OworCQlpZiAoY29weV9mcm9tX3VzZXIoJnNwcF9pbmZvLCBhcmdwLCBzaXplb2Yoc3BwX2luZm8p KSkKKwkJCWdvdG8gb3V0OworCisJCXIgPSAtRUlOVkFMOworCQlpZiAoc3BwX2luZm8ubnBhZ2Vz ID09IDAgfHwKKwkJICAgIHNwcF9pbmZvLm5wYWdlcyA+IFNVQlBBR0VfTUFYX0JJVE1BUCkKKwkJ CWdvdG8gb3V0OworCisJCXIgPSBrdm1fdm1faW9jdGxfc2V0X3N1YnBhZ2VzKGt2bSwgJnNwcF9p bmZvKTsKKwkJYnJlYWs7CisJfQorCWNhc2UgS1ZNX0lOSVRfU1BQOiB7CisJCXIgPSBrdm1fdm1f aW9jdGxfaW5pdF9zcHAoa3ZtKTsKIAkJYnJlYWs7CiAJfQogCWRlZmF1bHQ6CkBAIC05OTA2LDYg Kzk5NTMsMzIgQEAgYm9vbCBrdm1fYXJjaF9oYXNfaXJxX2J5cGFzcyh2b2lkKQogCXJldHVybiBr dm1feDg2X29wcy0+dXBkYXRlX3BpX2lydGUgIT0gTlVMTDsKIH0KIAoraW50IGt2bV9hcmNoX2dl dF9zdWJwYWdlcyhzdHJ1Y3Qga3ZtICprdm0sCisJCQkgIHN0cnVjdCBrdm1fc3VicGFnZSAqc3Bw X2luZm8pCit7CisJaWYgKCFrdm1feDg2X29wcy0+Z2V0X3N1YnBhZ2VzKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCXJldHVybiBrdm1feDg2X29wcy0+Z2V0X3N1YnBhZ2VzKGt2bSwgc3BwX2luZm8p OworfQorCitpbnQga3ZtX2FyY2hfc2V0X3N1YnBhZ2VzKHN0cnVjdCBrdm0gKmt2bSwKKwkJCSAg c3RydWN0IGt2bV9zdWJwYWdlICpzcHBfaW5mbykKK3sKKwlpZiAoIWt2bV94ODZfb3BzLT5zZXRf c3VicGFnZXMpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGt2bV94ODZfb3BzLT5zZXRf c3VicGFnZXMoa3ZtLCBzcHBfaW5mbyk7Cit9CisKK2ludCBrdm1fYXJjaF9pbml0X3NwcChzdHJ1 Y3Qga3ZtICprdm0pCit7CisJaWYgKCFrdm1feDg2X29wcy0+aW5pdF9zcHApCisJCXJldHVybiAt RUlOVkFMOworCisJcmV0dXJuIGt2bV94ODZfb3BzLT5pbml0X3NwcChrdm0pOworfQorCiBpbnQg a3ZtX2FyY2hfaXJxX2J5cGFzc19hZGRfcHJvZHVjZXIoc3RydWN0IGlycV9ieXBhc3NfY29uc3Vt ZXIgKmNvbnMsCiAJCQkJICAgICAgc3RydWN0IGlycV9ieXBhc3NfcHJvZHVjZXIgKnByb2QpCiB7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L2t2 bV9ob3N0LmgKaW5kZXggMGI5YTBmNTQ2Mzk3Li5hZTQxMDZhYWUxNmUgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgva3ZtX2hvc3QuaAorKysgYi9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKQEAg LTgzNyw2ICs4MzcsOSBAQCBzdHJ1Y3Qga3ZtX21tdV9wYWdlICprdm1fbW11X2dldF9zcHBfcGFn ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiBpbnQga3ZtX2dldF9zdWJwYWdlcyhzdHJ1Y3Qga3Zt ICprdm0sIHN0cnVjdCBrdm1fc3VicGFnZSAqc3BwX2luZm8pOwogaW50IGt2bV9zZXRfc3VicGFn ZXMoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3N1YnBhZ2UgKnNwcF9pbmZvKTsKIGludCBr dm1faW5pdF9zcHAoc3RydWN0IGt2bSAqa3ZtKTsKK2ludCBrdm1fYXJjaF9nZXRfc3VicGFnZXMo c3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3N1YnBhZ2UgKnNwcF9pbmZvKTsKK2ludCBrdm1f YXJjaF9zZXRfc3VicGFnZXMoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX3N1YnBhZ2UgKnNw cF9pbmZvKTsKK2ludCBrdm1fYXJjaF9pbml0X3NwcChzdHJ1Y3Qga3ZtICprdm0pOwogCiAjaWZu ZGVmIF9fS1ZNX0hBVkVfQVJDSF9WTV9BTExPQwogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAppbmRleCBhZDhmMmEzY2E3 MmQuLjg2ZGQ1N2U2NzUzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisr KyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaApAQCAtMTI0OCw2ICsxMjQ4LDkgQEAgc3RydWN0 IGt2bV92ZmlvX3NwYXByX3RjZSB7CiAJCQkJCXN0cnVjdCBrdm1fdXNlcnNwYWNlX21lbW9yeV9y ZWdpb24pCiAjZGVmaW5lIEtWTV9TRVRfVFNTX0FERFIgICAgICAgICAgX0lPKEtWTUlPLCAgIDB4 NDcpCiAjZGVmaW5lIEtWTV9TRVRfSURFTlRJVFlfTUFQX0FERFIgX0lPVyhLVk1JTywgIDB4NDgs IF9fdTY0KQorI2RlZmluZSBLVk1fU1VCUEFHRVNfR0VUX0FDQ0VTUyAgIF9JT1IoS1ZNSU8sICAw eDQ5LCBfX3U2NCkKKyNkZWZpbmUgS1ZNX1NVQlBBR0VTX1NFVF9BQ0NFU1MgICBfSU9XKEtWTUlP LCAgMHg0YSwgX191NjQpCisjZGVmaW5lIEtWTV9JTklUX1NQUCAgICAgICAgICAgICAgX0lPVyhL Vk1JTywgIDB4NGIsIF9fdTY0KQogCiAvKiBlbmFibGUgdWNvbnRyb2wgZm9yIHMzOTAgKi8KIHN0 cnVjdCBrdm1fczM5MF91Y2FzX21hcHBpbmcgewpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVhbGl6 YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5k YXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=