From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [PATCH V3 11/29] x86/hvm: Introduce a emulated VTD for HVM Date: Fri, 20 Oct 2017 10:46:40 +0800 Message-ID: <20171020024640.GE74825@op-computing> References: <1506049330-11196-1-git-send-email-tianyu.lan@intel.com> <1506049330-11196-12-git-send-email-tianyu.lan@intel.com> <20171019112035.juze2w6zmlswco4d@dhcp-3-128.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20171019112035.juze2w6zmlswco4d@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: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: Lan Tianyu , 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 List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBPY3QgMTksIDIwMTcgYXQgMTI6MjA6MzVQTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPk9uIFRodSwgU2VwIDIxLCAyMDE3IGF0IDExOjAxOjUyUE0gLTA0MDAsIExhbiBU aWFueXUgd3JvdGU6Cj4+IEZyb206IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Cj4+IAo+ PiBUaGlzIHBhdGNoIGFkZHMgY3JlYXRlL2Rlc3Ryb3kgZnVuY3Rpb24gZm9yIHRoZSBlbXVsYXRl ZCBWVEQKPj4gYW5kIGFkYXB0cyBpdCB0byB0aGUgY29tbW9uIFZJT01NVSBhYnN0cmFjdGlvbi4K Pj4gCj4+IFNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Cj4+IFNp Z25lZC1vZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29tPgo+PiAtLS0KPj4g IAo+PiAtb2JqLXkgKz0gaW9tbXUubwo+PiAgb2JqLXkgKz0gZG1hci5vCj4+IC1vYmoteSArPSB1 dGlscy5vCj4+IC1vYmoteSArPSBxaW52YWwubwo+PiAgb2JqLXkgKz0gaW50cmVtYXAubwo+PiAr b2JqLXkgKz0gaW9tbXUubwo+PiArb2JqLXkgKz0gcWludmFsLm8KPj4gIG9iai15ICs9IHF1aXJr cy5vCj4+ICtvYmoteSArPSB1dGlscy5vCj4KPldoeSBkbyB5b3UgbmVlZCB0byBzaHVmZmxlIHRo ZSBsaXN0IGFib3ZlPwoKSSBwbGFjZWQgdGhlbSBpbiBhbHBoYWJldGljIG9yZGVyLgoKPgo+QWxz byBJJ20gbm90IHN1cmUgdGhlIEludGVsIHZJT01NVSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbGl2 ZSBoZXJlLiBBcwo+eW91IGNhbiBzZWUgdGhlIHBhdGggaXM6Cj4KPnhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC8KPgo+VGhlIHZJT01NVSBpcyBub3QgdGllZCB0byBwYXNzdGhyb3VnaCBhdCBh bGwsIHNvIEkgd291bGQgcmF0aGVyIHBsYWNlCj5pdCBpbjoKPgo+eGVuL2RyaXZlcnMvdnZ0ZC8K Pgo+T3IgbWF5YmUgeW91IGNhbiBjcmVhdGUgc29tZXRoaW5nIGxpa2U6Cj4KPnhlbi9kcml2ZXJz L3Zpb21tdS8KPgo+U28gdGhhdCBhbGwgdklPTU1VIGltcGxlbWVudGF0aW9ucyBjYW4gc2hhcmUg c29tZSBjb2RlLgo+Cgp2dnRkIGFuZCB2dGQgdXNlIHRoZSBzYW1lIGhlYWRlciBmaWxlcyAoaS5n LiB2dGQuaCkuIFRoYXQgaXMgd2h5IHdlIHB1dAppdCB0aGVyZS4gIElmIHRoYXQsIHdlIHNob3Vs ZSBtb3ZlIHRoZSByZWxhdGVkIGhlYWRlciBmaWxlcyB0byBhIHB1YmxpYwpkaXJlY3RvcnkuCgo+ PiAgI2RlZmluZSBjYXBfaXNvY2goYykgICAgICAgICgoKGMpID4+IDIzKSAmIDEpCj4+ICAjZGVm aW5lIGNhcF9xb3MoYykgICAgICAgICgoKGMpID4+IDIyKSAmIDEpCj4+ICAjZGVmaW5lIGNhcF9t Z2F3KGMpICAgICAgICAoKCgoYykgPj4gMTYpICYgMHgzZikgKyAxKQo+PiAtI2RlZmluZSBjYXBf c2FnYXcoYykgICAgICAgICgoKGMpID4+IDgpICYgMHgxZikKPj4gKyNkZWZpbmUgY2FwX3NldF9t Z2F3KGMpICAgICAoKCgoYykgLSAxKSAmIDB4M2YpIDw8IDE2KQo+PiArI2RlZmluZSBjYXBfc2Fn YXcoYykgICAgICAgICgoKGMpID4+IERNQV9DQVBfU0FHQVdfU0hJRlQpICYgMHgxZikKPj4gICNk ZWZpbmUgY2FwX2NhY2hpbmdfbW9kZShjKSAgICAoKChjKSA+PiA3KSAmIDEpCj4+ICAjZGVmaW5l IGNhcF9waG1yKGMpICAgICAgICAoKChjKSA+PiA2KSAmIDEpCj4+ICAjZGVmaW5lIGNhcF9wbG1y KGMpICAgICAgICAoKChjKSA+PiA1KSAmIDEpCj4+IEBAIC0xMDQsMTAgKzExMywxNiBAQAo+PiAg I2RlZmluZSBlY2FwX25pb3RsYl9pdW5pdHMoZSkgICAgKCgoKGUpID4+IDI0KSAmIDB4ZmYpICsg MSkKPj4gICNkZWZpbmUgZWNhcF9pb3RsYl9vZmZzZXQoZSkgICAgICgoKChlKSA+PiA4KSAmIDB4 M2ZmKSAqIDE2KQo+PiAgI2RlZmluZSBlY2FwX2NvaGVyZW50KGUpICAgICAgICAgKChlID4+IDAp ICYgMHgxKQo+PiAtI2RlZmluZSBlY2FwX3F1ZXVlZF9pbnZhbChlKSAgICAgKChlID4+IDEpICYg MHgxKQo+PiArI2RlZmluZSBETUFfRUNBUF9RSV9TSElGVCAgICAgICAgMQo+PiArI2RlZmluZSBE TUFfRUNBUF9RSSAgICAgICAgICAgICAgKDFVTEwgPDwgRE1BX0VDQVBfUUlfU0hJRlQpCj4+ICsj ZGVmaW5lIGVjYXBfcXVldWVkX2ludmFsKGUpICAgICAoKGUgPj4gRE1BX0VDQVBfUUlfU0hJRlQp ICYgMHgxKQo+Cj5Mb29rcyBsaWtlIHRoaXMgY291bGQgYmUgYmFzZWQgb24gTUFTS19FWFRSIGlu c3RlYWQsIGJ1dCBzZWVpbmcgaG93Cj50aGUgZmlsZSBpcyBmdWxsIG9mIG9wZW4tY29kZWQgbWFz ayBleHRyYWN0cyBJJ20gbm90IHN1cmUgaXQncyB3b3J0aAo+aXQgYW55bW9yZS4KPgo+PiAgI2Rl ZmluZSBlY2FwX2Rldl9pb3RsYihlKSAgICAgICAgKChlID4+IDIpICYgMHgxKQo+PiAtI2RlZmlu ZSBlY2FwX2ludHJfcmVtYXAoZSkgICAgICAgKChlID4+IDMpICYgMHgxKQo+PiAtI2RlZmluZSBl Y2FwX2VpbShlKSAgICAgICAgICAgICAgKChlID4+IDQpICYgMHgxKQo+PiArI2RlZmluZSBETUFf RUNBUF9JUl9TSElGVCAgICAgICAgMwo+PiArI2RlZmluZSBETUFfRUNBUF9JUiAgICAgICAgICAg ICAgKDFVTEwgPDwgRE1BX0VDQVBfSVJfU0hJRlQpCj4+ICsjZGVmaW5lIGVjYXBfaW50cl9yZW1h cChlKSAgICAgICAoKGUgPj4gRE1BX0VDQVBfSVJfU0hJRlQpICYgMHgxKQo+PiArI2RlZmluZSBE TUFfRUNBUF9FSU1fU0hJRlQgICAgICAgNAo+PiArI2RlZmluZSBETUFfRUNBUF9FSU0gICAgICAg ICAgICAgKDFVTEwgPDwgRE1BX0VDQVBfRUlNX1NISUZUKQo+PiArI2RlZmluZSBlY2FwX2VpbShl KSAgICAgICAgICAgICAgKChlID4+IERNQV9FQ0FQX0VJTV9TSElGVCkgJiAweDEpCj4KPk1heWJl IHdvcnRoIHBsYWNpbmcgYWxsIHRoZSBETUFfRUNBUF8qIGRlZmluZXMgaW4gYSBzZXBhcmF0ZSBz ZWN0aW9uPwo+U2VlbXMgbGlrZSBob3cgaXQncyBkb25lIGZvciBvdGhlciBmZWF0dXJlcyBsaWtl IERNQV9GU1RTIG9yCj5ETUFfQ0NNRC4KCkdvdCBpdC4KCj4+ICsKPj4gKy8qIFN1cHBvcnRlZCBj YXBhYmlsaXRpZXMgYnkgdnZ0ZCAqLwo+PiArdW5zaWduZWQgaW50IHZ2dGRfY2FwcyA9IFZJT01N VV9DQVBfSVJRX1JFTUFQUElORzsKPgo+c3RhdGljPwo+Cj5PciBldmVuIGJldHRlciwgd2h5IGlz IHRoaXMgbm90IGEgZGVmaW5lIGxpa2UgVklPTU1VX01BWF9DQVBTIG9yCj5zaW1pbGFyLgoKWWVh aC4gSXQgc2hvdWxkIGJlIHJlbmFtZWQgdG8gVlZURF9NQVhfQ0FQUy4KCj4KPj4gKwo+PiArdW5p b24gaHZtX2h3X3Z2dGRfcmVncyB7Cj4+ICsgICAgdWludDMyX3QgZGF0YTMyWzI1Nl07Cj4+ICsg ICAgdWludDY0X3QgZGF0YTY0WzEyOF07Cj4+ICt9Owo+Cj5EbyB5b3UgcmVhbGx5IG5lZWQgdG8g c3RvcmUgYWxsIHRoZSByZWdpc3RlciBzcGFjZSBpbnN0ZWFkIG9mIG9ubHkKPnN0b3Jpbmcgc3Bl Y2lmaWMgcmVnaXN0ZXJzPwoKSSBwcmVmZXIgdG8gc3RvcmUgYWxsIHRoZSByZWdpc3RlcnMgZm9y IHdlIGRvbid0IG5lZWQgYSB0cmljayB0byBtYXAKdGhlIHJlYWwgb2Zmc2V0IGluIGhhcmR3YXJl IHRvIHRoZSBpbmRleCBpbiB0aGUgYXJyYXkuCgo+Cj4+ICsKPj4gK3N0cnVjdCB2dnRkIHsKPj4g KyAgICAvKiBBZGRyZXNzIHJhbmdlIG9mIHJlbWFwcGluZyBoYXJkd2FyZSByZWdpc3Rlci1zZXQg Ki8KPj4gKyAgICB1aW50NjRfdCBiYXNlX2FkZHI7Cj4+ICsgICAgdWludDY0X3QgbGVuZ3RoOwo+ Cj5UaGUgbGVuZ3RoIGZpZWxkIGRvZXNuJ3Qgc2VlbSB0byBiZSB1c2VkIGJlbG93LgoKd2lsbCBy ZW1vdmUgaXQuCgo+Cj4+ICsgICAgLyogUG9pbnQgYmFjayB0byB0aGUgb3duZXIgZG9tYWluICov Cj4+ICsgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluOwo+PiArICAgIHVuaW9uIGh2bV9od192dnRk X3JlZ3MgKnJlZ3M7Cj4KPkRvZXMgdGhpcyBuZWVkIHRvIGJlIGEgcG9pbnRlcj8KClNlZW1zIG5v dC4KPgo+PiArICAgIHN0cnVjdCBwYWdlX2luZm8gKnJlZ3NfcGFnZTsKPj4gK307Cj4+ICsKPj4g K3N0YXRpYyBpbnQgdnZ0ZF9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpb21tdSAq dmlvbW11KQo+PiArewo+PiArICAgIHN0cnVjdCB2dnRkICp2dnRkOwo+PiArICAgIGludCByZXQ7 Cj4+ICsKPj4gKyAgICBpZiAoICFpc19odm1fZG9tYWluKGQpIHx8ICh2aW9tbXUtPmJhc2VfYWRk cmVzcyAmIChQQUdFX1NJWkUgLSAxKSkgfHwKPj4gKyAgICAgICAgKH52dnRkX2NhcHMgJiB2aW9t bXUtPmNhcHMpICkKPj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKyAgICByZXQg PSAtRU5PTUVNOwo+PiArICAgIHZ2dGQgPSB4emFsbG9jX2J5dGVzKHNpemVvZihzdHJ1Y3QgdnZ0 ZCkpOwo+PiArICAgIGlmICggIXZ2dGQgKQo+PiArICAgICAgICByZXR1cm4gcmV0Owo+PiArCj4+ ICsgICAgdnZ0ZC0+cmVnc19wYWdlID0gYWxsb2NfZG9taGVhcF9wYWdlKGQsIE1FTUZfbm9fb3du ZXIpOwo+PiArICAgIGlmICggIXZ2dGQtPnJlZ3NfcGFnZSApCj4+ICsgICAgICAgIGdvdG8gb3V0 MTsKPj4gKwo+PiArICAgIHZ2dGQtPnJlZ3MgPSBfX21hcF9kb21haW5fcGFnZV9nbG9iYWwodnZ0 ZC0+cmVnc19wYWdlKTsKPj4gKyAgICBpZiAoICF2dnRkLT5yZWdzICkKPj4gKyAgICAgICAgZ290 byBvdXQyOwo+PiArICAgIGNsZWFyX3BhZ2UodnZ0ZC0+cmVncyk7Cj4KPk5vdCBzdXJlIHdoeSB2 dnRkLT5yZWdzIG5lZWRzIHRvIGJlIGEgcG9pbnRlciwgYW5kIHdoeSBpdCBuZWVkcyB0byB1c2UK PmEgZnVsbCBwYWdlLiBBRkFJQ1QgdGhlIHNpemUgb2YgaHZtX2h3X3Z2dGRfcmVncyBpcyAxMDI0 Qiwgc28geW91IGFyZQo+d2FzdGluZyAzLzQgb2YgYSBwYWdlLgoKSSB3aWxsIGRlZmluZSByZWdp c3RlcnMgYXMgYW4gYXJyYXkgZGlyZWN0bHkgYW5kIApzaHJpbmsgdGhlIHNpemUgdG8gdGhlIG51 bWJlciB3ZSBhcmUgcmVhbGx5IHVzZWQgbm93LgoKPj4gK3N0cnVjdCB2aW9tbXVfb3BzIHZ2dGRf aHZtX3ZteF9vcHMgPSB7Cj4+ICsgICAgLmNyZWF0ZSA9IHZ2dGRfY3JlYXRlLAo+PiArICAgIC5k ZXN0cm95ID0gdnZ0ZF9kZXN0cm95Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgaW50IHZ2dGRfcmVn aXN0ZXIodm9pZCkKPj4gK3sKPj4gKyAgICB2aW9tbXVfcmVnaXN0ZXJfdHlwZShWSU9NTVVfVFlQ RV9JTlRFTF9WVEQsICZ2dnRkX2h2bV92bXhfb3BzKTsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30K Pj4gK19faW5pdGNhbGwodnZ0ZF9yZWdpc3Rlcik7Cj4KPkFzIGNvbW1lbnRlZCBpbiBhbm90aGVy IHBhdGNoIEkgdGhpbmsgdGhlIHZJT01NVSB0eXBlcyBzaG91bGQgYmUKPnJlZ2lzdGVyZWQgdXNp bmcgYSBtZXRob2Qgc2ltaWxhciB0byBSRUdJU1RFUl9TQ0hFRFVMRVIuCgpCb3RoIGFyZSBvayB0 byBtZS4gV2lsbCBmb2xsb3cgeW91ciBzdWdnZXN0aW9uLgoKVGhhbmtzCkNoYW8KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=