From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: Re: [PATCH V3 2/29] VIOMMU: Add vIOMMU helper functions to create, destroy vIOMMU instance Date: Thu, 19 Oct 2017 14:31:22 +0800 Message-ID: <1ee12f2e-e894-3fc5-93bb-9cff4c78c18e@intel.com> References: <1506049330-11196-1-git-send-email-tianyu.lan@intel.com> <1506049330-11196-3-git-send-email-tianyu.lan@intel.com> <20171018140541.75y4yhy6i2ydnm7t@dhcp-3-128.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171018140541.75y4yhy6i2ydnm7t@dhcp-3-128.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Cc: tim@xen.org, kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, konrad.wilk@oracle.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, jbeulich@suse.com, chao.gao@intel.com List-Id: xen-devel@lists.xenproject.org T24gMjAxN+W5tDEw5pyIMTjml6UgMjI6MDUsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6Cj4gT24g VGh1LCBTZXAgMjEsIDIwMTcgYXQgMTE6MDE6NDNQTSAtMDQwMCwgTGFuIFRpYW55dSB3cm90ZToK Pj4gK2ludCB2aW9tbXVfZGVzdHJveV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKPj4gK3sKPj4g KyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgaWYgKCAhZC0+dmlvbW11ICkKPj4gKyAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gCj4gRU5PREVWIHdvdWxkIGJlIGJldHRlci4KCk9LLiBXaWxsIHVw ZGF0ZS4KCj4gCj4+ICsKPj4gKyAgICByZXQgPSBkLT52aW9tbXUtPm9wcy0+ZGVzdHJveShkLT52 aW9tbXUpOwo+PiArICAgIGlmICggcmV0IDwgMCApCj4+ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ ICsKPj4gKyAgICB4ZnJlZShkLT52aW9tbXUpOwo+PiArICAgIGQtPnZpb21tdSA9IE5VTEw7Cj4g Cj4gTmV3bGluZSBwcmVmZXJhYmx5LgoKT0suCgo+IAo+PiArICAgIHJldHVybiAwOwo+PiArfQo+ PiArCj4+ICtzdGF0aWMgc3RydWN0IHZpb21tdV90eXBlICp2aW9tbXVfZ2V0X3R5cGUodWludDY0 X3QgdHlwZSkKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgdmlvbW11X3R5cGUgKnZpb21tdV90eXBlID0g TlVMTDsKPj4gKwo+PiArICAgIHNwaW5fbG9jaygmdHlwZV9saXN0X2xvY2spOwo+PiArICAgIGxp c3RfZm9yX2VhY2hfZW50cnkoIHZpb21tdV90eXBlLCAmdHlwZV9saXN0LCBub2RlICkKPj4gKyAg ICB7Cj4+ICsgICAgICAgIGlmICggdmlvbW11X3R5cGUtPnR5cGUgPT0gdHlwZSApCj4+ICsgICAg ICAgIHsKPj4gKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0eXBlX2xpc3RfbG9jayk7Cj4+ICsg ICAgICAgICAgICByZXR1cm4gdmlvbW11X3R5cGU7Cj4+ICsgICAgICAgIH0KPj4gKyAgICB9Cj4+ ICsgICAgc3Bpbl91bmxvY2soJnR5cGVfbGlzdF9sb2NrKTsKPiAKPiBXaHkgZG8geW91IG5lZWQg YSBsb2NrIGhlcmUsIGFuZCBhIGxpc3QgYXQgYWxsPwo+IAo+IEFGQUlDVCB2SU9NTVUgdHlwZXMg d2lsbCBuZXZlciBiZSBhZGRlZCBhdCBydW50aW1lLgoKWWVzLCB3aWxsIHJlbW92ZSBpdC4KCj4g Cj4+ICsKPj4gKyAgICByZXR1cm4gTlVMTDsKPj4gK30KPj4gKwo+PiAraW50IHZpb21tdV9yZWdp c3Rlcl90eXBlKHVpbnQ2NF90IHR5cGUsIHN0cnVjdCB2aW9tbXVfb3BzICpvcHMpCj4+ICt7Cj4+ ICsgICAgc3RydWN0IHZpb21tdV90eXBlICp2aW9tbXVfdHlwZSA9IE5VTEw7Cj4+ICsKPj4gKyAg ICBpZiAoICF2aW9tbXVfZW5hYmxlZCgpICkKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4+ ICsKPj4gKyAgICBpZiAoIHZpb21tdV9nZXRfdHlwZSh0eXBlKSApCj4+ICsgICAgICAgIHJldHVy biAtRUVYSVNUOwo+PiArCj4+ICsgICAgdmlvbW11X3R5cGUgPSB4emFsbG9jKHN0cnVjdCB2aW9t bXVfdHlwZSk7Cj4+ICsgICAgaWYgKCAhdmlvbW11X3R5cGUgKQo+PiArICAgICAgICByZXR1cm4g LUVOT01FTTsKPj4gKwo+PiArICAgIHZpb21tdV90eXBlLT50eXBlID0gdHlwZTsKPj4gKyAgICB2 aW9tbXVfdHlwZS0+b3BzID0gb3BzOwo+PiArCj4+ICsgICAgc3Bpbl9sb2NrKCZ0eXBlX2xpc3Rf bG9jayk7Cj4+ICsgICAgbGlzdF9hZGRfdGFpbCgmdmlvbW11X3R5cGUtPm5vZGUsICZ0eXBlX2xp c3QpOwo+PiArICAgIHNwaW5fdW5sb2NrKCZ0eXBlX2xpc3RfbG9jayk7Cj4+ICsKPj4gKyAgICBy ZXR1cm4gMDsKPj4gK30KPiAKPiBBcyBtZW50aW9uZWQgYWJvdmUsIEkgdGhpbmsgdGhpcyB2aW9t bXVfcmVnaXN0ZXJfdHlwZSBoZWxwZXIgY291bGQgYmUKPiBhdm9pZGVkLiBJIHdvdWxkIHJhdGhl ciB1c2UgYSBtYWNybyBzaW1pbGFyIHRvIFJFR0lTVEVSX1NDSEVEVUxFUiBpbgo+IG9yZGVyIHRv IHBvcHVsYXRlIGFuIGFycmF5IGF0IGxpbmsgdGltZSwgYW5kIHRoZW4ganVzdCBpdGVyYXRlIG92 ZXIKPiBpdC4KPiAKPj4gKwo+PiArc3RhdGljIGludCB2aW9tbXVfY3JlYXRlKHN0cnVjdCBkb21h aW4gKmQsIHVpbnQ2NF90IHR5cGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgYmFzZV9hZGRyZXNzLCB1aW50NjRfdCBjYXBzLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90ICp2aW9tbXVfaWQpCj4gCj4gSSdtIHF1aXRlIHN1cmUgdGhpcyBkb2Vzbid0 IGNvbXBpbGUsIHlvdSBhcmUgYWRkaW5nIGEgc3RhdGljIGZ1bmN0aW9uCj4gaGVyZSB0aGF0J3Mg bm90IHVzZWQgYXQgYWxsIGluIHRoaXMgcGF0Y2guIFBsZWFzZSBiZSBjYXJlZnVsIGFuZCBkb24n dAo+IGludHJvZHVjZSBwYXRjaGVzIHRoYXQgd2lsbCBicmVhayB0aGUgYnVpbGQuCgpUaGlzIGZ1 bmN0aW9uIHdpbGwgYmUgdXNlZCBpbiB0aGUgbmV4dCBwYXRjaC4gIkRPTUNUTDogSW50cm9kdWNl IG5ldwpET01DVEwgY29tbWFuZHMgZm9yIHZJT01NVSBzdXBwb3J0LiIuIFNvIHRoaXMgZG9lc24n dCBicmVhayBwYXRjaHNldApidWlsZC4gV2lsbCBjb21iaW5lIHRoZXNlIHR3byBwYXRjaGVzIHRv IGF2b2lkIHN1Y2ggaXNzdWUuCgoKPiAKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgdmlvbW11ICp2aW9t bXU7Cj4+ICsgICAgc3RydWN0IHZpb21tdV90eXBlICp2aW9tbXVfdHlwZSA9IE5VTEw7Cj4+ICsg ICAgaW50IHJjOwo+PiArCj4+ICsgICAgLyogT25seSBzdXBwb3J0IG9uZSB2SU9NTVUgcGVyIGRv bWFpbi4gKi8KPj4gKyAgICBpZiAoIGQtPnZpb21tdSApCj4+ICsgICAgICAgIHJldHVybiAtRTJC SUc7Cj4+ICsKPj4gKyAgICB2aW9tbXVfdHlwZSA9IHZpb21tdV9nZXRfdHlwZSh0eXBlKTsKPj4g KyAgICBpZiAoICF2aW9tbXVfdHlwZSApCj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiAr Cj4+ICsgICAgaWYgKCAhdmlvbW11X3R5cGUtPm9wcyB8fCAhdmlvbW11X3R5cGUtPm9wcy0+Y3Jl YXRlICkKPj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gCj4gQ2FuIHRoaXMgcmVhbGx5IGhh cHBlbj8gV2hhdCdzIHRoZSBwb2ludCBpbiBoYXZpbmcgYSBpb21tdV90eXBlCj4gd2l0aG91dCBv cHMgb3Igd2l0aG91dCB0aGUgY3JlYXRlIG9wPyBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGFuIEFT U0VSVAo+IGluc3RlYWQuCgpIb3cgYWJvdXQgYWRkIEFTU0VSVCh2aW9tbXVfdHlwZS0+b3BzLT5j cmVhdGUpIGhlcmU/Cgo+IAo+PiArCj4+ICsgICAgdmlvbW11ID0geHphbGxvYyhzdHJ1Y3Qgdmlv bW11KTsKPj4gKyAgICBpZiAoICF2aW9tbXUgKQo+PiArICAgICAgICByZXR1cm4gLUVOT01FTTsK Pj4gKwo+PiArICAgIHZpb21tdS0+YmFzZV9hZGRyZXNzID0gYmFzZV9hZGRyZXNzOwo+PiArICAg IHZpb21tdS0+Y2FwcyA9IGNhcHM7Cj4+ICsgICAgdmlvbW11LT5vcHMgPSB2aW9tbXVfdHlwZS0+ b3BzOwo+PiArCj4+ICsgICAgcmMgPSB2aW9tbXUtPm9wcy0+Y3JlYXRlKGQsIHZpb21tdSk7Cj4+ ICsgICAgaWYgKCByYyA8IDAgKQo+PiArICAgIHsKPj4gKyAgICAgICAgeGZyZWUodmlvbW11KTsK Pj4gKyAgICAgICAgcmV0dXJuIHJjOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGQtPnZpb21tdSA9 IHZpb21tdTsKPj4gKwo+PiArICAgIC8qIE9ubHkgc3VwcG9ydCBvbmUgdklPTU1VIHBlciBkb21h aW4uICovCj4+ICsgICAgKnZpb21tdV9pZCA9IDA7Cj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ ICsKPj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2RlOiBDCj4+ICsgKiBj LWZpbGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+PiArICogdGFiLXdp ZHRoOiA0Cj4+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPj4gKyAqIEVuZDoKPj4gKyAqLwo+ PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaAo+PiBpbmRleCA1YjhmOGM2Li43NTBmMjM1IDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaAo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+PiBAQCAt MzMsNiArMzMsMTAgQEAKPj4gIERFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVfcnVuc3RhdGVf aW5mb19jb21wYXRfdCk7Cj4+ICAjZW5kaWYKPj4gIAo+PiArI2lmZGVmIENPTkZJR19WSU9NTVUK Pj4gKyNpbmNsdWRlIDx4ZW4vdmlvbW11Lmg+Cj4+ICsjZW5kaWYKPiAKPiBJIHdvdWxkIHN1Z2dl c3QgeW91IHBsYWNlIHRoZSBDT05GSUdfVklPTU1VIGluc2lkZSBvZiB0aGUgaGVhZGVyCj4gaXRz ZWxmLgo+IAo+PiArCj4+ICAvKgo+PiAgICogU3RhdHMKPj4gICAqCj4+IEBAIC00NzksNiArNDgz LDEwIEBAIHN0cnVjdCBkb21haW4KPj4gICAgICByd2xvY2tfdCB2bnVtYV9yd2xvY2s7Cj4+ICAg ICAgc3RydWN0IHZudW1hX2luZm8gKnZudW1hOwo+PiAgCj4+ICsjaWZkZWYgQ09ORklHX1ZJT01N VQo+PiArICAgIHN0cnVjdCB2aW9tbXUgKnZpb21tdTsKPj4gKyNlbmRpZgo+IAo+IFNob3VsZG4n dCB0aGlzIGdvIGluc2lkZSBvZiB4ODYvaHZtL2RvbWFpbi5oPyAoaHZtX2RvbWFpbikgUFYgZ3Vl c3RzCj4gd2lsbCBjZXJ0YWlubHkgbmV2ZXIgYmUgYWJsZSB0byB1c2UgaXQuCgp2SU9NTVUgZnJh bWV3b3JrIHNob3VsZCBiZSBnZW5lcmljIGZvciBhbGwgcGxhdGZvcm1zIGFuZCBzbyBkaWRuJ3Qg cHV0CnRoaXMgaW4gYXJjaC94ODYuCgo+IAo+PiArCj4+ICAgICAgLyogQ29tbW9uIG1vbml0b3Ig b3B0aW9ucyAqLwo+PiAgICAgIHN0cnVjdCB7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGludCBndWVz dF9yZXF1ZXN0X2VuYWJsZWQgICAgICAgOiAxOwo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eGVuL3Zpb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL3Zpb21tdS5oCj4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAuLjYzNmEyYTMKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysg Yi94ZW4vaW5jbHVkZS94ZW4vdmlvbW11LmgKPj4gQEAgLTAsMCArMSw2MyBAQAo+PiArLyoKPj4g KyAqIGluY2x1ZGUveGVuL3Zpb21tdS5oCj4+ICsgKgo+PiArICogQ29weXJpZ2h0IChjKSAyMDE3 LCBJbnRlbCBDb3Jwb3JhdGlvbgo+PiArICogQXV0aG9yOiBMYW4gVGlhbnl1IDx0aWFueXUubGFu QGludGVsLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo+PiArICogdW5kZXIgdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwK Pj4gKyAqIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24uCj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+PiArICogQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCj4+ ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yCj4+ICsgKiBtb3JlIGRldGFpbHMuCj4+ICsgKgo+PiArICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYWxvbmcgd2l0aAo+PiArICogdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4+ICsgKgo+PiArICovCj4+ICsjaWZuZGVmIF9f WEVOX1ZJT01NVV9IX18KPj4gKyNkZWZpbmUgX19YRU5fVklPTU1VX0hfXwo+PiArCj4+ICtzdHJ1 Y3QgdmlvbW11Owo+PiArCj4+ICtzdHJ1Y3QgdmlvbW11X29wcyB7Cj4+ICsgICAgaW50ICgqY3Jl YXRlKShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgdmlvbW11ICp2aW9tbXUpOwo+PiArICAgIGlu dCAoKmRlc3Ryb3kpKHN0cnVjdCB2aW9tbXUgKnZpb21tdSk7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1 Y3QgdmlvbW11IHsKPj4gKyAgICB1aW50NjRfdCBiYXNlX2FkZHJlc3M7Cj4+ICsgICAgdWludDY0 X3QgY2FwczsKPj4gKyAgICBjb25zdCBzdHJ1Y3QgdmlvbW11X29wcyAqb3BzOwo+PiArICAgIHZv aWQgKnByaXY7Cj4+ICt9Owo+PiArCj4+ICsjaWZkZWYgQ09ORklHX1ZJT01NVQo+IAo+IFdoeSBk byB5b3Ugb25seSBwcm90ZWN0IGNlcnRhaW4gcGFydHMgb2YgdGhlIGZpbGUgd2l0aAo+IENPTkZJ R19WSU9NTVU/CgpBZnRlciBzb21lIGNvbnNpZGVyYXRpb25zLCBDT05GSUdfVklPTU1VIHNob3Vs ZCBwcm90ZWN0IGFsbCBmaWVsZChuZXcKc3RydWN0dXJlIGRlZmluaXRpb24gYW5kIGZ1bmN0aW9u IGRlY2xhcmF0aW9uKSBpbiB0aGUgZmlsZSBleGNlcHQgc29tZQpkdW1teSBmdW5jdGlvbi4gVGhp cyB3aWxsIGhlbHAgdG8gcmVtb3ZlIHNvbWUgQ09ORklHX1ZJT01NVSBjaGVjayBpbgpvdGhlciBw bGFjZXMuCgo+IAo+PiArZXh0ZXJuIGJvb2wgb3B0X3Zpb21tdTsKPj4gK3N0YXRpYyBpbmxpbmUg Ym9vbCB2aW9tbXVfZW5hYmxlZCh2b2lkKQo+PiArewo+PiArICAgIHJldHVybiBvcHRfdmlvbW11 Owo+PiArfQo+PiArCj4+ICtpbnQgdmlvbW11X3JlZ2lzdGVyX3R5cGUodWludDY0X3QgdHlwZSwg c3RydWN0IHZpb21tdV9vcHMgKm9wcyk7Cj4+ICtpbnQgdmlvbW11X2Rlc3Ryb3lfZG9tYWluKHN0 cnVjdCBkb21haW4gKmQpOwo+PiArI2Vsc2UKPj4gK3N0YXRpYyBpbmxpbmUgaW50IHZpb21tdV9y ZWdpc3Rlcl90eXBlKHVpbnQ2NF90IHR5cGUsIHN0cnVjdCB2aW9tbXVfb3BzICpvcHMpCj4+ICt7 Cj4+ICsgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICt9Cj4gCj4gV2h5IGRvbid0IHlvdSBhbHNvIHBy b3ZpZGUgYSBkdW1teSB2aW9tbXVfZGVzdHJveV9kb21haW4gaGVscGVyIHRvIGJlCj4gdXNlZCBp biBkb21haW4uYz8KPiAKCkFmdGVyIGFib3ZlIGNoYW5nZSwgIEkgdGhpbmsgd2UganVzdCBuZWVk IHZpb21tdV9kZXN0cm95X2RvbWFpbigpIGFuZAp2aW9tbXVfZG9tY3RsKCkgd2hpY2ggaXMgY2Fs bGVkIGluIHRoZSBjb21tb24gY29kZSBwYXRoIGZvciB4ODYgYW5kIEFSTS4KCi0tIApCZXN0IHJl Z2FyZHMKVGlhbnl1IExhbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==