From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v6 5/5] VT-d: Fix vt-d Device-TLB flush timeout issue Date: Wed, 2 Mar 2016 22:31:29 +0800 Message-ID: <1456929089-17414-6-git-send-email-quan.xu@intel.com> References: <1456929089-17414-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: <1456929089-17414-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: jbeulich@suse.com, kevin.tian@intel.com Cc: feng.wu@intel.com, ian.campbell@citrix.com, george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, tim@xen.org, xen-devel@lists.xen.org, stefano.stabellini@citrix.com, Aravind.Gopalakrishnan@amd.com, jun.nakajima@intel.com, jinsong.liu@alibaba-inc.com, Quan Xu , keir@xen.org, suravee.suthikulpanit@amd.com List-Id: xen-devel@lists.xenproject.org SWYgRGV2aWNlLVRMQiBmbHVzaCBpcyB0aW1lb3V0LCB3ZSdsbCBoaWRlIHRoZSB0YXJnZXQgQVRT IGRldmljZQphbmQgY3Jhc2ggdGhlIGRvbWFpbiBvd25pbmcgdGhpcyBBVFMgZGV2aWNlLiBJZiBp bXBhY3RlZCBkb21haW4KaXMgaGFyZHdhcmUgZG9tYWluLCBqdXN0IHRocm93IG91dCBhIHdhcm5p bmcuIFRoZSBoaWRkZW4gZGV2aWNlCndpbGwgYmUgZGlzYWxsb3dlZCB0byBiZSBmdXJ0aGVyIGFz c2lnbmVkIHRvIGFueSBkb21haW4uCgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1IDxxdWFuLnh1QGlu dGVsLmNvbT4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgIHwgIDYg KystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oICB8ICAyICsrCiB4ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgIHwgNjUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMg fCAxMiArKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vcGNpLmggICAgICAgICAgICAgICAgIHwgIDEg KwogNSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKaW5kZXggZDdlOTRlMS4uNTNiMzgyYSAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNp LmMKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BkZXYoc3RydWN0IHBjaV9z ZWcgKnBzZWcsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIHhmcmVlKHBkZXYpOwogfQogCi1z dGF0aWMgdm9pZCBfcGNpX2hpZGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQordm9pZCBw Y2lfaGlkZV9leGlzdGluZ19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAgaWYg KCBwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm47CkBAIC00MzEsNyArNDMxLDcgQEAgaW50 IF9faW5pdCBwY2lfaGlkZV9kZXZpY2UoaW50IGJ1cywgaW50IGRldmZuKQogICAgIHBkZXYgPSBh bGxvY19wZGV2KGdldF9wc2VnKDApLCBidXMsIGRldmZuKTsKICAgICBpZiAoIHBkZXYgKQogICAg IHsKLSAgICAgICAgX3BjaV9oaWRlX2RldmljZShwZGV2KTsKKyAgICAgICAgcGNpX2hpZGVfZXhp c3RpbmdfZGV2aWNlKHBkZXYpOwogICAgICAgICByYyA9IDA7CiAgICAgfQogICAgIHBjaWRldnNf dW5sb2NrKCk7CkBAIC00NjEsNyArNDYxLDcgQEAgaW50IF9faW5pdCBwY2lfcm9fZGV2aWNlKGlu dCBzZWcsIGludCBidXMsIGludCBkZXZmbikKICAgICB9CiAKICAgICBfX3NldF9iaXQoUENJX0JE RjIoYnVzLCBkZXZmbiksIHBzZWctPnJvX21hcCk7Ci0gICAgX3BjaV9oaWRlX2RldmljZShwZGV2 KTsKKyAgICBwY2lfaGlkZV9leGlzdGluZ19kZXZpY2UocGRldik7CiAKICAgICByZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaCBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaAppbmRleCA1MDdjMmU5Li5kYWMxZTVh IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCkBAIC01OCw2ICs1OCw4IEBAIGlu dCBhdHNfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICosIGNvbnN0IHN0cnVjdCBhY3BpX2Ry aGRfdW5pdCAqKTsKIAogaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9t bXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IGFkZHIsIHVuc2lnbmVk IGludCBzaXplX29yZGVyLCB1NjQgdHlwZSk7CitpbnQgZGV2X2ludmFsaWRhdGVfaW90bGJfc3lu YyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbik7CiAKIGludCBxaW52YWxfZGV2aWNlX2lv dGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgbWF4 X2ludnNfcGVuZCwgdTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRyKTsKZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9xaW52YWwuYwppbmRleCA4ODJiOWY0Li44ZmYyZDk0IDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3FpbnZhbC5jCkBAIC0yMzMsNiArMjMzLDU3IEBAIGludCBxaW52YWxfZGV2aWNl X2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2 b2lkIGRldl9pbnZhbGlkYXRlX2lvdGxiX3RpbWVvdXQoc3RydWN0IGlvbW11ICppb21tdSwgdTE2 IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNlZywg dTggYnVzLCB1OCBkZXZmbikKK3sKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gTlVMTDsKKyAgICBz dHJ1Y3QgcGNpX2RldiAqcGRldjsKKworICAgIGlmICggdGVzdF9iaXQoZGlkLCBpb21tdS0+ZG9t aWRfYml0bWFwKSApCisgICAgICAgIGQgPSByY3VfbG9ja19kb21haW5fYnlfaWQoaW9tbXUtPmRv bWlkX21hcFtkaWRdKTsKKworICAgIGlmICggZCA9PSBOVUxMICkKKyAgICAgICAgcmV0dXJuOwor CisgICAgcGNpZGV2c19sb2NrKCk7CisgICAgZm9yX2VhY2hfcGRldihkLCBwZGV2KQorICAgIHsK KyAgICAgICAgaWYgKCAoIHBkZXYtPnNlZyA9PSBzZWcgKSAmJgorICAgICAgICAgICAgICggcGRl di0+YnVzID09IGJ1cyApICYmCisgICAgICAgICAgICAgKCBwZGV2LT5kZXZmbiA9PSBkZXZmbiAp ICkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUICggcGRldi0+ZG9tYWluICk7CisgICAg ICAgICAgICBsaXN0X2RlbCgmcGRldi0+ZG9tYWluX2xpc3QpOworICAgICAgICAgICAgcGRldi0+ ZG9tYWluID0gTlVMTDsKKyAgICAgICAgICAgIHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShwZGV2 KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcGNpZGV2c191 bmxvY2soKTsKKworICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgIGRv bWFpbl9jcmFzaChkKTsKKworICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOworfQorCitpbnQgZGV2 X2ludmFsaWRhdGVfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikKK3sK KyAgICBzdHJ1Y3QgcWlfY3RybCAqcWlfY3RybCA9IGlvbW11X3FpX2N0cmwoaW9tbXUpOworICAg IGludCByYyA9IDA7CisKKyAgICBpZiAoIHFpX2N0cmwtPnFpbnZhbF9tYWRkciApCisgICAgewor ICAgICAgICByYyA9IHF1ZXVlX2ludmFsaWRhdGVfd2FpdChpb21tdSwgMCwgMSwgMSk7CisgICAg ICAgIGlmICggcmMgPT0gLUVUSU1FRE9VVCApCisgICAgICAgICAgICBkZXZfaW52YWxpZGF0ZV9p b3RsYl90aW1lb3V0KGlvbW11LCBkaWQsIHNlZywgYnVzLCBkZXZmbik7CisgICAgfQorCisgICAg cmV0dXJuIHJjOworfQorCiBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2llYyhzdHJ1Y3Qg aW9tbXUgKmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBpaWR4KQogewogICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7CkBAIC0zNDIsOCArMzkzLDYgQEAgc3RhdGljIGludCBmbHVzaF9pb3RsYl9x aSgKIAogICAgIGlmICggcWlfY3RybC0+cWludmFsX21hZGRyICE9IDAgKQogICAgIHsKLSAgICAg ICAgaW50IHJjOwotCiAgICAgICAgIC8qIHVzZSBxdWV1ZWQgaW52YWxpZGF0aW9uICovCiAgICAg ICAgIGlmIChjYXBfd3JpdGVfZHJhaW4oaW9tbXUtPmNhcCkpCiAgICAgICAgICAgICBkdyA9IDE7 CkBAIC0zNTMsMTEgKzQwMiwxNyBAQCBzdGF0aWMgaW50IGZsdXNoX2lvdGxiX3FpKAogICAgICAg ICBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKGlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGUgPj4gRE1BX1RMQl9GTFVTSF9HUkFOVV9PRkZTRVQsIGRyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGR3LCBkaWQsIHNpemVfb3JkZXIsIDAsIGFkZHIpOworCisg ICAgICAgIC8qCisgICAgICAgICAqIEJlZm9yZSBEZXZpY2UtVExCIGludmFsaWRhdGlvbiB3ZSBu ZWVkIHRvIHN5bmNocm9uaXplCisgICAgICAgICAqIGludmFsaWRhdGlvbiBjb21wbGV0aW9ucyB3 aXRoIGhhcmR3YXJlLgorICAgICAgICAgKi8KKyAgICAgICAgcmV0ID0gaW52YWxpZGF0ZV9zeW5j KGlvbW11KTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAgICAgIHJldHVybiByZXQ7CisK ICAgICAgICAgaWYgKCBmbHVzaF9kZXZfaW90bGIgKQogICAgICAgICAgICAgcmV0ID0gZGV2X2lu dmFsaWRhdGVfaW90bGIoaW9tbXUsIGRpZCwgYWRkciwgc2l6ZV9vcmRlciwgdHlwZSk7Ci0gICAg ICAgIHJjID0gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKLSAgICAgICAgaWYgKCAhcmV0ICkKLSAg ICAgICAgICAgIHJldCA9IHJjOwogICAgIH0KICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMKaW5kZXggN2M3OTdmNi4uYTc5YTk1YSAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCkBAIC0xNjIsNiArMTYyLDE4IEBAIGludCBkZXZf aW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlkLAogICAgICAgICAg ICAgcmV0dXJuIC1FT1BOT1RTVVBQOwogICAgICAgICB9CiAKKyAgICAgICAgLyoKKyAgICAgICAg ICogU3luY2hyb25pemUgd2l0aCBoYXJkd2FyZSBmb3IgRGV2aWNlLVRMQiBpbnZhbGlkYXRlCisg ICAgICAgICAqIGRlc2NyaXB0b3IuCisgICAgICAgICAqLworICAgICAgICByYyA9IGRldl9pbnZh bGlkYXRlX2lvdGxiX3N5bmMoaW9tbXUsIGRpZCwgcGRldi0+c2VnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+YnVzLCBwZGV2LT5kZXZmbik7CisgICAgICAg IGlmICggcmMgKQorICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKKyAgICAgICAgICAgICAg ICAgICAiRmx1c2ggZXJyb3IgJWQgb24gZGV2aWNlICUwNHg6JTAyeDolMDJ4LiV1LlxuIiwKKyAg ICAgICAgICAgICAgICAgICByZXQsIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChwZGV2 LT5kZXZmbiksCisgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKKwog ICAgICAgICBpZiAoICFyZXQgKQogICAgICAgICAgICAgcmV0ID0gcmM7CiAgICAgfQpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaS5oIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCmluZGV4 IDAxN2FhMGIuLjExOGQ4ZmQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBjb25zdCB1bnNpZ25l ZCBsb25nICpwY2lfZ2V0X3JvX21hcCh1MTYgc2VnKTsKIGludCBwY2lfYWRkX2RldmljZSh1MTYg c2VnLCB1OCBidXMsIHU4IGRldmZuLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBw Y2lfZGV2X2luZm8gKiwgbm9kZWlkX3Qgbm9kZSk7CiBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2 IHNlZywgdTggYnVzLCB1OCBkZXZmbik7Cit2b2lkIHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShz dHJ1Y3QgcGNpX2RldiAqcGRldik7CiBpbnQgcGNpX3JvX2RldmljZShpbnQgc2VnLCBpbnQgYnVz LCBpbnQgZGV2Zm4pOwogaW50IHBjaV9oaWRlX2RldmljZShpbnQgYnVzLCBpbnQgZGV2Zm4pOwog c3RydWN0IHBjaV9kZXYgKnBjaV9nZXRfcGRldihpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2Zm4p OwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=