From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v4 10/24] x86/emul: Always use fault semantics for software events Date: Thu, 1 Dec 2016 16:55:58 +0000 Message-ID: <1480611361-15294-3-git-send-email-andrew.cooper3@citrix.com> References: <1480611361-15294-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: <1480611361-15294-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 , Tim Deegan , Suravee Suthikulpanit , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGNvbW1vbiBjYXNlIGlzIGFscmVhZHkgdXNpbmcgZmF1bHQgc2VtYW50aWNzIG91dCBvZiB4 ODZfZW11bGF0ZSgpLCBhcyB0aGF0CmlzIGhvdyBWVC14L1NWTSBleHBlY3RzIHRvIGluamVjdCB0 aGUgZXZlbnQgKGdpdmVuIHN1aXRhYmxlIGhhcmR3YXJlIHN1cHBvcnQpLgoKSG93ZXZlciwgeDg2 X2VtdWxhdGUoKSByZXR1cm5pbmcgWDg2RU1VTF9FWENFUFRJT04gYW5kIGFsc28gY29tcGxldGlu ZyBhCnJlZ2lzdGVyIHdyaXRlYmFjayBpcyBwcm9ibGVtYXRpYyBmb3IgY2FsbGVycy4KClN3aXRj aCB0aGUgbG9naWMgdG8gYWx3YXlzIHVzaW5nIGZhdWx0IHNlbWFudGljcywgYW5kIGxlYXZlIHN2 bV9pbmplY3RfdHJhcCgpCnRvIGZpeCB1cCAlZWlwIGlmIG5lY2Vzc2FyeS4KClNpZ25lZC1vZmYt Ynk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFu IEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ CkNDOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogU3Vy YXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KCnY0Ogog KiBzL2VpcC9yaXAvCiAqIFplcm8gdGhlIGhpZ2ggYml0cyBvZiByZWdzLT5yaXAgYW5kIHZtY2It Pm5leHRyaXAgb3V0c2lkZSBvZiA2NGJpdCBtb2RlLgogKiBTcGVsbGluZyBmaXhlcwp2MzoKICog TmV3Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgICAgICAgICAgICAgfCA2MCArKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv eDg2X2VtdWxhdGUuYyB8ICAyIC0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxh dGUuaCB8ICA4ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDI0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVu L2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggOTEyZDg3MS4uOGM0ZjNjNyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0v c3ZtLmMKQEAgLTEyMDksNyArMTIwOSw3IEBAIHN0YXRpYyB2b2lkIHN2bV9pbmplY3RfZXZlbnQo Y29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2 bWNiID0gY3Vyci0+YXJjaC5odm1fc3ZtLnZtY2I7CiAgICAgZXZlbnRpbmpfdCBldmVudGluaiA9 IHZtY2ItPmV2ZW50aW5qOwogICAgIHN0cnVjdCB4ODZfZXZlbnQgX2V2ZW50ID0gKmV2ZW50Owot ICAgIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gZ3Vlc3RfY3B1X3VzZXJfcmVn cygpOworICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gZ3Vlc3RfY3B1X3VzZXJfcmVn cygpOwogCiAgICAgc3dpdGNoICggX2V2ZW50LnZlY3RvciApCiAgICAgewpAQCAtMTI0Miw0NCAr MTI0Miw1MiBAQCBzdGF0aWMgdm9pZCBzdm1faW5qZWN0X2V2ZW50KGNvbnN0IHN0cnVjdCB4ODZf ZXZlbnQgKmV2ZW50KQogICAgIGV2ZW50aW5qLmZpZWxkcy52ID0gMTsKICAgICBldmVudGluai5m aWVsZHMudmVjdG9yID0gX2V2ZW50LnZlY3RvcjsKIAotICAgIC8qIFJlZmVyIHRvIEFNRCBWb2wg MjogU3lzdGVtIFByb2dyYW1taW5nLCAxNS4yMCBFdmVudCBJbmplY3Rpb24uICovCisgICAgLyoK KyAgICAgKiBSZWZlciB0byBBTUQgVm9sIDI6IFN5c3RlbSBQcm9ncmFtbWluZywgMTUuMjAgRXZl bnQgSW5qZWN0aW9uLgorICAgICAqCisgICAgICogT24gaGFyZHdhcmUgbGFja2luZyBOZXh0UklQ IHN1cHBvcnQsIGFuZCBhbGwgaGFyZHdhcmUgaW4gdGhlIGNhc2Ugb2YKKyAgICAgKiBpY2VicCwg c29mdHdhcmUgZXZlbnRzIHdpdGggdHJhcCBzZW1hbnRpY3MgbmVlZCBlbXVsYXRpbmcsIHNvICVy aXAgaW4KKyAgICAgKiB0aGUgdHJhcCBmcmFtZSBwb2ludHMgYWZ0ZXIgdGhlIGluc3RydWN0aW9u LgorICAgICAqCisgICAgICogVGhlIHg4NiBlbXVsYXRvciAoaWYgcmVxdWVzdGVkIGJ5IHRoZSB4 ODZfc3dpbnRfZW11bGF0ZV8qIGNob2ljZSkgd2lsbAorICAgICAqIGhhdmUgcGVyZm9ybWVkIGNo ZWNrcyBzdWNoIGFzIHByZXNlbmNlL2RwbC9ldGMgYW5kIGJlbGlldmVzIHRoYXQgdGhlCisgICAg ICogZXZlbnQgaW5qZWN0aW9uIHdpbGwgc3VjY2VlZCB3aXRob3V0IGZhdWx0aW5nLgorICAgICAq CisgICAgICogVGhlIHg4NiBlbXVsYXRvciB3aWxsIGFsd2F5cyBwcm92aWRlIGZhdWx0IHNlbWFu dGljcyBmb3Igc29mdHdhcmUKKyAgICAgKiBldmVudHMsIHdpdGggX3RyYXAuaW5zbl9sZW4gc2V0 IGFwcHJvcHJpYXRlbHkuICBJZiB0aGUgaW5qZWN0aW9uCisgICAgICogcmVxdWlyZXMgZW11bGF0 aW9uLCBtb3ZlICVyaXAgZm9yd2FyZHMgYXQgdGhpcyBwb2ludC4KKyAgICAgKi8KICAgICBzd2l0 Y2ggKCBfZXZlbnQudHlwZSApCiAgICAgewogICAgIGNhc2UgWDg2X0VWRU5UVFlQRV9TV19JTlRF UlJVUFQ6IC8qIGludCAkbiAqLwotICAgICAgICAvKgotICAgICAgICAgKiBTb2Z0d2FyZSBpbnRl cnJ1cHRzICh0eXBlIDQpIGNhbm5vdCBiZSBwcm9wZXJseSBpbmplY3RlZCBpZiB0aGUKLSAgICAg ICAgICogcHJvY2Vzc29yIGRvZXNuJ3Qgc3VwcG9ydCBOZXh0UklQLiAgV2l0aG91dCBOZXh0UklQ LCB0aGUgZW11bGF0b3IKLSAgICAgICAgICogd2lsbCBoYXZlIHBlcmZvcm1lZCBEUEwgYW5kIHBy ZXNlbmNlIGNoZWNrcyBmb3IgdXMsIGFuZCB3aWxsIGhhdmUKLSAgICAgICAgICogbW92ZWQgZWlw IGZvcndhcmQgaWYgYXBwcm9wcmlhdGUuCi0gICAgICAgICAqLwogICAgICAgICBpZiAoIGNwdV9o YXNfc3ZtX25yaXBzICkKLSAgICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXAgKyBf ZXZlbnQuaW5zbl9sZW47CisgICAgICAgICAgICB2bWNiLT5uZXh0cmlwID0gcmVncy0+cmlwICsg X2V2ZW50Lmluc25fbGVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWdzLT5yaXAgKz0g X2V2ZW50Lmluc25fbGVuOwogICAgICAgICBldmVudGluai5maWVsZHMudHlwZSA9IFg4Nl9FVkVO VFRZUEVfU1dfSU5URVJSVVBUOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgWDg2X0VWRU5U VFlQRV9QUklfU1dfRVhDRVBUSU9OOiAvKiBpY2VicCAqLwogICAgICAgICAvKgotICAgICAgICAg KiBpY2VicCdzIGluamVjdGlvbiBtdXN0IGFsd2F5cyBiZSBlbXVsYXRlZC4gIFNvZnR3YXJlIGlu amVjdGlvbiBoZWxwCi0gICAgICAgICAqIGluIHg4Nl9lbXVsYXRlIGhhcyBtb3ZlZCBlaXAgZm9y d2FyZCwgYnV0IE5leHRSSVAgKGlmIHVzZWQpIHN0aWxsCi0gICAgICAgICAqIG5lZWRzIHNldHRp bmcgb3IgZXhlY3V0aW9uIHdpbGwgcmVzdW1lIGZyb20gMC4KKyAgICAgICAgICogaWNlYnAncyBp bmplY3Rpb24gbXVzdCBhbHdheXMgYmUgZW11bGF0ZWQsIGFzIGhhcmR3YXJlIGRvZXMgbm90Cisg ICAgICAgICAqIHNwZWNpYWwgY2FzZSBIV19FWENFUFRJT04gd2l0aCB2ZWN0b3IgMSAoI0RCKSBh cyBoYXZpbmcgdHJhcAorICAgICAgICAgKiBzZW1hbnRpY3MuCiAgICAgICAgICAqLworICAgICAg ICByZWdzLT5yaXAgKz0gX2V2ZW50Lmluc25fbGVuOwogICAgICAgICBpZiAoIGNwdV9oYXNfc3Zt X25yaXBzICkKLSAgICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXA7CisgICAgICAg ICAgICB2bWNiLT5uZXh0cmlwID0gcmVncy0+cmlwOwogICAgICAgICBldmVudGluai5maWVsZHMu dHlwZSA9IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OOwogICAgICAgICBicmVhazsKIAogICAg IGNhc2UgWDg2X0VWRU5UVFlQRV9TV19FWENFUFRJT046IC8qIGludDMsIGludG8gKi8KICAgICAg ICAgLyoKLSAgICAgICAgICogVGhlIEFNRCBtYW51YWwgc3RhdGVzIHRoYXQgLnR5cGU9MyAoSFcg ZXhjZXB0aW9uKSwgLnZlY3Rvcj0zIG9yIDQsCi0gICAgICAgICAqIHdpbGwgcGVyZm9ybSBEUEwg Y2hlY2tzLiAgRXhwZXJpbWVudGFsbHksIERQTCBhbmQgcHJlc2VuY2UgY2hlY2tzCi0gICAgICAg ICAqIGFyZSBpbmRlZWQgcGVyZm9ybWVkLCBldmVuIHdpdGhvdXQgTmV4dFJJUCBzdXBwb3J0Lgot ICAgICAgICAgKgotICAgICAgICAgKiBIb3dldmVyIHdpdGhvdXQgTmV4dFJJUCBzdXBwb3J0LCB0 aGUgZXZlbnQgaW5qZWN0aW9uIHN0aWxsIG5lZWRzCi0gICAgICAgICAqIGZ1bGx5IGVtdWxhdGlu ZyB0byBnZXQgdGhlIGNvcnJlY3QgZWlwIGluIHRoZSB0cmFwIGZyYW1lLCB5ZXQgZ2V0Ci0gICAg ICAgICAqIHRoZSBjb3JyZWN0IGZhdWx0aW5nIGVpcCBzaG91bGQgYSBmYXVsdCBvY2N1ci4KKyAg ICAgICAgICogSGFyZHdhcmUgc3BlY2lhbCBjYXNlcyBIV19FWENFUFRJT04gd2l0aCB2ZWN0b3Jz IDMgYW5kIDQgYXMgaGF2aW5nCisgICAgICAgICAqIHRyYXAgc2VtYW50aWNzLCBhbmQgd2lsbCBw ZXJmb3JtIERQTCBjaGVja3MuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIGNwdV9oYXNfc3Zt X25yaXBzICkKLSAgICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXAgKyBfZXZlbnQu aW5zbl9sZW47CisgICAgICAgICAgICB2bWNiLT5uZXh0cmlwID0gcmVncy0+cmlwICsgX2V2ZW50 Lmluc25fbGVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWdzLT5yaXAgKz0gX2V2ZW50 Lmluc25fbGVuOwogICAgICAgICBldmVudGluai5maWVsZHMudHlwZSA9IFg4Nl9FVkVOVFRZUEVf SFdfRVhDRVBUSU9OOwogICAgICAgICBicmVhazsKIApAQCAtMTI5MCw2ICsxMjk4LDE2IEBAIHN0 YXRpYyB2b2lkIHN2bV9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQp CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIC8qCisgICAgICogSWYgaW5qZWN0aW5nIGFu IGV2ZW50IG91dHNpZGUgb2YgNjRiaXQgbW9kZSwgemVybyB0aGUgdXBwZXIgYml0cyBvZiB0aGUK KyAgICAgKiAlZWlwIGFuZCBuZXh0cmlwIGFmdGVyIHRoZSBhZGp1c3RtZW50cyBhYm92ZS4KKyAg ICAgKi8KKyAgICBpZiAoICEoKHZtY2ItPl9lZmVyICYgRUZFUl9MTUEpICYmIHZtY2ItPmNzLmF0 dHIuZmllbGRzLmwpICkKKyAgICB7CisgICAgICAgIHJlZ3MtPnJpcCA9IHJlZ3MtPl9laXA7Cisg ICAgICAgIHZtY2ItPm5leHRyaXAgPSAodWludDMyX3Qpdm1jYi0+bmV4dHJpcDsKKyAgICB9CisK ICAgICB2bWNiLT5ldmVudGluaiA9IGV2ZW50aW5qOwogCiAgICAgaWYgKCBfZXZlbnQudmVjdG9y ID09IFRSQVBfcGFnZV9mYXVsdCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh dGUveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5j CmluZGV4IDNlNjAyZGEuLmZhOGQ5OGYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5jCkBAIC0xNjk0LDggKzE2OTQsNiBAQCBzdGF0aWMgaW50IGluamVjdF9zd2ludChlbnVt IHg4Nl9zd2ludF90eXBlIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmFpc2VfZXhu OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0KLSAgICAgICAgY3R4dC0+cmVncy0+ZWlwICs9 IGluc25fbGVuOwogICAgIH0KIAogICAgIHJjID0gb3BzLT5pbmplY3Rfc3dfaW50ZXJydXB0KHR5 cGUsIHZlY3RvciwgaW5zbl9sZW4sIGN0eHQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmggYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2Vt dWxhdGUuaAppbmRleCA2MGY5MTA1Li5mNGJjZjM2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv eDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAorKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv eDg2X2VtdWxhdGUuaApAQCAtNjQsNyArNjQsMTMgQEAgZW51bSB4ODZfc3dpbnRfdHlwZSB7CiAg ICAgeDg2X3N3aW50X2ludCwgICAvKiAweGNkICRuICovCiB9OwogCi0vKiBIb3cgbXVjaCBoZWxw IGlzIHJlcXVpcmVkIHdpdGggc29mdHdhcmUgZXZlbnQgaW5qZWN0aW9uPyAqLworLyoKKyAqIEhv dyBtdWNoIGhlbHAgaXMgcmVxdWlyZWQgd2l0aCBzb2Z0d2FyZSBldmVudCBpbmplY3Rpb24/Cisg KgorICogQWxsIHNvZnR3YXJlIGV2ZW50cyByZXR1cm4gZnJvbSB4ODZfZW11bGF0ZSgpIHdpdGgg WDg2RU1VTF9FWENFUFRJT04gYW5kCisgKiBmYXVsdC1saWtlIHNlbWFudGljcy4gIFRoaXMganVz dCBjb250cm9scyB3aGV0aGVyIHRoZSBlbXVsYXRvciBwZXJmb3JtcworICogcHJlc2VuY2UvZHBs L2V0YyBjaGVja3MgYW5kIHBvc3NpYmx5IHJhaXNlcyBleGNlcHRpb25zIGluc3RlYWQuCisgKi8K IGVudW0geDg2X3N3aW50X2VtdWxhdGlvbiB7CiAgICAgeDg2X3N3aW50X2VtdWxhdGVfbm9uZSwg LyogSGFyZHdhcmUgc3VwcG9ydHMgYWxsIHNvZnR3YXJlIGluamVjdGlvbiBwcm9wZXJseSAqLwog ICAgIHg4Nl9zd2ludF9lbXVsYXRlX2ljZWJwLC8qIEhlbHAgbmVlZGVkIHdpdGggYGljZWJwYCAo MHhmMSkgKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==