From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v8 3/3] VT-d: Fix vt-d Device-TLB flush timeout issue Date: Thu, 24 Mar 2016 13:57:59 +0800 Message-ID: <1458799079-79825-4-git-send-email-quan.xu@intel.com> References: <1458799079-79825-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458799079-79825-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Quan Xu , kevin.tian@intel.com, feng.wu@intel.com, dario.faggioli@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SWYgRGV2aWNlLVRMQiBmbHVzaCB0aW1lZCBvdXQsIHdlIHdvdWxkIGhpZGUgdGhlIHRhcmdldCBB VFMKZGV2aWNlIGFuZCBjcmFzaCB0aGUgZG9tYWluIG93bmluZyB0aGlzIEFUUyBkZXZpY2UuIElm IGltcGFjdGVkCmRvbWFpbiBpcyBoYXJkd2FyZSBkb21haW4sIGp1c3QgdGhyb3cgb3V0IGEgd2Fy bmluZy4KClRoZSBoaWRkZW4gZGV2aWNlIHNob3VsZCBiZSBkaXNhbGxvd2VkIHRvIGJlIGZ1cnRo ZXIgYXNzaWduZWQKdG8gYW55IGRvbWFpbi4KClNpZ25lZC1vZmYtYnk6IFF1YW4gWHUgPHF1YW4u eHVAaW50ZWwuY29tPgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAg fCAgNiArKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmggIHwgIDMgKy0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYyAgfCA1OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9h dHMuYyB8IDExICsrKystLS0KIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgICAg fCAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggOWYxNzE2YS4uOWEyMTRjNiAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvcGNpLmMKQEAgLTQyMCw3ICs0MjAsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BkZXYoc3RydWN0 IHBjaV9zZWcgKnBzZWcsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIHhmcmVlKHBkZXYpOwog fQogCi1zdGF0aWMgdm9pZCBfcGNpX2hpZGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQor dm9pZCBwY2lfaGlkZV9leGlzdGluZ19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAg ICAgaWYgKCBwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm47CkBAIC00MzcsNyArNDM3LDcg QEAgaW50IF9faW5pdCBwY2lfaGlkZV9kZXZpY2UoaW50IGJ1cywgaW50IGRldmZuKQogICAgIHBk ZXYgPSBhbGxvY19wZGV2KGdldF9wc2VnKDApLCBidXMsIGRldmZuKTsKICAgICBpZiAoIHBkZXYg KQogICAgIHsKLSAgICAgICAgX3BjaV9oaWRlX2RldmljZShwZGV2KTsKKyAgICAgICAgcGNpX2hp ZGVfZXhpc3RpbmdfZGV2aWNlKHBkZXYpOwogICAgICAgICByYyA9IDA7CiAgICAgfQogICAgIHBj aWRldnNfdW5sb2NrKCk7CkBAIC00NjcsNyArNDY3LDcgQEAgaW50IF9faW5pdCBwY2lfcm9fZGV2 aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbikKICAgICB9CiAKICAgICBfX3NldF9iaXQo UENJX0JERjIoYnVzLCBkZXZmbiksIHBzZWctPnJvX21hcCk7Ci0gICAgX3BjaV9oaWRlX2Rldmlj ZShwZGV2KTsKKyAgICBwY2lfaGlkZV9leGlzdGluZ19kZXZpY2UocGRldik7CiAKICAgICByZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4u aCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaAppbmRleCA2ZDMxODdkLi45 NGUyYzExIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCkBAIC02Miw3ICs2Miw4 IEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlk LAogaW50IHFpbnZhbF9kZXZpY2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKICAgICAgICAg ICAgICAgICAgICAgICAgIHUzMiBtYXhfaW52c19wZW5kLCB1MTYgc2lkLCB1MTYgc2l6ZSwgdTY0 IGFkZHIpOwogaW50IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11 LCB1MzIgbWF4X2ludnNfcGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNp ZCwgdTE2IHNpemUsIHU2NCBhZGRyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2 IGRpZCwgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdTE2IHNpemUsIHU2NCBhZGRyKTsKIAogdW5zaWduZWQgaW50IGdldF9jYWNoZV9saW5l X3NpemUodm9pZCk7CiB2b2lkIGNhY2hlbGluZV9mbHVzaChjaGFyICopOwpkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3FpbnZhbC5jCmluZGV4IGFkOWUyNjUuLjEwYzU2ODQgMTAwNjQ0Ci0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvcWludmFsLmMKQEAgLTIxNiw2ICsyMTYsNTggQEAgc3RhdGljIGludCBxdWV1 ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKICAgICByZXR1cm4g aW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKIH0KIAorc3RhdGljIHZvaWQgZGV2X2ludmFsaWRhdGVf aW90bGJfdGltZW91dChzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQor eworICAgIHN0cnVjdCBkb21haW4gKmQgPSBOVUxMOworICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2 OworCisgICAgaWYgKCB0ZXN0X2JpdChkaWQsIGlvbW11LT5kb21pZF9iaXRtYXApICkKKyAgICAg ICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChpb21tdS0+ZG9taWRfbWFwW2RpZF0pOworCisg ICAgaWYgKCBkID09IE5VTEwgKQorICAgICAgICByZXR1cm47CisKKyAgICBwY2lkZXZzX2xvY2so KTsKKworICAgIGZvcl9lYWNoX3BkZXYoZCwgcGRldikKKyAgICB7CisgICAgICAgIGlmICggKCBw ZGV2LT5zZWcgPT0gc2VnICkgJiYKKyAgICAgICAgICAgICAoIHBkZXYtPmJ1cyA9PSBidXMgKSAm JgorICAgICAgICAgICAgICggcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIEFTU0VSVCAoIHBkZXYtPmRvbWFpbiApOworICAgICAgICAgICAgbGlzdF9kZWwo JnBkZXYtPmRvbWFpbl9saXN0KTsKKyAgICAgICAgICAgIHBkZXYtPmRvbWFpbiA9IE5VTEw7Cisg ICAgICAgICAgICBwY2lfaGlkZV9leGlzdGluZ19kZXZpY2UocGRldik7CisgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHBjaWRldnNfdW5sb2NrKCk7CisKKyAgICBp ZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICBkb21haW5fY3Jhc2goZCk7CisK KyAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKK30KKworaW50IGRldl9pbnZhbGlkYXRlX3N5bmMo c3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHUx NiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCit7CisgICAgc3RydWN0IHFpX2N0cmwgKnFpX2N0cmwg PSBpb21tdV9xaV9jdHJsKGlvbW11KTsKKyAgICBpbnQgcmMgPSAwOworCisgICAgaWYgKCBxaV9j dHJsLT5xaW52YWxfbWFkZHIgKQorICAgIHsKKyAgICAgICAgcmMgPSBxdWV1ZV9pbnZhbGlkYXRl X3dhaXQoaW9tbXUsIDAsIDEsIDEpOworICAgICAgICBpZiAoIHJjID09IC1FVElNRURPVVQgKQor ICAgICAgICAgICAgZGV2X2ludmFsaWRhdGVfaW90bGJfdGltZW91dChpb21tdSwgZGlkLCBzZWcs IGJ1cywgZGV2Zm4pOworICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwogaW50IHFpbnZhbF9k ZXZpY2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKICAgICB1MzIgbWF4X2ludnNfcGVuZCwg dTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRyKQogewpAQCAtMjUwLDExICszMDIsMTMgQEAgaW50 IHFpbnZhbF9kZXZpY2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKIH0KIAogaW50IHFpbnZh bF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAotICAgIHUzMiBtYXhfaW52 c19wZW5kLCB1MTYgc2lkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpCisgICAgdTMyIG1heF9pbnZzX3Bl bmQsIHUxNiBkaWQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sIHUxNiBzaXplLCB1NjQgYWRk cikKIHsKKyAgICB1MTYgc2lkID0gUENJX0JERjIoYnVzLCBkZXZmbik7CisKICAgICBxaW52YWxf ZGV2aWNlX2lvdGxiKGlvbW11LCBtYXhfaW52c19wZW5kLCBzaWQsIHNpemUsIGFkZHIpOwogCi0g ICAgcmV0dXJuIGludmFsaWRhdGVfc3luYyhpb21tdSk7CisgICAgcmV0dXJuIGRldl9pbnZhbGlk YXRlX3N5bmMoaW9tbXUsIGRpZCwgc2VnLCBidXMsIGRldmZuKTsKIH0KIAogc3RhdGljIHZvaWQg cXVldWVfaW52YWxpZGF0ZV9pZWMoc3RydWN0IGlvbW11ICppb21tdSwgdTggZ3JhbnUsIHU4IGlt LCB1MTYgaWlkeCkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYv YXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCmluZGV4IDdiMWMw N2IuLjVkMWViZWEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYv YXRzLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtMTE2 LDcgKzExNiw2IEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11 LCB1MTYgZGlkLAogCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggcGRldiwgJmF0c19kZXZpY2Vz LCBsaXN0ICkKICAgICB7Ci0gICAgICAgIHUxNiBzaWQgPSBQQ0lfQkRGMihwZGV2LT5idXMsIHBk ZXYtPmRldmZuKTsKICAgICAgICAgYm9vbF90IHNiaXQ7CiAKICAgICAgICAgLyogT25seSBpbnZh bGlkYXRlIGRldmljZXMgdGhhdCBiZWxvbmcgdG8gdGhpcyBJT01NVSAqLwpAQCAtMTMzLDggKzEz Miw5IEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYg ZGlkLAogICAgICAgICAgICAgLyogaW52YWxpZGF0ZSBhbGwgdHJhbnNsYXRpb25zOiBzYml0PTEs Yml0XzYzPTAsYml0WzYyOjEyXT0xICovCiAgICAgICAgICAgICBzYml0ID0gMTsKICAgICAgICAg ICAgIGFkZHIgPSAofjBVTCA8PCBQQUdFX1NISUZUXzRLKSAmIDB4N0ZGRkZGRkZGRkZGRkZGRjsK LSAgICAgICAgICAgIHJldCA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+ YXRzX3F1ZXVlX2RlcHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpZCwgc2JpdCwgYWRkcik7CisgICAgICAgICAgICByZXQgPSBxaW52YWxfZGV2aWNlX2lv dGxiX3N5bmMoaW9tbXUsIHBkZXYtPmF0c19xdWV1ZV9kZXB0aCwgZGlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBwZGV2 LT5kZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYml0 LCBhZGRyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIERNQV9UTEJfUFNJX0ZM VVNIOgogICAgICAgICAgICAgaWYgKCAhZGV2aWNlX2luX2RvbWFpbihpb21tdSwgcGRldiwgZGlk KSApCkBAIC0xNTMsOCArMTUzLDkgQEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBp b21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAgICAgYWRkciB8PSAoKCh1NjQpMSA8 PCAoc2l6ZV9vcmRlciAtIDEpKSAtIDEpIDw8IFBBR0VfU0hJRlRfNEs7CiAgICAgICAgICAgICB9 CiAKLSAgICAgICAgICAgIHJldCA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRl di0+YXRzX3F1ZXVlX2RlcHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CisgICAgICAgICAgICByZXQgPSBxaW52YWxfZGV2aWNl X2lvdGxiX3N5bmMoaW9tbXUsIHBkZXYtPmF0c19xdWV1ZV9kZXB0aCwgZGlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBw ZGV2LT5kZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Yml0LCBhZGRyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgsICJpbnZhbGlkIHZ0LWQgZmx1 c2ggdHlwZVxuIik7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmggYi94ZW4vaW5j bHVkZS94ZW4vcGNpLmgKaW5kZXggNmVkMjlkZC4uYmI5Zjc5MSAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3BjaS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaApAQCAtMTE2LDYgKzEx Niw3IEBAIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnBjaV9nZXRfcm9fbWFwKHUxNiBzZWcpOwogaW50 IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sCiAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZfaW5mbyAqLCBub2RlaWRfdCBub2RlKTsKIGludCBw Y2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKTsKK3ZvaWQgcGNpX2hp ZGVfZXhpc3RpbmdfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIGludCBwY2lfcm9fZGV2 aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbik7CiBpbnQgcGNpX2hpZGVfZGV2aWNlKGlu dCBidXMsIGludCBkZXZmbik7CiBzdHJ1Y3QgcGNpX2RldiAqcGNpX2dldF9wZGV2KGludCBzZWcs IGludCBidXMsIGludCBkZXZmbik7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==