From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 16/27] x86/svm: Improvements using named features Date: Wed, 4 Jan 2017 12:39:33 +0000 Message-ID: <1483533584-8015-17-git-send-email-andrew.cooper3@citrix.com> References: <1483533584-8015-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: <1483533584-8015-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 , Boris Ostrovsky , Suravee Suthikulpanit , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBhdm9pZHMgY2FsbGluZyBpbnRvIGh2bV9jcHVpZCgpIHRvIG9idGFpbiBpbmZvcm1hdGlv biB3aGljaCBpcyBkaXJlY3RseQphdmFpbGFibGUuICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGF2b2lk cyB0aGUgbmVlZCB0byBvdmVybG9hZCBmbGFnX2RyX2RpcnR5CmJlY2F1c2Ugb2YgaHZtX2NwdWlk KCkgYmVpbmcgdW5hdmFpbGFibGUgc3ZtX3NhdmVfZHIoKQoKU2lnbmVkLW9mZi1ieTogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8 SkJldWxpY2hAc3VzZS5jb20+CkNDOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBv cmFjbGUuY29tPgpDQzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFu aXRAYW1kLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyB8IDMzICsrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3Zt LmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCBkZTIwZjY0Li44ZjY3MzdjIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3N2bS9zdm0uYwpAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyB2b2lkIHN2bV9zYXZlX2Ry KHN0cnVjdCB2Y3B1ICp2KQogICAgIHYtPmFyY2guaHZtX3ZjcHUuZmxhZ19kcl9kaXJ0eSA9IDA7 CiAgICAgdm1jYl9zZXRfZHJfaW50ZXJjZXB0cyh2bWNiLCB+MHUpOwogCi0gICAgaWYgKCBmbGFn X2RyX2RpcnR5ICYgMiApCisgICAgaWYgKCB2LT5kb21haW4tPmFyY2guY3B1aWQtPmV4dGQuZGJl eHQgKQogICAgIHsKICAgICAgICAgc3ZtX2ludGVyY2VwdF9tc3IodiwgTVNSX0FNRDY0X0RSMF9B RERSRVNTX01BU0ssIE1TUl9JTlRFUkNFUFRfUlcpOwogICAgICAgICBzdm1faW50ZXJjZXB0X21z cih2LCBNU1JfQU1ENjRfRFIxX0FERFJFU1NfTUFTSywgTVNSX0lOVEVSQ0VQVF9SVyk7CkBAIC0x OTYsOCArMTk2LDYgQEAgc3RhdGljIHZvaWQgc3ZtX3NhdmVfZHIoc3RydWN0IHZjcHUgKnYpCiAK IHN0YXRpYyB2b2lkIF9fcmVzdG9yZV9kZWJ1Z19yZWdpc3RlcnMoc3RydWN0IHZtY2Jfc3RydWN0 ICp2bWNiLCBzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICB1bnNpZ25lZCBpbnQgZWN4OwotCiAgICAg aWYgKCB2LT5hcmNoLmh2bV92Y3B1LmZsYWdfZHJfZGlydHkgKQogICAgICAgICByZXR1cm47CiAK QEAgLTIwNSw4ICsyMDMsOCBAQCBzdGF0aWMgdm9pZCBfX3Jlc3RvcmVfZGVidWdfcmVnaXN0ZXJz KHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiwgc3RydWN0IHZjcHUgKnYpCiAgICAgdm1jYl9zZXRf ZHJfaW50ZXJjZXB0cyh2bWNiLCAwKTsKIAogICAgIEFTU0VSVCh2ID09IGN1cnJlbnQpOwotICAg IGh2bV9jcHVpZCgweDgwMDAwMDAxLCBOVUxMLCBOVUxMLCAmZWN4LCBOVUxMKTsKLSAgICBpZiAo IHRlc3RfYml0KFg4Nl9GRUFUVVJFX0RCRVhUICYgMzEsICZlY3gpICkKKworICAgIGlmICggdi0+ ZG9tYWluLT5hcmNoLmNwdWlkLT5leHRkLmRiZXh0ICkKICAgICB7CiAgICAgICAgIHN2bV9pbnRl cmNlcHRfbXNyKHYsIE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNLLCBNU1JfSU5URVJDRVBUX05P TkUpOwogICAgICAgICBzdm1faW50ZXJjZXB0X21zcih2LCBNU1JfQU1ENjRfRFIxX0FERFJFU1Nf TUFTSywgTVNSX0lOVEVSQ0VQVF9OT05FKTsKQEAgLTIxNyw5ICsyMTUsNiBAQCBzdGF0aWMgdm9p ZCBfX3Jlc3RvcmVfZGVidWdfcmVnaXN0ZXJzKHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiwgc3Ry dWN0IHZjcHUgKnYpCiAgICAgICAgIHdybXNybChNU1JfQU1ENjRfRFIxX0FERFJFU1NfTUFTSywg di0+YXJjaC5odm1fc3ZtLmRyX21hc2tbMV0pOwogICAgICAgICB3cm1zcmwoTVNSX0FNRDY0X0RS Ml9BRERSRVNTX01BU0ssIHYtPmFyY2guaHZtX3N2bS5kcl9tYXNrWzJdKTsKICAgICAgICAgd3Jt c3JsKE1TUl9BTUQ2NF9EUjNfQUREUkVTU19NQVNLLCB2LT5hcmNoLmh2bV9zdm0uZHJfbWFza1sz XSk7Ci0KLSAgICAgICAgLyogQ2FuJ3QgdXNlIGh2bV9jcHVpZCgpIGluIHN2bV9zYXZlX2RyKCk6 IHYgIT0gY3VycmVudC4gKi8KLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5mbGFnX2RyX2RpcnR5 IHw9IDI7CiAgICAgfQogCiAgICAgd3JpdGVfZGVidWdyZWcoMCwgdi0+YXJjaC5kZWJ1Z3JlZ1sw XSk7CkBAIC0xMzU5LDExICsxMzU0LDcgQEAgc3RhdGljIHZvaWQgc3ZtX2luaXRfZXJyYXR1bV8z ODMoc3RydWN0IGNwdWluZm9feDg2ICpjKQogCiBzdGF0aWMgaW50IHN2bV9oYW5kbGVfb3N2dyhz dHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbXNyLCB1aW50NjRfdCAqdmFsLCBib29sX3QgcmVhZCkK IHsKLSAgICB1bnNpZ25lZCBpbnQgZWN4OwotCi0gICAgLyogR3Vlc3QgT1NWVyBzdXBwb3J0ICov Ci0gICAgaHZtX2NwdWlkKDB4ODAwMDAwMDEsIE5VTEwsIE5VTEwsICZlY3gsIE5VTEwpOwotICAg IGlmICggIXRlc3RfYml0KChYODZfRkVBVFVSRV9PU1ZXICYgMzEpLCAmZWN4KSApCisgICAgaWYg KCAhdi0+ZG9tYWluLT5hcmNoLmNwdWlkLT5leHRkLm9zdncgKQogICAgICAgICByZXR1cm4gLTE7 CiAKICAgICBpZiAoIHJlYWQgKQpAQCAtMTYyMiw4ICsxNjEzLDYgQEAgc3RhdGljIGludCBzdm1f bXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3JfY29udGVu dCkKIAogICAgIHN3aXRjaCAoIG1zciApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBpbnQgZWN4 OwotCiAgICAgY2FzZSBNU1JfSUEzMl9TWVNFTlRFUl9DUzoKICAgICAgICAgKm1zcl9jb250ZW50 ID0gdi0+YXJjaC5odm1fc3ZtLmd1ZXN0X3N5c2VudGVyX2NzOwogICAgICAgICBicmVhazsKQEAg LTE3MDEsMTUgKzE2OTAsMTMgQEAgc3RhdGljIGludCBzdm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVu c2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3JfY29udGVudCkKICAgICAgICAgYnJlYWs7CiAK ICAgICBjYXNlIE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNLOgotICAgICAgICBodm1fY3B1aWQo MHg4MDAwMDAwMSwgTlVMTCwgTlVMTCwgJmVjeCwgTlVMTCk7Ci0gICAgICAgIGlmICggIXRlc3Rf Yml0KFg4Nl9GRUFUVVJFX0RCRVhUICYgMzEsICZlY3gpICkKKyAgICAgICAgaWYgKCAhdi0+ZG9t YWluLT5hcmNoLmNwdWlkLT5leHRkLmRiZXh0ICkKICAgICAgICAgICAgIGdvdG8gZ3BmOwogICAg ICAgICAqbXNyX2NvbnRlbnQgPSB2LT5hcmNoLmh2bV9zdm0uZHJfbWFza1swXTsKICAgICAgICAg YnJlYWs7CiAKICAgICBjYXNlIE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLIC4uLiBNU1JfQU1E NjRfRFIzX0FERFJFU1NfTUFTSzoKLSAgICAgICAgaHZtX2NwdWlkKDB4ODAwMDAwMDEsIE5VTEws IE5VTEwsICZlY3gsIE5VTEwpOwotICAgICAgICBpZiAoICF0ZXN0X2JpdChYODZfRkVBVFVSRV9E QkVYVCAmIDMxLCAmZWN4KSApCisgICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC5jcHVpZC0+ ZXh0ZC5kYmV4dCApCiAgICAgICAgICAgICBnb3RvIGdwZjsKICAgICAgICAgKm1zcl9jb250ZW50 ID0KICAgICAgICAgICAgIHYtPmFyY2guaHZtX3N2bS5kcl9tYXNrW21zciAtIE1TUl9BTUQ2NF9E UjFfQUREUkVTU19NQVNLICsgMV07CkBAIC0xNzgzLDggKzE3NzAsNiBAQCBzdGF0aWMgaW50IHN2 bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250 ZW50KQogCiAgICAgc3dpdGNoICggbXNyICkKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGludCBl Y3g7Ci0KICAgICBjYXNlIE1TUl9JQTMyX1NZU0VOVEVSX0NTOgogICAgICAgICB2bWNiLT5zeXNl bnRlcl9jcyA9IHYtPmFyY2guaHZtX3N2bS5ndWVzdF9zeXNlbnRlcl9jcyA9IG1zcl9jb250ZW50 OwogICAgICAgICBicmVhazsKQEAgLTE4NjIsMTUgKzE4NDcsMTMgQEAgc3RhdGljIGludCBzdm1f bXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVu dCkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNL OgotICAgICAgICBodm1fY3B1aWQoMHg4MDAwMDAwMSwgTlVMTCwgTlVMTCwgJmVjeCwgTlVMTCk7 Ci0gICAgICAgIGlmICggIXRlc3RfYml0KFg4Nl9GRUFUVVJFX0RCRVhUICYgMzEsICZlY3gpIHx8 IChtc3JfY29udGVudCA+PiAzMikgKQorICAgICAgICBpZiAoICF2LT5kb21haW4tPmFyY2guY3B1 aWQtPmV4dGQuZGJleHQgfHwgKG1zcl9jb250ZW50ID4+IDMyKSApCiAgICAgICAgICAgICBnb3Rv IGdwZjsKICAgICAgICAgdi0+YXJjaC5odm1fc3ZtLmRyX21hc2tbMF0gPSBtc3JfY29udGVudDsK ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLIC4u LiBNU1JfQU1ENjRfRFIzX0FERFJFU1NfTUFTSzoKLSAgICAgICAgaHZtX2NwdWlkKDB4ODAwMDAw MDEsIE5VTEwsIE5VTEwsICZlY3gsIE5VTEwpOwotICAgICAgICBpZiAoICF0ZXN0X2JpdChYODZf RkVBVFVSRV9EQkVYVCAmIDMxLCAmZWN4KSB8fCAobXNyX2NvbnRlbnQgPj4gMzIpICkKKyAgICAg ICAgaWYgKCAhdi0+ZG9tYWluLT5hcmNoLmNwdWlkLT5leHRkLmRiZXh0IHx8IChtc3JfY29udGVu dCA+PiAzMikgKQogICAgICAgICAgICAgZ290byBncGY7CiAgICAgICAgIHYtPmFyY2guaHZtX3N2 bS5kcl9tYXNrW21zciAtIE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLICsgMV0gPQogICAgICAg ICAgICAgbXNyX2NvbnRlbnQ7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=