From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v9 3/3] VT-d: Fix vt-d Device-TLB flush timeout issue Date: Fri, 1 Apr 2016 22:47:39 +0800 Message-ID: <1459522059-102365-4-git-send-email-quan.xu@intel.com> References: <1459522059-102365-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: <1459522059-102365-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: kevin.tian@intel.com, feng.wu@intel.com, jbeulich@suse.com, dario.faggioli@citrix.com, Quan Xu List-Id: xen-devel@lists.xenproject.org SWYgRGV2aWNlLVRMQiBmbHVzaCB0aW1lZCBvdXQsIHdlIHdvdWxkIGhpZGUgdGhlIHRhcmdldCBB VFMKZGV2aWNlIGFuZCBjcmFzaCB0aGUgZG9tYWluIG93bmluZyB0aGlzIEFUUyBkZXZpY2UuIElm IGltcGFjdGVkCmRvbWFpbiBpcyBoYXJkd2FyZSBkb21haW4sIGp1c3QgdGhyb3cgb3V0IGEgd2Fy bmluZyAoZG9uZSBpbgpxdWV1ZV9pbnZhbGlkYXRlX3dhaXQpLgoKQnkgaGlkaW5nIHRoZSBkZXZp Y2UsIHdlIG1ha2Ugc3VyZSBpdCBjYW4ndCBiZSBhc3NpZ25lZCB0bwphbnkgZG9tYWluIGFueSBs b25nZXIgKHNlZSBkZXZpY2VfYXNzaWduZWQpLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVh bi54dUBpbnRlbC5jb20+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAg ICB8ICA2ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaCAgfCAgMyAr LQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jICB8IDU4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2 L2F0cy5jIHwgMTEgKysrKy0tLQogeGVuL2luY2x1ZGUveGVuL3BjaS5oICAgICAgICAgICAgICAg ICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9wY2kuYwppbmRleCA5ZjE3MTZhLi45YTIxNGM2IDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9wY2kuYwpAQCAtNDIwLDcgKzQyMCw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGRldihzdHJ1 Y3QgcGNpX3NlZyAqcHNlZywgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgeGZyZWUocGRldik7 CiB9CiAKLXN0YXRpYyB2b2lkIF9wY2lfaGlkZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYp Cit2b2lkIHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsK ICAgICBpZiAoIHBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybjsKQEAgLTQzNyw3ICs0Mzcs NyBAQCBpbnQgX19pbml0IHBjaV9oaWRlX2RldmljZShpbnQgYnVzLCBpbnQgZGV2Zm4pCiAgICAg cGRldiA9IGFsbG9jX3BkZXYoZ2V0X3BzZWcoMCksIGJ1cywgZGV2Zm4pOwogICAgIGlmICggcGRl diApCiAgICAgewotICAgICAgICBfcGNpX2hpZGVfZGV2aWNlKHBkZXYpOworICAgICAgICBwY2lf aGlkZV9leGlzdGluZ19kZXZpY2UocGRldik7CiAgICAgICAgIHJjID0gMDsKICAgICB9CiAgICAg cGNpZGV2c191bmxvY2soKTsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBpbnQgX19pbml0IHBjaV9yb19k ZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKQogICAgIH0KIAogICAgIF9fc2V0X2Jp dChQQ0lfQkRGMihidXMsIGRldmZuKSwgcHNlZy0+cm9fbWFwKTsKLSAgICBfcGNpX2hpZGVfZGV2 aWNlKHBkZXYpOworICAgIHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShwZGV2KTsKIAogICAgIHJl dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCmluZGV4IDZkMzE4N2Qu Ljk0ZTJjMTEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4u aAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgKQEAgLTYyLDcgKzYy LDggQEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBk aWQsCiBpbnQgcWludmFsX2RldmljZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAogICAgICAg ICAgICAgICAgICAgICAgICAgdTMyIG1heF9pbnZzX3BlbmQsIHUxNiBzaWQsIHUxNiBzaXplLCB1 NjQgYWRkcik7CiBpbnQgcWludmFsX2RldmljZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21tdSAqaW9t bXUsIHUzMiBtYXhfaW52c19wZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYg c2lkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 MTYgZGlkLCB1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1MTYgc2l6ZSwgdTY0IGFkZHIpOwogCiB1bnNpZ25lZCBpbnQgZ2V0X2NhY2hlX2xp bmVfc2l6ZSh2b2lkKTsKIHZvaWQgY2FjaGVsaW5lX2ZsdXNoKGNoYXIgKik7CmRpZmYgLS1naXQg YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvcWludmFsLmMKaW5kZXggZDEyNjYxYi4uMmM1NGRjMCAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMjE3LDYgKzIxNyw1OCBAQCBzdGF0aWMgaW50IGlu dmFsaWRhdGVfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11KQogICAgIHJldHVybiAwOwogfQogCitz dGF0aWMgdm9pZCBkZXZfaW52YWxpZGF0ZV9pb3RsYl90aW1lb3V0KHN0cnVjdCBpb21tdSAqaW9t bXUsIHUxNiBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUx NiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCit7CisgICAgc3RydWN0IGRvbWFpbiAqZCA9IE5VTEw7 CisgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CisKKyAgICBpZiAoIHRlc3RfYml0KGRpZCwgaW9t bXUtPmRvbWlkX2JpdG1hcCkgKQorICAgICAgICBkID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKGlv bW11LT5kb21pZF9tYXBbZGlkXSk7CisKKyAgICBpZiAoIGQgPT0gTlVMTCApCisgICAgICAgIHJl dHVybjsKKworICAgIHBjaWRldnNfbG9jaygpOworCisgICAgZm9yX2VhY2hfcGRldihkLCBwZGV2 KQorICAgIHsKKyAgICAgICAgaWYgKCAoIHBkZXYtPnNlZyA9PSBzZWcgKSAmJgorICAgICAgICAg ICAgICggcGRldi0+YnVzID09IGJ1cyApICYmCisgICAgICAgICAgICAgKCBwZGV2LT5kZXZmbiA9 PSBkZXZmbiApICkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHBkZXYtPmRvbWFpbik7 CisgICAgICAgICAgICBsaXN0X2RlbCgmcGRldi0+ZG9tYWluX2xpc3QpOworICAgICAgICAgICAg cGRldi0+ZG9tYWluID0gTlVMTDsKKyAgICAgICAgICAgIHBjaV9oaWRlX2V4aXN0aW5nX2Rldmlj ZShwZGV2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcGNp ZGV2c191bmxvY2soKTsKKworICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAg ICAgIGRvbWFpbl9jcmFzaChkKTsKKworICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOworfQorCitp bnQgZGV2X2ludmFsaWRhdGVfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikKK3sKKyAgICBz dHJ1Y3QgcWlfY3RybCAqcWlfY3RybCA9IGlvbW11X3FpX2N0cmwoaW9tbXUpOworICAgIGludCBy YyA9IDA7CisKKyAgICBpZiAoIHFpX2N0cmwtPnFpbnZhbF9tYWRkciApCisgICAgeworICAgICAg ICByYyA9IHF1ZXVlX2ludmFsaWRhdGVfd2FpdChpb21tdSwgMCwgMSwgMSk7CisgICAgICAgIGlm ICggcmMgPT0gLUVUSU1FRE9VVCApCisgICAgICAgICAgICBkZXZfaW52YWxpZGF0ZV9pb3RsYl90 aW1lb3V0KGlvbW11LCBkaWQsIHNlZywgYnVzLCBkZXZmbik7CisgICAgfQorCisgICAgcmV0dXJu IHJjOworfQorCiBpbnQgcWludmFsX2RldmljZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAog ICAgIHUzMiBtYXhfaW52c19wZW5kLCB1MTYgc2lkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpCiB7CkBA IC0yNTEsMTEgKzMwMywxMyBAQCBpbnQgcWludmFsX2RldmljZV9pb3RsYihzdHJ1Y3QgaW9tbXUg KmlvbW11LAogfQogCiBpbnQgcWludmFsX2RldmljZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21tdSAq aW9tbXUsCi0gICAgdTMyIG1heF9pbnZzX3BlbmQsIHUxNiBzaWQsIHUxNiBzaXplLCB1NjQgYWRk cikKKyAgICB1MzIgbWF4X2ludnNfcGVuZCwgdTE2IGRpZCwgdTE2IHNlZywgdTggYnVzLCB1OCBk ZXZmbiwgdTE2IHNpemUsIHU2NCBhZGRyKQogeworICAgIHUxNiBzaWQgPSBQQ0lfQkRGMihidXMs IGRldmZuKTsKKwogICAgIHFpbnZhbF9kZXZpY2VfaW90bGIoaW9tbXUsIG1heF9pbnZzX3BlbmQs IHNpZCwgc2l6ZSwgYWRkcik7CiAKLSAgICByZXR1cm4gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsK KyAgICByZXR1cm4gZGV2X2ludmFsaWRhdGVfc3luYyhpb21tdSwgZGlkLCBzZWcsIGJ1cywgZGV2 Zm4pOwogfQogCiBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2llYyhzdHJ1Y3QgaW9tbXUg KmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBpaWR4KQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC94ODYvYXRzLmMKaW5kZXggN2IxYzA3Yi4uNWQxZWJlYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQveDg2L2F0cy5jCkBAIC0xMTYsNyArMTE2LDYgQEAgaW50IGRldl9pbnZhbGlkYXRlX2lv dGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAKICAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KCBwZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQogICAgIHsKLSAgICAgICAgdTE2IHNpZCA9 IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4pOwogICAgICAgICBib29sX3Qgc2JpdDsK IAogICAgICAgICAvKiBPbmx5IGludmFsaWRhdGUgZGV2aWNlcyB0aGF0IGJlbG9uZyB0byB0aGlz IElPTU1VICovCkBAIC0xMzMsOCArMTMyLDkgQEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0 cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAvKiBpbnZhbGlkYXRlIGFs bCB0cmFuc2xhdGlvbnM6IHNiaXQ9MSxiaXRfNjM9MCxiaXRbNjI6MTJdPTEgKi8KICAgICAgICAg ICAgIHNiaXQgPSAxOwogICAgICAgICAgICAgYWRkciA9ICh+MFVMIDw8IFBBR0VfU0hJRlRfNEsp ICYgMHg3RkZGRkZGRkZGRkZGRkZGOwotICAgICAgICAgICAgcmV0ID0gcWludmFsX2RldmljZV9p b3RsYl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKKyAgICAgICAgICAg IHJldCA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+YXRzX3F1ZXVlX2Rl cHRoLCBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+c2VnLCBwZGV2LT5idXMsIHBkZXYtPmRldmZuLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNiaXQsIGFkZHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIGNhc2UgRE1BX1RMQl9QU0lfRkxVU0g6CiAgICAgICAgICAgICBpZiAoICFkZXZpY2VfaW5f ZG9tYWluKGlvbW11LCBwZGV2LCBkaWQpICkKQEAgLTE1Myw4ICsxNTMsOSBAQCBpbnQgZGV2X2lu dmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAg ICAgICBhZGRyIHw9ICgoKHU2NCkxIDw8IChzaXplX29yZGVyIC0gMSkpIC0gMSkgPDwgUEFHRV9T SElGVF80SzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmV0ID0gcWludmFsX2Rldmlj ZV9pb3RsYl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKKyAgICAgICAg ICAgIHJldCA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+YXRzX3F1ZXVl X2RlcHRoLCBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYtPmRldmZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNiaXQsIGFkZHIpOwogICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBS RUZJWCwgImludmFsaWQgdnQtZCBmbHVzaCB0eXBlXG4iKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hlbi9wY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAppbmRleCA2ZWQyOWRkLi5iYjlm NzkxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3BjaS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgY29uc3QgdW5zaWduZWQgbG9uZyAqcGNpX2dl dF9yb19tYXAodTE2IHNlZyk7CiBpbnQgcGNpX2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1 OCBkZXZmbiwKICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2Rldl9pbmZvICos IG5vZGVpZF90IG5vZGUpOwogaW50IHBjaV9yZW1vdmVfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywg dTggZGV2Zm4pOwordm9pZCBwY2lfaGlkZV9leGlzdGluZ19kZXZpY2Uoc3RydWN0IHBjaV9kZXYg KnBkZXYpOwogaW50IHBjaV9yb19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKTsK IGludCBwY2lfaGlkZV9kZXZpY2UoaW50IGJ1cywgaW50IGRldmZuKTsKIHN0cnVjdCBwY2lfZGV2 ICpwY2lfZ2V0X3BkZXYoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKTsKLS0gCjEuOS4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK