From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v3 21/25] x86emul: add read-modify-write hook Date: Fri, 2 Feb 2018 16:13:05 +0000 Message-ID: References: <5A29550C020000780019585B@prv-mh.provo.novell.com> <5A295B3D020000780019598B@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ehe5O-00042q-Uq for xen-devel@lists.xenproject.org; Fri, 02 Feb 2018 16:21:10 +0000 In-Reply-To: <5A295B3D020000780019598B@prv-mh.provo.novell.com> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Jan Beulich , xen-devel Cc: George Dunlap List-Id: xen-devel@lists.xenproject.org T24gMDcvMTIvMTcgMTQ6MTYsIEphbiBCZXVsaWNoIHdyb3RlOgo+IEluIG9yZGVyIHRvIGNvcnJl Y3RseSBlbXVsYXRlIHJlYWQtbW9kaWZ5LXdyaXRlIGluc25zLCBlc3BlY2lhbGx5Cj4gTE9DS2Vk IG9uZXMsIHdlIHNob3VsZCBub3QgaXNzdWUgcmVhZHMgYW5kIHdyaXRlcyBzZXBhcmF0ZWx5LiBV c2UgYQo+IG5ldyBob29rIHRvIGNvbWJpbmUgYm90aCwgYW5kIGRvbid0IHVuaWZvcm1seSByZWFk IHRoZSBtZW1vcnkKPiBkZXN0aW5hdGlvbiBhbnltb3JlLiBJbnN0ZWFkLCBEc3RNZW0gb3Bjb2Rl cyB3aXRob3V0IE1vdiBub3cgbmVlZCB0bwo+IGhhdmUgZG9uZSBzbyBpbiB0aGVpciByZXNwZWN0 aXZlIGNhc2UgYmxvY2tzLgo+Cj4gQWxzbyBzdHJpcCBib2d1cyBfIHByZWZpeGVzIGZyb20gbWFj cm8gcGFyYW1ldGVycyB3aGVuIHRoaXMgb25seSBhZmZlY3RzCj4gbGluZXMgd2hpY2ggYXJlIGJl aW5nIGNoYW5nZWQgYW55d2F5Lgo+Cj4gSW4gdGhlIHRlc3QgaGFybmVzcywgYmVzaWRlcyBzb21l IHJlLW9yZGVyaW5nIHRvIGZhY2lsaXRhdGUgcnVubmluZyBhCj4gZmV3IHRlc3RzIHR3aWNlIChv bmUgd2l0aG91dCBhbmQgYSBzZWNvbmQgdGltZSB3aXRoIHRoZSAucm13IGhvb2sgaW4KPiBwbGFj ZSksIHRpZ2h0ZW4gYSBmZXcgRUZMQUdTIGNoZWNrcyBhbmQgYWRkIGEgdGVzdCBmb3IgTk9UIHdp dGggbWVtb3J5Cj4gb3BlcmFuZCAoaW4gcGFydGljdWxhciB0byB2ZXJpZnkgRUZMQUdTIGRvbid0 IGdldCBhbHRlcmVkIHRoZXJlKS4KPgo+IEZvciBub3cgbWFrZSB1c2Ugb2YgdGhlIGhvb2sgb3B0 aW9uYWwgZm9yIGNhbGxlcnM7IGV2ZW50dWFsbHkgd2UgbWF5Cj4gd2FudCB0byBjb25zaWRlciBt YWtpbmcgdGhpcyBtYW5kYXRvcnkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+Cj4gLS0tCj4gdjM6IE5ldy4KPiAtLS0KPiBUQkQ6IERvIHdlIHdhbnQg dG8gYWxzbyBzdXBwb3J0IG5vbi1sb2NrYWJsZSBSTVcgaW5zbnMgaW4gdGhlIG5ldyBob29rCj4g ICAgICBhbmQgaGVscGVyIChTSEwgJiBmcmllbmRzLCBTSExELCBTSFJEKT8KCldoYXQgd291bGQg dGhpcyBhY2hpZXZlP8KgIEkgc3VwcG9zZSBpdCB3b3VsZCBhdm9pZCBhIGRvdWJsZSBwYWdld2Fs ay4KCj4KPgo+IC0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCj4g KysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKPiBAQCAtMzM1Niwz NSArMzM4OCw4MyBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICB1bnNpZ25lZCBpbnQgaSwgbjsK PiAgICAgICAgICB1bnNpZ25lZCBsb25nIGR1bW15Owo+ICAKPiAtICAgIGNhc2UgMHgwMCAuLi4g MHgwNTogYWRkOiAvKiBhZGQgKi8KPiAtICAgICAgICBlbXVsYXRlXzJvcF9TcmNWKCJhZGQiLCBz cmMsIGRzdCwgX3JlZ3MuZWZsYWdzKTsKPiArICAgIGNhc2UgMHgwMDogY2FzZSAweDAxOiBhZGQ6 IC8qIGFkZCByZWcsbWVtICovCj4gKyAgICAgICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9 PSBPUF9NRU0gKQo+ICsgICAgICAgICAgICBzdGF0ZS0+cm13ID0gcm13X2FkZDsKPiArICAgICAg ICBlbHNlCj4gKyAgICAgICAgewo+ICsgICAgY2FzZSAweDAyIC4uLiAweDA1OiAvKiBhZGQgKi8K CkkgdGhpbmsgaXQgd291bGQgaGVscCB0byBpZGVudGlmeSByZWcscmVnIHNwZWNpZmljYWxseSBp biB0aGVzZSBjb21tZW50cy4KCj4gKyAgICAgICAgICAgIGVtdWxhdGVfMm9wX1NyY1YoImFkZCIs IHNyYywgZHN0LCBfcmVncy5lZmxhZ3MpOwo+ICsgICAgICAgIH0KPiAgICAgICAgICBicmVhazsK PiAgCj4gLSAgICBjYXNlIDB4MDggLi4uIDB4MGQ6IG9yOiAgLyogb3IgKi8KPiAtICAgICAgICBl bXVsYXRlXzJvcF9TcmNWKCJvciIsIHNyYywgZHN0LCBfcmVncy5lZmxhZ3MpOwo+ICsgICAgY2Fz ZSAweDA4OiBjYXNlIDB4MDk6IG9yOiAvKiBvciByZWcsbWVtICovCj4gKyAgICAgICAgaWYgKCBv cHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0gKQo+ICsgICAgICAgICAgICBzdGF0ZS0+cm13 ID0gcm13X29yOwo+ICsgICAgICAgIGVsc2UKPiArICAgICAgICB7Cj4gKyAgICBjYXNlIDB4MGEg Li4uIDB4MGQ6IC8qIG9yICovCj4gKyAgICAgICAgICAgIGVtdWxhdGVfMm9wX1NyY1YoIm9yIiwg c3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4gKyAgICAgICAgfQo+ICAgICAgICAgIGJyZWFrOwo+ ICAKPiAtICAgIGNhc2UgMHgxMCAuLi4gMHgxNTogYWRjOiAvKiBhZGMgKi8KPiAtICAgICAgICBl bXVsYXRlXzJvcF9TcmNWKCJhZGMiLCBzcmMsIGRzdCwgX3JlZ3MuZWZsYWdzKTsKPiArICAgIGNh c2UgMHgxMDogY2FzZSAweDExOiBhZGM6IC8qIGFkYyByZWcsbWVtICovCj4gKyAgICAgICAgaWYg KCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0gKQo+ICsgICAgICAgICAgICBzdGF0ZS0+ cm13ID0gcm13X2FkYzsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAgewo+ICsgICAgY2FzZSAw eDEyIC4uLiAweDE1OiAvKiBhZGMgKi8KPiArICAgICAgICAgICAgZW11bGF0ZV8yb3BfU3JjVigi YWRjIiwgc3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4gKyAgICAgICAgfQo+ICAgICAgICAgIGJy ZWFrOwo+ICAKPiAtICAgIGNhc2UgMHgxOCAuLi4gMHgxZDogc2JiOiAvKiBzYmIgKi8KPiAtICAg ICAgICBlbXVsYXRlXzJvcF9TcmNWKCJzYmIiLCBzcmMsIGRzdCwgX3JlZ3MuZWZsYWdzKTsKPiAr ICAgIGNhc2UgMHgxODogY2FzZSAweDE5OiBzYmI6IC8qIHNiYiByZWcsbWVtICovCj4gKyAgICAg ICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0gKQo+ICsgICAgICAgICAgICBz dGF0ZS0+cm13ID0gcm13X3NiYjsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAgewo+ICsgICAg Y2FzZSAweDFhIC4uLiAweDFkOiAvKiBzYmIgKi8KPiArICAgICAgICAgICAgZW11bGF0ZV8yb3Bf U3JjVigic2JiIiwgc3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4gKyAgICAgICAgfQo+ICAgICAg ICAgIGJyZWFrOwo+ICAKPiAtICAgIGNhc2UgMHgyMCAuLi4gMHgyNTogYW5kOiAvKiBhbmQgKi8K PiAtICAgICAgICBlbXVsYXRlXzJvcF9TcmNWKCJhbmQiLCBzcmMsIGRzdCwgX3JlZ3MuZWZsYWdz KTsKPiArICAgIGNhc2UgMHgyMDogY2FzZSAweDIxOiBhbmQ6IC8qIGFuZCByZWcsbWVtICovCj4g KyAgICAgICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0gKQo+ICsgICAgICAg ICAgICBzdGF0ZS0+cm13ID0gcm13X2FuZDsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAgewo+ ICsgICAgY2FzZSAweDIyIC4uLiAweDI1OiAvKiBhbmQgKi8KPiArICAgICAgICAgICAgZW11bGF0 ZV8yb3BfU3JjVigiYW5kIiwgc3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4gKyAgICAgICAgfQo+ ICAgICAgICAgIGJyZWFrOwo+ICAKPiAtICAgIGNhc2UgMHgyOCAuLi4gMHgyZDogc3ViOiAvKiBz dWIgKi8KPiAtICAgICAgICBlbXVsYXRlXzJvcF9TcmNWKCJzdWIiLCBzcmMsIGRzdCwgX3JlZ3Mu ZWZsYWdzKTsKPiArICAgIGNhc2UgMHgyODogY2FzZSAweDI5OiBzdWI6IC8qIHN1YiByZWcsbWVt ICovCj4gKyAgICAgICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0gKQo+ICsg ICAgICAgICAgICBzdGF0ZS0+cm13ID0gcm13X3N1YjsKPiArICAgICAgICBlbHNlCj4gKyAgICAg ICAgewo+ICsgICAgY2FzZSAweDJhIC4uLiAweDJkOiAvKiBzdWIgKi8KPiArICAgICAgICAgICAg ZW11bGF0ZV8yb3BfU3JjVigic3ViIiwgc3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4gKyAgICAg ICAgfQo+ICAgICAgICAgIGJyZWFrOwo+ICAKPiAtICAgIGNhc2UgMHgzMCAuLi4gMHgzNTogeG9y OiAvKiB4b3IgKi8KPiAtICAgICAgICBlbXVsYXRlXzJvcF9TcmNWKCJ4b3IiLCBzcmMsIGRzdCwg X3JlZ3MuZWZsYWdzKTsKPiArICAgIGNhc2UgMHgzMDogY2FzZSAweDMxOiB4b3I6IC8qIHhvciBy ZWcsbWVtICovCj4gKyAgICAgICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9NRU0g KQo+ICsgICAgICAgICAgICBzdGF0ZS0+cm13ID0gcm13X3hvcjsKPiArICAgICAgICBlbHNlCj4g KyAgICAgICAgewo+ICsgICAgY2FzZSAweDMyIC4uLiAweDM1OiAvKiB4b3IgKi8KPiArICAgICAg ICAgICAgZW11bGF0ZV8yb3BfU3JjVigieG9yIiwgc3JjLCBkc3QsIF9yZWdzLmVmbGFncyk7Cj4g KyAgICAgICAgfQo+ICAgICAgICAgIGJyZWFrOwo+ICAKPiAtICAgIGNhc2UgMHgzOCAuLi4gMHgz ZDogY21wOiAvKiBjbXAgKi8KPiArICAgIGNhc2UgMHgzODogY2FzZSAweDM5OiBjbXA6IC8qIGNt cCByZWcsbWVtICovCj4gKyAgICAgICAgaWYgKCBvcHMtPnJtdyAmJiBkc3QudHlwZSA9PSBPUF9N RU0gJiYKPiArICAgICAgICAgICAgIChyYyA9IHJlYWRfdWxvbmcoZHN0Lm1lbS5zZWcsIGRzdC5t ZW0ub2ZmLCAmZHN0LnZhbCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmJ5 dGVzLCBjdHh0LCBvcHMpKSAhPSBYODZFTVVMX09LQVkgKQoKV2h5IGRvZXMgcm13IG1hdHRlciBo ZXJlPyBjbXAgZG9lc24ndCB3cml0ZSB0byBpdHMgb3BlcmFuZHMuCgo+ICsgICAgICAgICAgICBn b3RvIGRvbmU7Cj4gKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCj4gKyAgICBjYXNlIDB4M2Eg Li4uIDB4M2Q6IC8qIGNtcCAqLwo+ICAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihsb2Nr X3ByZWZpeCwgRVhDX1VEKTsKPiAgICAgICAgICBlbXVsYXRlXzJvcF9TcmNWKCJjbXAiLCBzcmMs IGRzdCwgX3JlZ3MuZWZsYWdzKTsKPiAgICAgICAgICBkc3QudHlwZSA9IE9QX05PTkU7Cj4gQEAg LTM3MDAsNiArMzc4MCwxMyBAQCB4ODZfZW11bGF0ZSgKPiAgICAgICAgICBicmVhazsKPiAgCj4g ICAgICBjYXNlIDB4ODYgLi4uIDB4ODc6IHhjaGc6IC8qIHhjaGcgKi8KPiArICAgICAgICAvKiBU aGUgbG9jayBwcmVmaXggaXMgaW1wbGllZCBmb3IgdGhpcyBpbnNuLiAqLwo+ICsgICAgICAgIGxv Y2tfcHJlZml4ID0gMTsKCk9ubHkgZm9yIG1lbW9yeS7CoCBJLmUuIHRoaXMgc2hvdWxkIHByb2Jh Ymx5IGJlIGluc2lkZSBhbiBPUF9NRU0gY2hlY2suCgp+QW5kcmV3Cgo+ICsgICAgICAgIGlmICgg b3BzLT5ybXcgJiYgZHN0LnR5cGUgPT0gT1BfTUVNICkKPiArICAgICAgICB7Cj4gKyAgICAgICAg ICAgIHN0YXRlLT5ybXcgPSBybXdfeGNoZzsKPiArICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAg ICAgfQo+ICAgICAgICAgIC8qIFdyaXRlIGJhY2sgdGhlIHJlZ2lzdGVyIHNvdXJjZS4gKi8KPiAg ICAgICAgICBzd2l0Y2ggKCBkc3QuYnl0ZXMgKQo+ICAgICAgICAgIHsKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu b3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs