From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: Re: [PATCH v7 09/11] vt-d: fix the IOMMU flush issue Date: Mon, 13 Jun 2016 08:50:56 +0000 Message-ID: <945CA011AD5F084CBEA3E851C0AB28894B8D9DAE@SHSMSX101.ccr.corp.intel.com> References: <1465376344-28290-1-git-send-email-quan.xu@intel.com> <1465376344-28290-10-git-send-email-quan.xu@intel.com> <945CA011AD5F084CBEA3E851C0AB28894B8D9860@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <945CA011AD5F084CBEA3E851C0AB28894B8D9860@SHSMSX101.ccr.corp.intel.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Xu, Quan" , "Tian, Kevin" , "xen-devel@lists.xen.org" , Jan Beulich Cc: "Wu, Feng" , "dario.faggioli@citrix.com" , Keir Fraser , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gSnVuZSAxMiwgMjAxNiA1OjI3IFBNLCBYdSwgUXVhbiA8cXVhbi54dUBpbnRlbC5jb20+IHdy b3RlOg0KPiBPbiBKdW5lIDEyLCAyMDE2IDM6MzMgUE0sIFRpYW4sIEtldmluIDxrZXZpbi50aWFu QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPiBGcm9tOiBYdSwgUXVhbg0KPiA+ID4gU2VudDogV2Vk bmVzZGF5LCBKdW5lIDA4LCAyMDE2IDQ6NTkgUE0gQEAgLTU0NSwxOCArNTQ5LDQyIEBADQo+IHN0 YXRpYw0KPiA+ID4gaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9hbGwodm9pZCkgIHsNCj4g PiA+ICAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOw0KPiA+ID4gICAgICBzdHJ1Y3Qg aW9tbXUgKmlvbW11Ow0KPiA+ID4gLSAgICBpbnQgZmx1c2hfZGV2X2lvdGxiOw0KPiA+ID4gKyAg ICBpbnQgcmMgPSAwOw0KPiA+ID4NCj4gPiA+ICAgICAgZmx1c2hfYWxsX2NhY2hlKCk7DQo+ID4g PiAgICAgIGZvcl9lYWNoX2RyaGRfdW5pdCAoIGRyaGQgKQ0KPiA+ID4gICAgICB7DQo+ID4gPiAg ICAgICAgICBpb21tdSA9IGRyaGQtPmlvbW11Ow0KPiA+ID4gLSAgICAgICAgaW9tbXVfZmx1c2hf Y29udGV4dF9nbG9iYWwoaW9tbXUsIDApOw0KPiA+ID4gLSAgICAgICAgZmx1c2hfZGV2X2lvdGxi ID0gZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpID8gMSA6IDA7DQo+ID4gPiAtICAgICAgICBpb21t dV9mbHVzaF9pb3RsYl9nbG9iYWwoaW9tbXUsIDAsIGZsdXNoX2Rldl9pb3RsYik7DQo+ID4gPiAr ICAgICAgICAvKg0KPiA+ID4gKyAgICAgICAgICogVGhlIGN1cnJlbnQgbG9naWMgZm9yIHJjIHJl dHVybnM6DQo+ID4gPiArICAgICAgICAgKiAgIC0gcG9zaXRpdmUgIGludm9rZSBpb21tdV9mbHVz aF93cml0ZV9idWZmZXIgdG8gZmx1c2ggY2FjaGUuDQo+ID4gPiArICAgICAgICAgKiAgIC0gemVy byAgICAgIG9uIHN1Y2Nlc3MuDQo+ID4gPiArICAgICAgICAgKiAgIC0gbmVnYXRpdmUgIG9uIGZh aWx1cmUuIENvbnRpbnVlIHRvIGZsdXNoIElPTU1VIElPVExCIG9uIGENCj4gPiA+ICsgICAgICAg ICAqICAgICAgICAgICAgICAgYmVzdCBlZmZvcnQgYmFzaXMuDQo+ID4gPiArICAgICAgICAgKg0K PiA+ID4gKyAgICAgICAgICogTW9yZW92ZXIsIElPTU1VIGZsdXNoIGhhbmRsZXJzIGZsdXNoX2Nv bnRleHRfcWkgYW5kDQo+ID4gZmx1c2hfaW90bGJfcWkNCj4gPiA+ICsgICAgICAgICAqIChvciBm bHVzaF9jb250ZXh0X3JlZyBhbmQgZmx1c2hfaW90bGJfcmVnLCBkZWVwIGZ1bmN0aW9ucyBpbiB0 aGUNCj4gPiA+ICsgICAgICAgICAqIGNhbGwgdHJlZXMgb2YgaW9tbXVfZmx1c2hfY29udGV4dF9n bG9iYWwgYW5kDQo+ID4gaW9tbXVfZmx1c2hfaW90bGJfZ2xvYmFsKQ0KPiA+ID4gKyAgICAgICAg ICogYXJlIHdpdGggdGhlIHNhbWUgbG9naWMgdG8gYnViYmxlIHVwIHBvc2l0aXZlIHJldHVybiB2 YWx1ZS4NCj4gPiA+ICsgICAgICAgICAqLw0KPiA+ID4gKyAgICAgICAgcmMgPSBpb21tdV9mbHVz aF9jb250ZXh0X2dsb2JhbChpb21tdSwgMCk7DQo+ID4gPiArICAgICAgICBpZiAoIHJjIDw9IDAg KQ0KPiA+ID4gKyAgICAgICAgew0KPiA+ID4gKyAgICAgICAgICAgIGludCBmbHVzaF9kZXZfaW90 bGIgPSBmaW5kX2F0c19kZXZfZHJoZChpb21tdSkgPyAxIDogMDsNCj4gPiA+ICsgICAgICAgICAg ICBpbnQgcmV0ID0gaW9tbXVfZmx1c2hfaW90bGJfZ2xvYmFsKGlvbW11LCAwLA0KPiA+ID4gKyBm bHVzaF9kZXZfaW90bGIpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgIEFTU0VSVChyZXQg PD0gMCk7DQo+ID4gPiArICAgICAgICAgICAgaWYgKCAhcmMgKQ0KPiA+ID4gKyAgICAgICAgICAg ICAgICByYyA9IHJldDsNCj4gPg0KPiA+IEknbSBkdWJpb3VzIGFib3V0IHRoZSBhc3NlcnRpb24g aGVyZS4gV2h5IGNhbid0IGFib3ZlIGNhbGwgcmV0dXJuIDENCj4gPiB1cG9uIGVycm9yIG9uIGVh cmxpZXIgZmx1c2g/IEkgZGlnZ2VkIGJhY2sgeW91ciBlYXJsaWVyIHJlcGx5IGxpa2U6DQo+ID4N Cj4gPiA+IFllcywgdGhlIGlvbW11X2ZsdXNoX2lvdGxiX2RzaSgpIGNhbiBhbHNvIHJldHVybiAx Lg0KPiA+ID4gTG9vayBhdCB0aGUgY2FsbCB0cmVlLCBhdCB0aGUgYmVnaW5uaW5nIG9mDQo+ID4g PiBmbHVzaF9jb250ZXh0X3FpKCkvZmx1c2hfaW90bGJfcWkoKSwgb3INCj4gPiA+IGZsdXNoX2Nv bnRleHRfcmVnKCkvZmx1c2hfaW90bGJfcmVnKCkuLg0KPiA+ID4NCj4gPiA+IElmIHJjIHdhcyBu ZWdhdGl2ZSB3aGVuIHdlIGNhbGwgaW9tbXVfZmx1c2hfY29udGV4dF9kZXZpY2UoKSwgaXQgaXMN Cj4gPiA+IGltcG9zc2libGUgdG8gcmV0dXJuIDEgZm9yIGlvbW11X2ZsdXNoX2lvdGxiX2RzaSgp Lg0KPiA+DQo+ID4gQnV0IEkgZG9uJ3QgdGhpbmsgaXQgYSBnb29kIGlkZWEgb2YgbWFraW5nIHNv IG11Y2ggYXNzdW1wdGlvbnMgYWJvdXQNCj4gPiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbnMgb2Yg dGhvc2UgbG93IGxldmVsIGludGVyZmFjZXMuDQo+ID4gQWxzbyBmbHVzaF9jb250ZXh0IG1heSBm YWlsIGZvciBvbmUgc3BlY2lmaWMgcmVhc29uIHdoaWNoIGRvZXNuJ3QNCj4gPiBibG9jayBmbHVz aF9pb3RsYiB3aGljaCBjb3VsZCBnZXQgMSByZXR1cm5lZCB3aGVuIGNhY2hpbmcgbW9kZSBpcw0K PiA+IGRpc2FibGVkLiBXZSdkIGJldHRlciBoYXZlIHJldHVybi0xIGNhc2UgY29ycmVjdGx5IGhh bmRsZWQgaGVyZS4NCj4gPg0KPiANCj4gWW91ciBjb21tZW50IGxvb2tzIHJlYXNvbmFibGUgaGVy ZS4gQ291bGQgSSBjaGFuZ2UgaXQgYXMgYmVsb3c6DQo+IA0KPiAtc3RhdGljIGludCBpb21tdV9m bHVzaF9pb3RsYl9wc2koDQo+IC0gICAgc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwgdTY0 IGFkZHIsIHVuc2lnbmVkIGludCBvcmRlciwNCj4gLSAgICBpbnQgZmx1c2hfbm9uX3ByZXNlbnRf ZW50cnksIGludCBmbHVzaF9kZXZfaW90bGIpDQo+ICtzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBp b21tdV9mbHVzaF9pb3RsYl9wc2koc3RydWN0IGlvbW11ICppb21tdSwgdTE2DQo+IGRpZCwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1NjQgYWRkciwg dW5zaWduZWQgaW50IG9yZGVyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBmbHVzaF9ub25fcHJlc2VudF9lbnRyeSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmx1c2hfZGV2X2lvdGxiKQ0K PiAgew0KPiAgICAgIHN0cnVjdCBpb21tdV9mbHVzaCAqZmx1c2ggPSBpb21tdV9nZXRfZmx1c2go aW9tbXUpOw0KPiAgICAgIGludCBzdGF0dXM7DQo+IEBAIC01NDYsMTcgKzU1MCwzNSBAQCBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9hbGwodm9pZCkNCj4gICAgICBzdHJ1Y3Qg YWNwaV9kcmhkX3VuaXQgKmRyaGQ7DQo+ICAgICAgc3RydWN0IGlvbW11ICppb21tdTsNCj4gICAg ICBpbnQgZmx1c2hfZGV2X2lvdGxiOw0KPiArICAgIGludCByYyA9IDA7DQo+IA0KPiAgICAgIGZs dXNoX2FsbF9jYWNoZSgpOw0KPiAgICAgIGZvcl9lYWNoX2RyaGRfdW5pdCAoIGRyaGQgKQ0KPiAg ICAgIHsNCj4gKyAgICAgICAgaW50IHJldDsNCj4gKw0KPiAgICAgICAgICBpb21tdSA9IGRyaGQt PmlvbW11Ow0KPiAtICAgICAgICBpb21tdV9mbHVzaF9jb250ZXh0X2dsb2JhbChpb21tdSwgMCk7 DQo+ICsgICAgICAgIC8qDQo+ICsgICAgICAgICAqIFRoZSBjdXJyZW50IGxvZ2ljIGZvciByYyBy ZXR1cm5zOg0KPiArICAgICAgICAgKiAgIC0gcG9zaXRpdmUgIGludm9rZSBpb21tdV9mbHVzaF93 cml0ZV9idWZmZXIgdG8gZmx1c2ggY2FjaGUuDQo+ICsgICAgICAgICAqICAgLSB6ZXJvICAgICAg b24gc3VjY2Vzcy4NCj4gKyAgICAgICAgICogICAtIG5lZ2F0aXZlICBvbiBmYWlsdXJlLiBDb250 aW51ZSB0byBmbHVzaCBJT01NVSBJT1RMQiBvbiBhDQo+ICsgICAgICAgICAqICAgICAgICAgICAg ICAgYmVzdCBlZmZvcnQgYmFzaXMuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICByYyA9IGlv bW11X2ZsdXNoX2NvbnRleHRfZ2xvYmFsKGlvbW11LCAwKTsNCj4gICAgICAgICAgZmx1c2hfZGV2 X2lvdGxiID0gZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpID8gMSA6IDA7DQo+IC0gICAgICAgIGlv bW11X2ZsdXNoX2lvdGxiX2dsb2JhbChpb21tdSwgMCwgZmx1c2hfZGV2X2lvdGxiKTsNCj4gKyAg ICAgICAgcmV0ID0gaW9tbXVfZmx1c2hfaW90bGJfZ2xvYmFsKGlvbW11LCAwLCBmbHVzaF9kZXZf aW90bGIpOw0KPiArICAgICAgICBpZiAoICFyYyApDQo+ICsgICAgICAgICAgICByYyA9IHJldDsN Cj4gKw0KPiArICAgICAgICBpZiAoIHJjID4gMCB8fCByZXQgPiAwICkNCj4gKyAgICAgICAgICAg IGlvbW11X2ZsdXNoX3dyaXRlX2J1ZmZlcihpb21tdSk7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBy ZXR1cm4gMDsNCj4gKyAgICBpZiAoIHJjID4gMCApDQo+ICsgICAgICAgIHJjID0gMDsNCj4gKw0K PiArICAgIHJldHVybiByYzsNCj4gIH0NCj4gDQo+IA0KDQpBaCwgdGhpcyBjaGFuZ2UgaXMgbm90 IGNvcnJlY3QsIGFzIHRoZSBwcmV2aW91cyBlcnJvciByZXR1cm4NCnZhbHVlIG1heSBiZSBlcmFz ZWQgYnkgdGhlIGxhdGVyIHBvc2l0aXZlIC8gemVybyB2YWx1ZS4NCg0KSSdsbCBoaWdobGlnaHQg dGhpcyBjaGFuZ2UgaXMgbm90IHVuZGVyIEphbidzIFItYiBpbiBuZXh0IHY4LiANCg0KLi4gSSB0 aGluayB0aGUgYmVsb3cgaXMgY29ycmVjdC4NCg0KDQoNCitzdGF0aWMgaW50IF9fbXVzdF9jaGVj ayBpb21tdV9mbHVzaF9pb3RsYl9wc2koc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IGFkZHIsIHVu c2lnbmVkIGludCBvcmRlciwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5LA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmx1c2hfZGV2X2lvdGxiKQ0KIHsNCiAg ICAgc3RydWN0IGlvbW11X2ZsdXNoICpmbHVzaCA9IGlvbW11X2dldF9mbHVzaChpb21tdSk7DQog ICAgIGludCBzdGF0dXM7DQpAQCAtNTQ2LDE3ICs1NTAsMzcgQEAgc3RhdGljIGludCBfX211c3Rf Y2hlY2sgaW9tbXVfZmx1c2hfYWxsKHZvaWQpDQogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZHJoZDsNCiAgICAgc3RydWN0IGlvbW11ICppb21tdTsNCiAgICAgaW50IGZsdXNoX2Rldl9pb3Rs YjsNCisgICAgaW50IHJjID0gMDsNCg0KICAgICBmbHVzaF9hbGxfY2FjaGUoKTsNCiAgICAgZm9y X2VhY2hfZHJoZF91bml0ICggZHJoZCApDQogICAgIHsNCisgICAgICAgIGludCBpb21tdV9yYywg aW9tbXVfcmV0Ow0KKw0KICAgICAgICAgaW9tbXUgPSBkcmhkLT5pb21tdTsNCi0gICAgICAgIGlv bW11X2ZsdXNoX2NvbnRleHRfZ2xvYmFsKGlvbW11LCAwKTsNCisgICAgICAgIGlvbW11X3JjID0g aW9tbXVfZmx1c2hfY29udGV4dF9nbG9iYWwoaW9tbXUsIDApOw0KICAgICAgICAgZmx1c2hfZGV2 X2lvdGxiID0gZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpID8gMSA6IDA7DQotICAgICAgICBpb21t dV9mbHVzaF9pb3RsYl9nbG9iYWwoaW9tbXUsIDAsIGZsdXNoX2Rldl9pb3RsYik7DQorICAgICAg ICBpb21tdV9yZXQgPSBpb21tdV9mbHVzaF9pb3RsYl9nbG9iYWwoaW9tbXUsIDAsIGZsdXNoX2Rl dl9pb3RsYik7DQorDQorICAgICAgICAvKg0KKyAgICAgICAgICogVGhlIGN1cnJlbnQgbG9naWMg Zm9yIHJldHVybnM6DQorICAgICAgICAgKiAgIC0gcG9zaXRpdmUgIGludm9rZSBpb21tdV9mbHVz aF93cml0ZV9idWZmZXIgdG8gZmx1c2ggY2FjaGUuDQorICAgICAgICAgKiAgIC0gemVybyAgICAg IG9uIHN1Y2Nlc3MuDQorICAgICAgICAgKiAgIC0gbmVnYXRpdmUgIG9uIGZhaWx1cmUuIENvbnRp bnVlIHRvIGZsdXNoIElPTU1VIElPVExCIG9uIGENCisgICAgICAgICAqICAgICAgICAgICAgICAg YmVzdCBlZmZvcnQgYmFzaXMuDQorICAgICAgICAgKi8NCisgICAgICAgIGlmICggaW9tbXVfcmMg PiAwIHx8IGlvbW11X3JldCA+IDAgKQ0KKyAgICAgICAgICAgIGlvbW11X2ZsdXNoX3dyaXRlX2J1 ZmZlcihpb21tdSk7DQorICAgICAgICBpZiAoIHJjID49IDAgKQ0KKyAgICAgICAgICAgIHJjID0g aW9tbXVfcmM7DQorICAgICAgICBpZiAoIHJjID49IDAgKQ0KKyAgICAgICAgICAgIHJjID0gaW9t bXVfcmV0Ow0KICAgICB9DQoNCi0gICAgcmV0dXJuIDA7DQorICAgIGlmICggcmMgPiAwICkNCisg ICAgICAgIHJjID0gMDsNCisNCisgICAgcmV0dXJuIHJjOw0KIH0NCg0KDQo+IA0KPiBBbHNvLCBK YW4sIHdoYXQncyB5b3VyIG9waW5pb24/DQo+IA0KPiBRdWFuDQo+IA0KPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBYZW4tZGV2ZWwgbWFpbGluZyBs aXN0DQo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnDQo+IGh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK