From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 11/24] x86/emul: Implement singlestep as a retire flag Date: Wed, 30 Nov 2016 13:50:28 +0000 Message-ID: <1480513841-7565-12-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 , Paul Durrant , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGJlaGF2aW91ciBvZiBzaW5nbGVzdGVwIGlzIHRvIHJhaXNlICNEQiBhZnRlciB0aGUgaW5z dHJ1Y3Rpb24gaGFzIGJlZW4KY29tcGxldGVkLCBidXQgaW1wbGVtZW50aW5nIGl0IHdpdGggaW5q ZWN0X2h3X2V4Y2VwdGlvbigpIGNhdXNlcyB4ODZfZW11bGF0ZSgpCnRvIHJldHVybiBYODZFTVVM X0VYQ0VQVElPTiwgZGVzcGl0ZSBzdWNjZXNmdWxseSBjb21wbGV0aW5nIGV4ZWN1dGlvbiBvZiB0 aGUKaW5zdHJ1Y3Rpb24sIGluY2x1ZGluZyByZWdpc3RlciB3cml0ZWJhY2suCgpJbnN0ZWFkLCB1 c2UgYSByZXRpcmUgZmxhZyB0byBpbmRpY2F0ZSBzaW5nbGVzdGVwLCB3aGljaCBjYXVzZXMgeDg2 X2VtdWxhdGUoKQp0byByZXR1cm4gWDg2RU1VTF9PS0FZLgoKVXBkYXRlIGFsbCBjYWxsZXJzIG9m IHg4Nl9lbXVsYXRlKCkgdG8gdXNlIHRoZSBuZXcgcmV0aXJlIGZsYWcuICBUaGlzIGZpeGVzCnRo ZSBiZWhhdmlvdXIgb2Ygc2luZ2xlc3RlcCBmb3Igc2hhZG93IHBhZ2V0YWJsZSB1cGRhdGVzIGFu ZCBtbWNmZy9tbWlvX3JvCmludGVyY2VwdHMsIHdoaWNoIHByZXZpb3VzbHkgZGlzY2FyZGVkIHRo ZSBleGNlcHRpb24uCgpXaXRoIHRoaXMgY2hhbmdlLCBhbGwgdXNlcyBvZiBYODZFTVVMX0VYQ0VQ VElPTiBmcm9tIHg4Nl9lbXVsYXRlKCkgYXJlCmJlbGlldmVkIHRvIGhhdmUgc3RyaWN0bHkgZmF1 bHQgc2VtYW50aWNzLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkND OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+Cgp2MzoKICogTmV3Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMg ICAgICAgICAgICAgfCAgMyArKysKIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAg ICAgIHwgMTEgKysrKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyAgICAg ICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv eDg2X2VtdWxhdGUuYyB8ICA5ICsrKystLS0tLQogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmggfCAgNiArKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUu YyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IGZlNjI1MDAuLjkxYzc5ZmEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCkBAIC0xNzg4LDYgKzE3ODgsOSBAQCBzdGF0aWMgaW50IF9odm1fZW11bGF0 ZV9vbmUoc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCwKICAgICBpZiAoIHJj ICE9IFg4NkVNVUxfT0tBWSApCiAgICAgICAgIHJldHVybiByYzsKIAorICAgIGlmICggaHZtZW11 bF9jdHh0LT5jdHh0LnJldGlyZS5zaW5nbGVzdGVwICkKKyAgICAgICAgaHZtX2luamVjdF9od19l eGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VWRU5UX05PX0VDKTsKKwogICAgIG5ld19pbnRyX3No YWRvdyA9IGh2bWVtdWxfY3R4dC0+aW50cl9zaGFkb3c7CiAKICAgICAvKiBNT1YtU1MgaW5zdHJ1 Y3Rpb24gdG9nZ2xlcyBNT1YtU1Mgc2hhZG93LCBlbHNlIHdlIGp1c3QgY2xlYXIgaXQuICovCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGI3 YzcxMjIuLjIzMWM3YmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9tbS5jCkBAIC01MzgyLDYgKzUzODIsOSBAQCBpbnQgcHR3cl9kb19wYWdlX2ZhdWx0 KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAgICAgaWYgKCByYyA9PSBYODZF TVVMX1VOSEFORExFQUJMRSApCiAgICAgICAgIGdvdG8gYmFpbDsKIAorICAgIGlmICggcHR3cl9j dHh0LmN0eHQucmV0aXJlLnNpbmdsZXN0ZXAgKQorICAgICAgICBwdl9pbmplY3RfaHdfZXhjZXB0 aW9uKFRSQVBfZGVidWcsIFg4Nl9FVkVOVF9OT19FQyk7CisKICAgICBwZXJmY19pbmNyKHB0d3Jf ZW11bGF0aW9ucyk7CiAgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKIApAQCAtNTUwMyw3 ICs1NTA2LDEzIEBAIGludCBtbWlvX3JvX2RvX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGxvbmcgYWRkciwKICAgICBlbHNlCiAgICAgICAgIHJjID0geDg2X2VtdWxhdGUoJmN0 eHQsICZtbWlvX3JvX2VtdWxhdGVfb3BzKTsKIAotICAgIHJldHVybiByYyAhPSBYODZFTVVMX1VO SEFORExFQUJMRSA/IEVYQ1JFVF9mYXVsdF9maXhlZCA6IDA7CisgICAgaWYgKCByYyA9PSBYODZF TVVMX1VOSEFORExFQUJMRSApCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCBjdHh0LnJl dGlyZS5zaW5nbGVzdGVwICkKKyAgICAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2Rl YnVnLCBYODZfRVZFTlRfTk9fRUMpOworCisgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsK IH0KIAogdm9pZCAqYWxsb2NfeGVuX3BhZ2V0YWJsZSh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5j CmluZGV4IDllZTQ4YTguLmRkZmI4MTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTM0MjIs NiArMzQyMiwxNiBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAg ICAgICAgIHYtPmFyY2gucGFnaW5nLmxhc3Rfd3JpdGVfZW11bF9vayA9IDA7CiAjZW5kaWYKIAor ICAgIGlmICggZW11bF9jdHh0LmN0eHQucmV0aXJlLnNpbmdsZXN0ZXAgKQorICAgIHsKKyAgICAg ICAgaWYgKCBpc19odm1fdmNwdSh2KSApCisgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2Vw dGlvbihUUkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOworICAgICAgICBlbHNlCisgICAgICAg ICAgICBwdl9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZGVidWcsIFg4Nl9FVkVOVF9OT19FQyk7 CisKKyAgICAgICAgZ290byBlbXVsYXRlX2RvbmU7CisgICAgfQorCiAjaWYgR1VFU1RfUEFHSU5H X0xFVkVMUyA9PSAzIC8qIFBBRSBndWVzdCAqLwogICAgIGlmICggciA9PSBYODZFTVVMX09LQVkg KSB7CiAgICAgICAgIGludCBpLCBlbXVsYXRpb25fY291bnQ9MDsKQEAgLTM0MzMsNyArMzQ0Myw3 IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAg IHNoYWRvd19jb250aW51ZV9lbXVsYXRpb24oJmVtdWxfY3R4dCwgcmVncyk7CiAgICAgICAgICAg ICB2LT5hcmNoLnBhZ2luZy5sYXN0X3dyaXRlX3dhc19wdCA9IDA7CiAgICAgICAgICAgICByID0g eDg2X2VtdWxhdGUoJmVtdWxfY3R4dC5jdHh0LCBlbXVsX29wcyk7Ci0gICAgICAgICAgICBpZiAo IHIgPT0gWDg2RU1VTF9PS0FZICkKKyAgICAgICAgICAgIGlmICggciA9PSBYODZFTVVMX09LQVkg JiYgIWVtdWxfY3R4dC5jdHh0LnJldGlyZS5yYXcgKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgIGVtdWxhdGlvbl9jb3VudCsrOwogICAgICAgICAgICAgICAgIGlmICggdi0+YXJjaC5w YWdpbmcubGFzdF93cml0ZV93YXNfcHQgKQpAQCAtMzQ0OSw2ICszNDU5LDE1IEBAIHN0YXRpYyBp bnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICBwZXJmY19pbmNyKHNoYWRvd19lbV9leF9mYWlsKTsKICAgICAgICAgICAgICAgICBU UkFDRV9TSEFET1dfUEFUSF9GTEFHKFRSQ0VfU0ZMQUdfRU1VTEFUSU9OX0xBU1RfRkFJTEVEKTsK KworICAgICAgICAgICAgICAgIGlmICggZW11bF9jdHh0LmN0eHQucmV0aXJlLnNpbmdsZXN0ZXAg KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBpc19odm1fdmNw dSh2KSApCisgICAgICAgICAgICAgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbihU UkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICAgICAgICAgICAgICBwdl9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZGVidWcs IFg4Nl9FVkVOVF9OT19FQyk7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAg YnJlYWs7IC8qIERvbid0IGVtdWxhdGUgYWdhaW4gaWYgd2UgZmFpbGVkISAqLwogICAgICAgICAg ICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2 X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCmluZGV4 IDhhMWYxZjUuLjBhZjUzMmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94 ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5j CkBAIC0yNDE3LDcgKzI0MTcsNiBAQCB4ODZfZW11bGF0ZSgKICAgICBzdHJ1Y3QgeDg2X2VtdWxh dGVfc3RhdGUgc3RhdGU7CiAgICAgaW50IHJjOwogICAgIHVpbnQ4X3QgYiwgZDsKLSAgICBib29s IHRmID0gY3R4dC0+cmVncy0+ZWZsYWdzICYgRUZMR19URjsKICAgICBzdHJ1Y3Qgb3BlcmFuZCBz cmMgPSB7IC5yZWcgPSBQVFJfUE9JU09OIH07CiAgICAgc3RydWN0IG9wZXJhbmQgZHN0ID0geyAu cmVnID0gUFRSX1BPSVNPTiB9OwogICAgIGVudW0geDg2X3N3aW50X3R5cGUgc3dpbnRfdHlwZTsK QEAgLTU0MTUsMTEgKzU0MTQsMTEgQEAgeDg2X2VtdWxhdGUoCiAgICAgaWYgKCAhbW9kZV82NGJp dCgpICkKICAgICAgICAgX3JlZ3MuZWlwID0gKHVpbnQzMl90KV9yZWdzLmVpcDsKIAotICAgICpj dHh0LT5yZWdzID0gX3JlZ3M7CisgICAgLyogV2FzIHNpbmdlc3RlcHBpbmcgYWN0aXZlIGF0IHRo ZSBzdGFydCBvZiB0aGlzIGluc3RydWN0aW9uPyAqLworICAgIGlmICggKHJjID09IFg4NkVNVUxf T0tBWSkgJiYgKGN0eHQtPnJlZ3MtPmVmbGFncyAmIEVGTEdfVEYpICkKKyAgICAgICAgY3R4dC0+ cmV0aXJlLnNpbmdsZXN0ZXAgPSB0cnVlOwogCi0gICAgLyogSW5qZWN0ICNEQiBpZiBzaW5nbGUt c3RlcCB0cmFjaW5nIHdhcyBlbmFibGVkIGF0IGluc3RydWN0aW9uIHN0YXJ0LiAqLwotICAgIGlm ICggdGYgJiYgKHJjID09IFg4NkVNVUxfT0tBWSkgJiYgb3BzLT5pbmplY3RfaHdfZXhjZXB0aW9u ICkKLSAgICAgICAgcmMgPSBvcHMtPmluamVjdF9od19leGNlcHRpb24oRVhDX0RCLCAtMSwgY3R4 dCkgPyA6IFg4NkVNVUxfRVhDRVBUSU9OOworICAgICpjdHh0LT5yZWdzID0gX3JlZ3M7CiAKICBk b25lOgogICAgIF9wdXRfZnB1KCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh dGUveDg2X2VtdWxhdGUuaCBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5o CmluZGV4IGZjMjg5NzYuLmRhODkyNGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5oCkBAIC00ODMsNiArNDgzLDcgQEAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQKICAgICAg ICAgICAgIGJvb2wgaGx0OjE7ICAgICAgICAgIC8qIEluc3RydWN0aW9uIEhMVGVkLiAqLwogICAg ICAgICAgICAgYm9vbCBtb3Zfc3M6MTsgICAgICAgLyogSW5zdHJ1Y3Rpb24gc2V0cyBNT1YtU1Mg aXJxIHNoYWRvdy4gKi8KICAgICAgICAgICAgIGJvb2wgc3RpOjE7ICAgICAgICAgIC8qIEluc3Ry dWN0aW9uIHNldHMgU1RJIGlycSBzaGFkb3cuICovCisgICAgICAgICAgICBib29sIHNpbmdsZXN0 ZXA6MTsgICAvKiBTaW5nbGVzdGVwcGluZyB3YXMgYWN0aXZlLiAqLwogICAgICAgICB9OwogICAg IH0gcmV0aXJlOwogfTsKQEAgLTU3MiwxMiArNTczLDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHg4 Nl9lbXVsYXRlX3dyYXBwZXIoCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCiAg ICAgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyAqb3BzKQogeworICAgIHVuc2lnbmVkIGxv bmcgb3JpZ19laXAgPSBjdHh0LT5yZWdzLT5laXA7CiAgICAgaW50IHJjID0geDg2X2VtdWxhdGUo Y3R4dCwgb3BzKTsKIAogICAgIC8qIFJldGlyZSBmbGFncyBzaG91bGQgb25seSBiZSBzZXQgZm9y IHN1Y2Nlc3NmdWwgaW5zdHJ1Y3Rpb24gZW11bGF0aW9uLiAqLwogICAgIGlmICggcmMgIT0gWDg2 RU1VTF9PS0FZICkKICAgICAgICAgQVNTRVJUKGN0eHQtPnJldGlyZS5yYXcgPT0gMCk7CiAKKyAg ICAvKiBBbGwgY2FzZXMgcmV0dXJuaW5nIFg4NkVNVUxfRVhDRVBUSU9OIHNob3VsZCBoYXZlIGZh dWx0IHNlbWFudGljcy4gKi8KKyAgICBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9OICkKKyAg ICAgICAgQVNTRVJUKGN0eHQtPnJlZ3MtPmVpcCA9PSBvcmlnX2VpcCk7CisKICAgICByZXR1cm4g cmM7CiB9CiAKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==