From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jennifer Herbert Subject: Re: Device model operation hypercall (DMOP, re qemu depriv) Date: Fri, 9 Sep 2016 16:16:14 +0100 Message-ID: <57D2D23E.9010601@citrix.com> References: <579A3A62.1020700@citrix.com> <22431.13158.46970.556765@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1biNYi-0005la-OO for xen-devel@lists.xenproject.org; Fri, 09 Sep 2016 15:17:40 +0000 In-Reply-To: <22431.13158.46970.556765@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ian Jackson , Jan Beulich , Andrew Cooper , dgdegra@tycho.nsa.gov, Wei Liu , George Dunlap , Stefano Stabellini , Tim Deegan , David Vrabel , Anthony Perard , Konrad Rzeszutek Wilk Cc: xen-devel List-Id: xen-devel@lists.xenproject.org T24gMDEvMDgvMTYgMTI6MzIsIElhbiBKYWNrc29uIHdyb3RlOgo+IEkgdGhpbmsgd2UgbmVlZCB0 byBpbnRyb2R1Y2UgYSBuZXcgaHlwZXJjYWxsICh3aGljaCBJIHdpbGwgY2FsbCBETU9QCj4gZm9y IG5vdykgd2hpY2ggbWF5IGF1Z21lbnQgb3IgcmVwbGFjZSBzb21lIG9mIEhWTUNUTC4gIExldCBt ZSBleHBsYWluOgo+CgpJIGJlbGlldmUgdGhlIG5ldyAnRE1PUCcgaHlwZXJjYWxsIGlzIGEgZ29v ZCBpZGVhLCAgYnV0IGZvbGxvd2luZyBvbgpmcm9tIGRpc2N1c3Npb25zLCBJIHByb3Bvc2UgYSBy ZXZpc2VkIGRlc2lnbiwgd2hpY2ggSSBwcmVzZW50IGJlbG93LgpQbGVhc2UgbGV0IG1lIGtub3cg d2hhdCB5b3UgdGhpbmsuCgpUaGFua3MsCkplbm55LgoKCkRNT1AgIChtdWx0aS1idWZmZXIgdmFy aWFudCkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCkludHJvZHVjdGlvbgotLS0tLS0t LS0tLS0KCkEgcHJldmlvdXMgcHJvcG9zYWwgZm9yIGEgJ0RNT1AnIHdhcyBwdXQgZm9yd2FyZCBi eSBJYW4gSmFja3NvbiBvbiB0aGUgMXN0Cm9mIEF1Z3VzdC4gVGhpcyBwcm9wb3NhbCBzZWVtIHZl cnkgcHJvbWlzaW5nLCBob3dldmVyIGEgcHJvYmxlbSB3YXMKaWRlbnRpZmllZCB3aXRoIGl0LCB0 aGF0IHRoaXMgcHJvcG9zYWwgYWRkcmVzc2VzLgoKVGhlIGFpbSBvZiBETU9QLCBhcyBiZWZvcmUs IGlzIHRvIHByZXZlbnQgYSBjb21wcm9taXNlZCBkZXZpY2UgbW9kZWwgZnJvbQpjb21wcm9taXNp bmcgZG9tYWlucyBvdGhlciB0aGVuIHRoZSBvbmUgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLiAoQW5k IGlzCnRoZXJlZm9yZSBsaWtlbHkgYWxyZWFkeSBjb21wcm9taXNlZCkKClRoZSBwcmV2aW91cyBw cm9wb3NhbCBhZGRzIGEgRE1PUCBoeXBlcmNhbGwsIGZvciB1c2UgYnkgdGhlIGRldmljZSBtb2Rl bHMsCndoaWNoIHBsYWNlcyB0aGUgZG9tYWluIElEIGluIGEgZml4ZWQgcGxhY2UsIHdpdGhpbiB0 aGUgY2FsbGluZyBhcmdzLApzdWNoIHRoYXQgdGhlIHByaXYgZHJpdmVyIGNhbiBhbHdheXMgZmlu ZCBpdCwgYW5kIG5vdCBuZWVkIHRvIGtub3cgYW55CmZ1cnRoZXIgZGV0YWlscyBhYm91dCB0aGUg cGFydGljdWxhciBETU9QIGluIG9yZGVyIHRvIHZhbGlkYXRlIGl0IGFnYWluc3QKcHJldmlvdXNs eSBzZXQgKHZpZSBpb2N0bCkgZG9tYWluLgoKVGhlIHByb2JsZW0gb2NjdXJzIHdoZW4geW91IGhh dmUgYSBETU9QIHdpdGggcmVmZXJlbmNlcyB0byBvdGhlciB1c2VyIG1lbW9yeQpvYmplY3RzLCBz dWNoIGFzIHdpdGggVHJhY2sgZGlydHkgVlJBTSAoQXMgdXNlZCB3aXRoIHRoZSBWR0EgYnVmZmVy KS4KSXMgdGhpcyBjYXNlLCB0aGUgYWRkcmVzcyBvZiB0aGlzIG90aGVyIHVzZXIgb2JqZWN0IG5l ZWRzIHRvIGJlIHZldHRlZCwKdG8gZW5zdXJlIGl0IGlzIG5vdCB3aXRoaW4gYSByZXN0cmljdGVk IGFkZHJlc3MgcmFuZ2VzLCBzdWNoIGFzIGtlcm5lbAptZW1vcnkuIFRoZSByZWFsIHByb2JsZW0g Y29tZXMgZG93biB0byBob3cgeW91IHdvdWxkIHZldCB0aGlzIGFkZHJlc3MgLQp0aGUgaWRlYSBw bGFjZSB0byBkbyB0aGlzIGlzIHdpdGhpbiB0aGUgcHJpdmNtZCBkcml2ZXIsIHNpbmNlIGl0IHdv dWxkIGhhdmUKa25vd2xlZGdlIG9mIHRoZSBhZGRyZXNzIHNwYWNlIGludm9sdmVkLiBIb3dldmVy LCB3aXRoIGEgcHJpbmNpcGFsIGdvYWwKb2YgRE1PUCB0byBhbGxvdyBwcml2Y21kIHRvIGJlIGZy ZWUgZnJvbSBhbnkga25vd2xlZGdlIG9mIERNT1AncyBzdWIgb3BzLAppdCB3b3VsZCBoYXZlIG5v IHdheSB0byBpZGVudGlmeSBhbnkgdXNlciBidWZmZXIgIGFkZHJlc3NlcyB0aGF0IG5lZWQKY2hl Y2tpbmcuICBUaGUgYWx0ZXJuYXRpdmUgb2YgYWxsb3dpbmcgdGhlIGh5cGVydmlzb3IgdG8gdmV0 IHRoZSBhZGRyZXNzCmlzIGFsc28gcHJvYmxlbWF0aWMsIHNpbmNlIGl0IGhhcyBubyBrbm93bGVk Z2Ugb2YgdGhlIGd1ZXN0IG1lbW9yeSBsYXlvdXQuCgoKVGhlIERlc2lnbgotLS0tLS0tLS0tCgpB cyB3aXRoIHRoZSBwcmV2aW91cyBkZXNpZ24sIHdlIHByb3ZpZGUgYSBuZXcgcmVzdHJpY3Rpb24g aW9jdGwsIHdoaWNoCnRha2VzIGEgZG9taWQgcGFyYW1ldGVyLiAgQWZ0ZXIgdGhhdCByZXN0cmlj dGlvbiBpb2N0bCBpcyBjYWxsZWQsIHRoZQpwcml2Y21kIGRyaXZlciB3aWxsIHBlcm1pdCBvbmx5 IERNT1AgaHlwZXJjYWxscywgYW5kIG9ubHkgd2l0aCB0aGUKc3BlY2lmaWVkIHRhcmdldCBkb21p ZC4KCkluIHRoZSBwcmV2aW91cyBkZXNpZ24sIGEgRE1PUCBjb25zaXN0ZWQgb2Ygb25lIGJ1ZmZl ciwgY29udGFpbmluZyBhbGwgb2YKdGhlIERNT1AgcGFyYW1ldGVycywgd2hpY2ggbWF5IGluY2x1 ZGUgZnVydGhlciBleHBsaWNpdCByZWZlcmVuY2VzIHRvCm1vcmUgYnVmZmVycy4gIEluIHRoaXMg ZGVzaWduLCBhbiBhcnJheSBvZiBidWZmZXJzIHdpdGggbGVuZ3RoIGlzIHByZXNlbnRlZCwKd2l0 aCB0aGUgZmlyc3Qgb25lIGNvbnRhaW5pbmcgdGhlIERNT1AgcGFyYW1ldGVycywgd2hpY2ggY291 bGQgaW1wbGljaXRseQpyZWZlcmVuY2UgdG8gZnVydGhlciBidWZmZXJzIGZyb20gd2l0aGluIGlu IHRoZSBhcnJheS4gSGVyZSwgdGhlIG9ubHkKdXNlciBidWZmZXJzIHBhc3NlZCwgYXJlIHRoYXQg Zm91bmQgd2l0aCB0aGUgYXJyYXksIGFuZCBzbyBhbGwgY2FuIGJlIAphdWRpdGVkCmZyb20gcHJp dmNtZC4gIFdpdGggdGhlIHBhc3Npbmcgb2YgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVycyBhcnJh eSwgcHJpdmNtZApkb2VzIG5vdCBuZWVkIHRvIGtub3cgd2hpY2ggRE1PUCBpdCBpcyB0byBhdWRp dCB0aGVtLgoKSWYgdGhlIGh5cGVydmlzb3IgZW5kcyB1cCB3aXRoIHRoZSB3cm9uZyBudW1iZXIg b2YgYnVmZmVycywgaXQgY2FuIHJlamVjdAp0aGUgRE1PUCBhdCB0aGF0IHBvaW50LgoKVGhlIGZv bGxvd2luZyBjb2RlIGlsbHVzdHJhdGVzIHRoaXMgaWRlYToKCnR5cGVkZWYgc3RydWN0IGRtX29w X2J1ZmZlciB7CiAgICAgWEVOX0dVRVNUX0hBTkRMRSh2b2lkKSBoOwogICAgIHNpemVfdCBsZW47 Cn0gZG1fb3BfYnVmZmVyX3Q7CgppbnQKSFlQRVJWSVNPUl9kZXZpY2VfbW9kZWxfb3AoCiAgICAg ZG9taWRfdCBkb21pZCwKICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmZmVycywKICAgICBYRU5fR1VF U1RfSEFORExFX1BBUkFNKGRtX29wX2J1ZmZlcl90KSBidWZmZXJzKQoKQGRvbWlkOiB0aGUgZG9t YWluIHRoZSBoeXBlcmNhbGwgb3BlcmF0ZXMgb24uCkBucl9idWZmZXJzOyB0aGUgbnVtYmVyIG9m IGJ1ZmZlcnMgaW4gdGhlIEBidWZmZXJzIGFycmF5LgoKQGJ1ZmZlcnM6IGFuIGFycmF5IG9mIGJ1 ZmZlcnMuICBAYnVmZmVyc1swXSBjb250YWlucyBkZXZpY2VfbW9kZWxfb3AgLSB0aGUKc3RydWN0 dXJlIGRlc2NyaWJpbmcgdGhlIHN1Yi1vcCBhbmQgaXRzIHBhcmFtZXRlcnMuIEBidWZmZXJzWzFd LCBAYnVmZmVyc1syXQpldGMuIG1heSBiZSB1c2VkIGJ5IGEgc3ViLW9wIGZvciBwYXNzaW5nIGFk ZGl0aW9uYWwgYnVmZmVycy4KCnN0cnVjdCBkZXZpY2VfbW9kZWxfb3AgewogICAgIHVpbnQzMl90 IG9wOwogICAgIHVuaW9uIHsKICAgICAgICAgIHN0cnVjdCBvcF8xIG9wMTsKICAgICAgICAgIHN0 cnVjdCBvcF8yIG9wMjsKICAgICAgICAgIC8qIGV0Yy4uLiAqLwogICAgIH0gdTsKfTsKCkl0IGlz IGZvcmJpZGRlbiBmb3IgdGhlIGFib3ZlIHN0cnVjdCAoZGV2aWNlX21vZGVsX29wKSB0byBjb250 YWluIGFueQpndWVzdCBoYW5kbGVzIC0gaWYgdGhleSBhcmUgbmVlZGVkLCB0aGV5IHNob3VsZCBp bnN0ZWFkIGJlIGluCkhZUEVSVklTT1JfZGV2aWNlX21vZGVsX29wLT5idWZmZXJzLgoKVmFsaWRh dGlvbiBieSBwcml2Y21kIGRyaXZlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklm IHRoZSBwcml2Y21kIGRyaXZlciBoYXMgYmVlbiByZXN0cmljdGVkIHRvIHNwZWNpZmljIGRvbWFp biAodXNpbmcgYQogIG5ldyBpb2N0bCksIHdoZW4gaXQgcmVjZWl2ZWQgYW4gb3AsIGl0IHdpbGw6 CgoxLiBDaGVjayBoeXBlcmNhbGwgaXMgRE1PUC4KCjIuIENoZWNrIGRvbWlkID09IHJlc3RyaWN0 ZWQgZG9taWQuCgozLiBGb3IgZWFjaCBAbnJfYnVmZmVycyBpbiBAYnVmZmVyczogQ2hlY2sgQGgg YW5kIEBsZW4gZ2l2ZSBhIGJ1ZmZlcgogICAgd2hvbGV5IGluIHRoZSB1c2VyIHNwYWNlIHBhcnQg b2YgdGhlIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gKGUuZy4sCiAgICBvbiBMaW51eCB1c2UgYWNj ZXNzX29rKCkpLgoKClhlbiBJbXBsZW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0KClNpbmNl IGEgRE1PUCBzdWIgb2YgbWF5IG5lZWQgdG8gY29weSBvciByZXR1cm4gYSBidWZmZXIgZnJvbSB0 aGUgZ3Vlc3QsCmFzIHdlbGwgYXMgdGhlIERNT1AgaXRzZWxmIHRvIGdpdCB0aGUgaW5pdGlhbCBi dWZmZXIsIGZ1bmN0aW9ucyBmb3IgZG9pbmcKdGhpcyB3b3VsZCBiZSB3cml0dGVuIGFzIGJlbG93 LiAgTm90ZSB0aGF0IGNhcmUgaXMgdGFrZW4gdG8gcHJldmVudApkYW1hZ2UgZnJvbSBidWZmZXIg dW5kZXIgb3Igb3ZlciBydW4gc2l0dWF0aW9ucy4gIElmIHRoZSBETU9QIGlzIGNhbGxlZAp3aXRo IGluc3VmZmljaWVudCBidWZmZXJzLCB6ZXJvcyB3aWxsIGJlIHJlYWQsIHdoaWxlIGV4dHJhIGlz IGlnbm9yZWQuCgoKaW50IGNvcHlfZG1fYnVmZmVyX2Zyb21fZ3Vlc3QoCiAgICAgdm9pZCAqZHN0 LCAgICAgICAgICAgICAgICAgICAgICAgIC8qIEtlcm5lbCBkZXN0aW5hdGlvbiBidWZmZXIgICAg ICAqLwogICAgIHNpemVfdCBtYXhfbGVuLCAgICAgICAgICAgICAgICAgICAvKiBTaXplIG9mIGRl c3RpbmF0aW9uIGJ1ZmZlciAgICAgKi8KICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKGRtX29w X2J1ZmZlcl90KSBidWZmZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBkbV9vcF9idWZmZXJzIHBhc3NlZCBpbnRvIERNT1AgKi8KICAgICB1bnNpZ25lZCBpbnQg bnJfYnVmZmVycywgICAgICAgICAgLyogdG90YWwgbnVtYmVyIG9mIGRtX29wX2J1ZmZlcnMgICov CiAgICAgdW5zaWduZWQgaW50IGlkeCkgICAgICAgICAgICAgICAgIC8qIEluZGV4IG9mIGJ1ZmZl ciB3ZSByZXF1aXJlICAgICAqLwp7CiAgICAgICAgIHN0cnVjdCBkbV9vcF9idWZmZXIgYnVmZmVy OwogICAgICAgICBpbnQgcmV0OwogICAgICAgICBzaXplX3QgbGVuOwoKICAgICAgICAgbWVtc2V0 KGRzdCwgMCwgbWF4X2xlbik7CgogICAgICAgICBpZiAoaWR4Pj1ucl9idWZmZXJzKQogICAgICAg ICAgICAgcmV0dXJuIC1FRkFVTFQ7CgogICAgICAgICByZXQgPSBjb3B5X2Zyb21fZ3Vlc3Rfb2Zm c2V0KCZidWZmZXIsIGJ1ZmZlcnMsIGlkeCwgMSk7CiAgICAgICAgIGlmICggcmV0ICE9IHNpemVv ZihidWZmZXIpICkKICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwoKICAgICAgICAgbGVuID0g bWluKG1heF9sZW4sIGJ1ZmZlci0+bGVuKTsKCiAgICAgICAgIHJldCA9IHJhd19jb3B5X2Zyb21f Z3Vlc3QoZHN0LCBidWZmZXItPmgsIGxlbik7CiAgICAgICAgIGlmICggcmV0ICE9IGxlbiApCiAg ICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKCiAgICAgICAgIHJldHVybiAwOwp9CgppbnQgY29w eV9kbV9idWZmZXJfdG9fZ3Vlc3QoLi4uKQp7CiAgICAgLyogU2ltaWxhciB0byB0aGUgYWJvdmUs IGV4Y2VwdCBjb3B5aW5nIHRoZSB0aGUgb3RoZXIKICAgICAgICBkaXJlY3Rpb24uICovCn0KClRo aXMgbGVhdmVzIGRvX2RldmljZV9tb2RlbF9vcCBlYXN5IHRvIGltcGxlbWVudCBhcyBiZWxvdzoK CgppbnQgZG9fZGV2aWNlX21vZGVsX29wKGRvbWlkX3QgZG9taWQsCiAgICB1bnNpZ25lZCBpbnQg bnJfYnVmZmVycywKICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oZG1fb3BfYnVmZmVyX3QpIGJ1 ZmZlcnMpCnsKICAgICBzdHJ1Y3QgZGV2aWNlX21vZGVsX29wIG9wOwoKICAgICByZXQgPSBjb3B5 X2RtX2J1ZmZlcl9mcm9tX2d1ZXN0KCZvcCwgc2l6ZW9mKG9wKSwgYnVmZmVycywgCm5yX2J1ZmZl cnMsIDApOwogICAgIGlmICggcmV0IDwgMCApCiAgICAgICAgIHJldHVybiByZXQ7CgogICAgIHN3 aXRjaCAob3AtPm9wKQogICAgIHsKICAgICAgICAgY2FzZSBETU9QX3N1Yl9vcDE6CiAgICAgICAg ICAgICAvKiAuLi4gKi8KICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8qIGV0Yy4gKi8KICAgICB9 CgogICAgIHJldHVybiAwOwp9CgoKU3VtbWFyeQotLS0tLS0tLQoKQWR2YW50YWdlcyBvZiB0aGlz IHN5c3RlbSwgb3ZlciBwcmV2aW91c2UgRE1PUCBwcm9wb3NhbHM6CgoKKiAgVGhlIHZhbGlkYXRp b24gb2YgYWRkcmVzcyByYW5nZXMgaXMgZWFzaWx5IGRvbmUgYnkgdGhlIHByaXZjbWQgZHJpdmVy LAogICAgdXNpbmcgc3RhbmRhcmQga2VybmVsIG1lY2hhbmlzbXMuICBObyBuZWVkIHRvIGdldCBY ZW4gdGhpbmtpbmcgYWJvdXQKICAgIGd1ZXN0IG1lbW9yeSBsYXlvdXQsIHdoaWNoIGl0IHNob3Vs ZCBiZSBpbmRlcGVuZGVudCBvZiwgYW5kIHBvdGVudGlhbGx5CiAgICBhZGRpbmcgY29uZnVzaW9u LgoKKiAgQXJiaXRyYXJ5IG51bWJlciBvZiBhZGRpdGlvbmFsIGFkZHJlc3MgcmFuZ2VzIHZhbGlk YXRlZCB3aXRoIHNhbWUKICAgIG1lY2hhbmlzbSBhcyB0aGUgaW5pdGlhbCBwYXJhbWV0ZXIgYmxv Y2suCgoKKiAgTm8gbmVlZCBmb3IgYW55IG5ldyBjb3B5X2Zyb21fZ3Vlc3QoKSB2YXJpYW50cyBp biB0aGUgaHlwZXJ2aXNvciwgd2hpY2gKICAgIGFtb25nIG90aGVyIHRoaW5ncywgcHJldmVudHMg Y29kZSB1c2luZyB0aGUgd3Jvbmcgb25lIGJ5IGVycm9yLAogICAgcG90ZW50aWFsbHkgYnlwYXNz aW5nIHNlY3VyaXR5LgoKCkFuZCBhcyB3aXRoIHRoZSBvcmlnaW5hbCBETU9QIHByb3Bvc2FsOgoK KiAgVGhlIFByaXZjbWQgZHJpdmVyLCBvciBhbnkgb3RoZXIga2VybmVsIHBhcnRzIHdpbGwgbm90 IG5lZWQgdG8gYmUKICAgIHVwZGF0ZWQgd2hlbiBuZXcgRE1PUHMgYXJlIGFkZGVkIG9yIGNoYW5n ZWQuCgoKRGlzYWR2YW50YWdlcyBvZiB0aGlzIHN5c3RlbToKCiogTWlub3Igc3R5bGlzdGljIGlz c3VlIHJlbGF0aW5nIHRvIGJ1ZmZlcnMgYmVpbmcgaW1wbGljaXRseSByZWZlcnJlZCB0by4KCgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=