From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 10/24] x86/emul: Always use fault semantics for software events Date: Wed, 30 Nov 2016 13:50:27 +0000 Message-ID: <1480513841-7565-11-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-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: <1480513841-7565-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 YXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KCnYzOgog KiBOZXcKLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgICAgICB8IDQ0ICsr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfZW11bGF0 ZS94ODZfZW11bGF0ZS5jIHwgIDIgLS0KIHhlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5oIHwgIDggKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAy MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyBi L3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4IDkxMmQ4NzEuLjY1ZWVhYjcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL3N2bS5jCkBAIC0xMjA5LDcgKzEyMDksNyBAQCBzdGF0aWMgdm9pZCBzdm1faW5qZWN0X2V2 ZW50KGNvbnN0IHN0cnVjdCB4ODZfZXZlbnQgKmV2ZW50KQogICAgIHN0cnVjdCB2bWNiX3N0cnVj dCAqdm1jYiA9IGN1cnItPmFyY2guaHZtX3N2bS52bWNiOwogICAgIGV2ZW50aW5qX3QgZXZlbnRp bmogPSB2bWNiLT5ldmVudGluajsKICAgICBzdHJ1Y3QgeDg2X2V2ZW50IF9ldmVudCA9ICpldmVu dDsKLSAgICBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyA9IGd1ZXN0X2NwdV91c2Vy X3JlZ3MoKTsKKyAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyA9IGd1ZXN0X2NwdV91c2Vy X3JlZ3MoKTsKIAogICAgIHN3aXRjaCAoIF9ldmVudC52ZWN0b3IgKQogICAgIHsKQEAgLTEyNDIs MjcgKzEyNDIsMzggQEAgc3RhdGljIHZvaWQgc3ZtX2luamVjdF9ldmVudChjb25zdCBzdHJ1Y3Qg eDg2X2V2ZW50ICpldmVudCkKICAgICBldmVudGluai5maWVsZHMudiA9IDE7CiAgICAgZXZlbnRp bmouZmllbGRzLnZlY3RvciA9IF9ldmVudC52ZWN0b3I7CiAKLSAgICAvKiBSZWZlciB0byBBTUQg Vm9sIDI6IFN5c3RlbSBQcm9ncmFtbWluZywgMTUuMjAgRXZlbnQgSW5qZWN0aW9uLiAqLworICAg IC8qCisgICAgICogUmVmZXIgdG8gQU1EIFZvbCAyOiBTeXN0ZW0gUHJvZ3JhbW1pbmcsIDE1LjIw IEV2ZW50IEluamVjdGlvbi4KKyAgICAgKgorICAgICAqIE9uIGhhcmR3YXJlIGxhY2tpbmcgTmV4 dFJJUCBzdXBwb3J0LCBhbmQgYWxsIGhhcmR3YXJlIGluIHRoZSBjYXNlIG9mCisgICAgICogaWNl YnAsIHNvZnR3YXJlIGV2ZW50cyB3aXRoIHRyYXAgc2VtYW50aWNzIG5lZWQgZW11bGF0aW5nLCBz byAlZWlwIGluCisgICAgICogdGhlIHRyYXAgZnJhbWUgcG9pbnRzIGFmdGVyIHRoZSBpbnN0cnVj dGlvbi4KKyAgICAgKgorICAgICAqIFRoZSB4ODYgZW11bGF0b3IgKGlmIHJlcXVlc3RlZCBieSB0 aGUgeDg2X3N3aW50X2VtdWxhdGVfKiBjaG9pY2UpIHdpbGwKKyAgICAgKiBoYXZlIHBlcmZvcm1l ZCBjaGVja3Mgc3VjaCBhcyBwcmVzZW5jZS9kcGwvZXRjIGFuZCBiZWxpZXZlcyB0aGF0IHRoZQor ICAgICAqIGV2ZW50IGluamVjdGlvbiB3aWxsIHN1Y2NlZWQgd2l0aG91dCBmYXVsdGluZy4KKyAg ICAgKgorICAgICAqIFRoZSB4ODYgZW11bGF0b3Igd2lsbCBhbHdheXMgcHJvdmlkZSBmYXVsdCBz ZW1hbnRpY3MgZm9yIHNvZnR3YXJlCisgICAgICogZXZlbnRzLCB3aXRoIF90cmFwLmluc25fbGVu IHNldCBhcHByb3ByaWF0ZWx5LiAgSWYgdGhlIGluamVjdGlvbgorICAgICAqIHJlcXVpcmVzIGVt dWxhdGlvbiwgbW92ZSAlZWlwIGZvcndhcmRzIGF0IHRoaXMgcG9pbnQuCisgICAgICovCiAgICAg c3dpdGNoICggX2V2ZW50LnR5cGUgKQogICAgIHsKICAgICBjYXNlIFg4Nl9FVkVOVFRZUEVfU1df SU5URVJSVVBUOiAvKiBpbnQgJG4gKi8KLSAgICAgICAgLyoKLSAgICAgICAgICogU29mdHdhcmUg aW50ZXJydXB0cyAodHlwZSA0KSBjYW5ub3QgYmUgcHJvcGVybHkgaW5qZWN0ZWQgaWYgdGhlCi0g ICAgICAgICAqIHByb2Nlc3NvciBkb2Vzbid0IHN1cHBvcnQgTmV4dFJJUC4gIFdpdGhvdXQgTmV4 dFJJUCwgdGhlIGVtdWxhdG9yCi0gICAgICAgICAqIHdpbGwgaGF2ZSBwZXJmb3JtZWQgRFBMIGFu ZCBwcmVzZW5jZSBjaGVja3MgZm9yIHVzLCBhbmQgd2lsbCBoYXZlCi0gICAgICAgICAqIG1vdmVk IGVpcCBmb3J3YXJkIGlmIGFwcHJvcHJpYXRlLgotICAgICAgICAgKi8KICAgICAgICAgaWYgKCBj cHVfaGFzX3N2bV9ucmlwcyApCiAgICAgICAgICAgICB2bWNiLT5uZXh0cmlwID0gcmVncy0+ZWlw ICsgX2V2ZW50Lmluc25fbGVuOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWdzLT5laXAg Kz0gX2V2ZW50Lmluc25fbGVuOwogICAgICAgICBldmVudGluai5maWVsZHMudHlwZSA9IFg4Nl9F VkVOVFRZUEVfU1dfSU5URVJSVVBUOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgWDg2X0VW RU5UVFlQRV9QUklfU1dfRVhDRVBUSU9OOiAvKiBpY2VicCAqLwogICAgICAgICAvKgotICAgICAg ICAgKiBpY2VicCdzIGluamVjdGlvbiBtdXN0IGFsd2F5cyBiZSBlbXVsYXRlZC4gIFNvZnR3YXJl IGluamVjdGlvbiBoZWxwCi0gICAgICAgICAqIGluIHg4Nl9lbXVsYXRlIGhhcyBtb3ZlZCBlaXAg Zm9yd2FyZCwgYnV0IE5leHRSSVAgKGlmIHVzZWQpIHN0aWxsCi0gICAgICAgICAqIG5lZWRzIHNl dHRpbmcgb3IgZXhlY3V0aW9uIHdpbGwgcmVzdW1lIGZyb20gMC4KKyAgICAgICAgICogaWNlYnAn cyBpbmplY3Rpb24gbXVzdCBhbHdheXMgYmUgZW11bGF0ZWQsIGFzIGhhcmR3YXJlIGRvZXMgbm90 CisgICAgICAgICAqIHNwZWNpYWwgY2FzZSBIV19FWENFUFRJT04gd2l0aCB2ZWN0b3IgMSAoI0RC KSBhcyBoYXZpbmcgdHJhcAorICAgICAgICAgKiBzZW1hbnRpY3MuCiAgICAgICAgICAqLworICAg ICAgICByZWdzLT5laXAgKz0gX2V2ZW50Lmluc25fbGVuOwogICAgICAgICBpZiAoIGNwdV9oYXNf c3ZtX25yaXBzICkKICAgICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXA7CiAgICAg ICAgIGV2ZW50aW5qLmZpZWxkcy50eXBlID0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT047CkBA IC0xMjcwLDE2ICsxMjgxLDEzIEBAIHN0YXRpYyB2b2lkIHN2bV9pbmplY3RfZXZlbnQoY29uc3Qg c3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiAKICAgICBjYXNlIFg4Nl9FVkVOVFRZUEVfU1dfRVhD RVBUSU9OOiAvKiBpbnQzLCBpbnRvICovCiAgICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBBTUQg bWFudWFsIHN0YXRlcyB0aGF0IC50eXBlPTMgKEhXIGV4Y2VwdGlvbiksIC52ZWN0b3I9MyBvciA0 LAotICAgICAgICAgKiB3aWxsIHBlcmZvcm0gRFBMIGNoZWNrcy4gIEV4cGVyaW1lbnRhbGx5LCBE UEwgYW5kIHByZXNlbmNlIGNoZWNrcwotICAgICAgICAgKiBhcmUgaW5kZWVkIHBlcmZvcm1lZCwg ZXZlbiB3aXRob3V0IE5leHRSSVAgc3VwcG9ydC4KLSAgICAgICAgICoKLSAgICAgICAgICogSG93 ZXZlciB3aXRob3V0IE5leHRSSVAgc3VwcG9ydCwgdGhlIGV2ZW50IGluamVjdGlvbiBzdGlsbCBu ZWVkcwotICAgICAgICAgKiBmdWxseSBlbXVsYXRpbmcgdG8gZ2V0IHRoZSBjb3JyZWN0IGVpcCBp biB0aGUgdHJhcCBmcmFtZSwgeWV0IGdldAotICAgICAgICAgKiB0aGUgY29ycmVjdCBmYXVsdGlu ZyBlaXAgc2hvdWxkIGEgZmF1bHQgb2NjdXIuCisgICAgICAgICAqIEhhcmR3YXJlIHNwZWNpYWwg Y2FzZXMgSFdfRVhDRVBUSU9OIHdpdGggdmVjdG9ycyAzIGFuZCA0IGFzIGhhdmluZworICAgICAg ICAgKiB0cmFwIHNlbWFudGljcywgYW5kIHdpbGwgcGVyZm9ybSBEUEwgY2hlY2tzLgogICAgICAg ICAgKi8KICAgICAgICAgaWYgKCBjcHVfaGFzX3N2bV9ucmlwcyApCiAgICAgICAgICAgICB2bWNi LT5uZXh0cmlwID0gcmVncy0+ZWlwICsgX2V2ZW50Lmluc25fbGVuOworICAgICAgICBlbHNlCisg ICAgICAgICAgICByZWdzLT5laXAgKz0gX2V2ZW50Lmluc25fbGVuOwogICAgICAgICBldmVudGlu ai5maWVsZHMudHlwZSA9IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OOwogICAgICAgICBicmVh azsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMg Yi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwppbmRleCBlNDY0M2EzLi44 YTFmMWY1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUu YworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwpAQCAtMTY5NCw4 ICsxNjk0LDYgQEAgc3RhdGljIGludCBpbmplY3Rfc3dpbnQoZW51bSB4ODZfc3dpbnRfdHlwZSB0 eXBlLAogICAgICAgICAgICAgICAgICAgICBnb3RvIHJhaXNlX2V4bjsKICAgICAgICAgICAgIH0K ICAgICAgICAgfQotCi0gICAgICAgIGN0eHQtPnJlZ3MtPmVpcCArPSBpbnNuX2xlbjsKICAgICB9 CiAKICAgICByYyA9IG9wcy0+aW5qZWN0X3N3X2ludGVycnVwdCh0eXBlLCB2ZWN0b3IsIGluc25f bGVuLCBjdHh0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5oIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKaW5kZXggZjg0 Y2VkMi4uZmMyODk3NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9l bXVsYXRlLmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKQEAg LTY0LDcgKzY0LDEzIEBAIGVudW0geDg2X3N3aW50X3R5cGUgewogICAgIHg4Nl9zd2ludF9pbnQs ICAgLyogMHhjZCAkbiAqLwogfTsKIAotLyogSG93IG11Y2ggaGVscCBpcyByZXF1aXJlZCB3aXRo IHNvZnR3YXJlIGV2ZW50IGluamVjdGlvbj8gKi8KKy8qCisgKiBIb3cgbXVjaCBoZWxwIGlzIHJl cXVpcmVkIHdpdGggc29mdHdhcmUgZXZlbnQgaW5qZWN0aW9uPworICoKKyAqIEFsbCBzb2Z0d2Fy ZSBldmVudHMgcmV0dXJuIGZyb20geDg2X2VtdWxhdGUoKSB3aXRoIFg4NkVNVUxfRVhDRVBUSU9O IGFuZAorICogZmF1bHQtbGlrZSBzZW1hbnRpY3MuICBUaGlzIGp1c3QgY29udHJvbHMgd2hldGhl ciB0aGUgZW11bGF0b3IgcGVyZm9ybXMKKyAqIHByZXNlbmNlL2RwbC9ldGMgY2hlY2tzIGFuZCBw b3NzaWJseSByYWlzZXMgZXhjZXBpb25zIGluc3RlYWQuCisgKi8KIGVudW0geDg2X3N3aW50X2Vt dWxhdGlvbiB7CiAgICAgeDg2X3N3aW50X2VtdWxhdGVfbm9uZSwgLyogSGFyZHdhcmUgc3VwcG9y dHMgYWxsIHNvZnR3YXJlIGluamVjdGlvbiBwcm9wZXJseSAqLwogICAgIHg4Nl9zd2ludF9lbXVs YXRlX2ljZWJwLC8qIEhlbHAgbmVlZGVkIHdpdGggYGljZWJwYCAoMHhmMSkgKi8KLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==