From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/5] x86/hvm: Improve memory_op hypercall dispatching Date: Mon, 13 Feb 2017 13:03:46 +0000 Message-ID: <1486991028-31097-4-git-send-email-andrew.cooper3@citrix.com> References: <1486991028-31097-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1486991028-31097-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org aHZtX21lbW9yeV9vcCgpIGFuZCBodm1fbWVtb3J5X29wX2NvbXBhdDMyKCkgYXJlIGFsbW9zdCBp ZGVudGljYWwsIGJ1dCB0aGVyZQppcyBubyBuZWVkIHRvIGhhdmUgdHdvIGZ1bmN0aW9ucyBpbnN0 YW50aWF0ZWQgYXQgdGhlIGVuZCBvZiBkaWZmZXJlbnQgZnVuY3Rpb24KcG9pbnRlcnMuCgpDb21i aW5lIHRoZSB0d28gaW50byBzaW5nbGUgaHZtX21lbW9yeV9vcCgpIHdoaWNoIGRpc3BhdGNoZXMg dG8Ke2RvLGNvbXBhdH1fbWVtb3J5X29wKCkgYmFzZWQgb24gdGhlIGhjYWxsXzY0Yml0IHNldHRp bmcuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KLS0tCiB4ZW4vYXJj aC94ODYvaHZtL2h5cGVyY2FsbC5jIHwgNjggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAzOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jIGIveGVu L2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYwppbmRleCAxMWJkMTZkLi4wZjNkZjRlIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aHlwZXJjYWxsLmMKQEAgLTIzLDYgKzIzLDI5IEBACiAKICNpbmNsdWRlIDxhc20vaHZtL3N1cHBv cnQuaD4KIAorc3RhdGljIGxvbmcgaHZtX21lbW9yeV9vcChpbnQgY21kLCBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHZvaWQpIGFyZykKK3sKKyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7 CisgICAgbG9uZyByYzsKKworICAgIHN3aXRjaCAoIGNtZCAmIE1FTU9QX0NNRF9NQVNLICkKKyAg ICB7CisgICAgY2FzZSBYRU5NRU1fbWFjaGluZV9tZW1vcnlfbWFwOgorICAgIGNhc2UgWEVOTUVN X21hY2hwaHlzX21hcHBpbmc6CisgICAgICAgIHJldHVybiAtRU5PU1lTOworICAgIH0KKworICAg IGlmICggY3Vyci0+YXJjaC5odm1fdmNwdS5oY2FsbF82NGJpdCApCisgICAgICAgIHJjID0gZG9f bWVtb3J5X29wKGNtZCwgYXJnKTsKKyAgICBlbHNlCisgICAgICAgIHJjID0gY29tcGF0X21lbW9y eV9vcChjbWQsIGFyZyk7CisKKyAgICBpZiAoIChjbWQgJiBNRU1PUF9DTURfTUFTSykgPT0gWEVO TUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uICkKKyAgICAgICAgY3Vyci0+ZG9tYWluLT5hcmNoLmh2 bV9kb21haW4ucWVtdV9tYXBjYWNoZV9pbnZhbGlkYXRlID0gdHJ1ZTsKKworICAgIHJldHVybiBy YzsKK30KKwogc3RhdGljIGludCBncmFudF90YWJsZV9vcF9pc19hbGxvd2VkKHVuc2lnbmVkIGlu dCBjbWQpCiB7CiAgICAgc3dpdGNoIChjbWQpIHsKQEAgLTQ5LDIzICs3Miw2IEBAIHN0YXRpYyBs b25nIGh2bV9ncmFudF90YWJsZV9vcCgKICAgICByZXR1cm4gZG9fZ3JhbnRfdGFibGVfb3AoY21k LCB1b3AsIGNvdW50KTsKIH0KIAotc3RhdGljIGxvbmcgaHZtX21lbW9yeV9vcChpbnQgY21kLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKLXsKLSAgICBsb25nIHJjOwotCi0gICAg c3dpdGNoICggY21kICYgTUVNT1BfQ01EX01BU0sgKQotICAgIHsKLSAgICBjYXNlIFhFTk1FTV9t YWNoaW5lX21lbW9yeV9tYXA6Ci0gICAgY2FzZSBYRU5NRU1fbWFjaHBoeXNfbWFwcGluZzoKLSAg ICAgICAgcmV0dXJuIC1FTk9TWVM7Ci0gICAgY2FzZSBYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRp b246Ci0gICAgICAgIHJjID0gZG9fbWVtb3J5X29wKGNtZCwgYXJnKTsKLSAgICAgICAgY3VycmVu dC0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4ucWVtdV9tYXBjYWNoZV9pbnZhbGlkYXRlID0gMTsK LSAgICAgICAgcmV0dXJuIHJjOwotICAgIH0KLSAgICByZXR1cm4gZG9fbWVtb3J5X29wKGNtZCwg YXJnKTsKLX0KLQogc3RhdGljIGxvbmcgaHZtX3BoeXNkZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3dpdGNoICggY21kICkKQEAgLTkyLDIz ICs5OCw2IEBAIHN0YXRpYyBsb25nIGh2bV9ncmFudF90YWJsZV9vcF9jb21wYXQzMih1bnNpZ25l ZCBpbnQgY21kLAogICAgIHJldHVybiBjb21wYXRfZ3JhbnRfdGFibGVfb3AoY21kLCB1b3AsIGNv dW50KTsKIH0KIAotc3RhdGljIGxvbmcgaHZtX21lbW9yeV9vcF9jb21wYXQzMihpbnQgY21kLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKLXsKLSAgICBpbnQgcmM7Ci0KLSAgICBz d2l0Y2ggKCBjbWQgJiBNRU1PUF9DTURfTUFTSyApCi0gICAgewotICAgIGNhc2UgWEVOTUVNX21h Y2hpbmVfbWVtb3J5X21hcDoKLSAgICBjYXNlIFhFTk1FTV9tYWNocGh5c19tYXBwaW5nOgotICAg ICAgICByZXR1cm4gLUVOT1NZUzsKLSAgICBjYXNlIFhFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlv bjoKLSAgICAgICAgcmMgPSBjb21wYXRfbWVtb3J5X29wKGNtZCwgYXJnKTsKLSAgICAgICAgY3Vy cmVudC0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4ucWVtdV9tYXBjYWNoZV9pbnZhbGlkYXRlID0g MTsKLSAgICAgICAgcmV0dXJuIHJjOwotICAgIH0KLSAgICByZXR1cm4gY29tcGF0X21lbW9yeV9v cChjbWQsIGFyZyk7Ci19Ci0KIHN0YXRpYyBsb25nIGh2bV9waHlzZGV2X29wX2NvbXBhdDMyKAog ICAgIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogewpAQCAtMTMx LDEyICsxMjAsMTQgQEAgc3RhdGljIGxvbmcgaHZtX3BoeXNkZXZfb3BfY29tcGF0MzIoCiAgICAg WyBfX0hZUEVSVklTT1JfICMjIHggXSA9IHsgKGh5cGVyY2FsbF9mbl90ICopIGRvXyAjIyB4LCAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoeXBlcmNhbGxfZm5fdCAqKSBkb18g IyMgeCB9CiAKKyNkZWZpbmUgSFZNX0NBTEwoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgWyBfX0hZUEVSVklTT1JfICMjIHggXSA9IHsgKGh5cGVyY2Fs bF9mbl90ICopIGh2bV8gIyMgeCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICho eXBlcmNhbGxfZm5fdCAqKSBodm1fICMjIHggfQorCiAjZGVmaW5lIENPTVBBVF9DQUxMKHgpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFsgX19IWVBFUlZJU09S XyAjIyB4IF0gPSB7IChoeXBlcmNhbGxfZm5fdCAqKSBkb18gIyMgeCwgIFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaHlwZXJjYWxsX2ZuX3QgKikgY29tcGF0XyAjIyB4IH0KIAot I2RlZmluZSBkb19tZW1vcnlfb3AgICAgICAgICAgaHZtX21lbW9yeV9vcAotI2RlZmluZSBjb21w YXRfbWVtb3J5X29wICAgICAgaHZtX21lbW9yeV9vcF9jb21wYXQzMgogI2RlZmluZSBkb19waHlz ZGV2X29wICAgICAgICAgaHZtX3BoeXNkZXZfb3AKICNkZWZpbmUgY29tcGF0X3BoeXNkZXZfb3Ag ICAgIGh2bV9waHlzZGV2X29wX2NvbXBhdDMyCiAjZGVmaW5lIGRvX2dyYW50X3RhYmxlX29wICAg ICBodm1fZ3JhbnRfdGFibGVfb3AKQEAgLTE0NCw3ICsxMzUsNyBAQCBzdGF0aWMgbG9uZyBodm1f cGh5c2Rldl9vcF9jb21wYXQzMigKICNkZWZpbmUgZG9fYXJjaF8xICAgICAgICAgICAgIHBhZ2lu Z19kb21jdGxfY29udGludWF0aW9uCiAKIHN0YXRpYyBjb25zdCBoeXBlcmNhbGxfdGFibGVfdCBo dm1faHlwZXJjYWxsX3RhYmxlW10gPSB7Ci0gICAgQ09NUEFUX0NBTEwobWVtb3J5X29wKSwKKyAg ICBIVk1fQ0FMTChtZW1vcnlfb3ApLAogICAgIENPTVBBVF9DQUxMKGdyYW50X3RhYmxlX29wKSwK ICAgICBDT01QQVRfQ0FMTCh2Y3B1X29wKSwKICAgICBDT01QQVRfQ0FMTChwaHlzZGV2X29wKSwK QEAgLTE2Nyw4ICsxNTgsNiBAQCBzdGF0aWMgY29uc3QgaHlwZXJjYWxsX3RhYmxlX3QgaHZtX2h5 cGVyY2FsbF90YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTChhcmNoXzEpCiB9OwogCi0jdW5kZWYg ZG9fbWVtb3J5X29wCi0jdW5kZWYgY29tcGF0X21lbW9yeV9vcAogI3VuZGVmIGRvX3BoeXNkZXZf b3AKICN1bmRlZiBjb21wYXRfcGh5c2Rldl9vcAogI3VuZGVmIGRvX2dyYW50X3RhYmxlX29wCkBA IC0xNzYsNiArMTY1LDcgQEAgc3RhdGljIGNvbnN0IGh5cGVyY2FsbF90YWJsZV90IGh2bV9oeXBl cmNhbGxfdGFibGVbXSA9IHsKICN1bmRlZiBkb19hcmNoXzEKIAogI3VuZGVmIEhZUEVSQ0FMTAor I3VuZGVmIEhWTV9DQUxMCiAjdW5kZWYgQ09NUEFUX0NBTEwKIAogYm9vbCBodm1faHlwZXJjYWxs KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK