From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V3 7/29] tools/libxl: build DMAR table for a guest with one virtual VTD Date: Thu, 21 Sep 2017 23:01:48 -0400 Message-ID: <1506049330-11196-8-git-send-email-tianyu.lan@intel.com> References: <1506049330-11196-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1506049330-11196-1-git-send-email-tianyu.lan@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: Lan Tianyu , kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com, roger.pau@citrix.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KCkEgbmV3IGxvZ2ljIGlzIGFkZGVk IHRvIGJ1aWxkIEFDUEkgRE1BUiB0YWJsZSBpbiB0b29sIHN0YWNrIGZvciBhIGd1ZXN0CndpdGgg b25lIHZpcnR1YWwgVlREIGFuZCBwYXNzIHRocm91Z2ggaXQgdG8gZ3Vlc3QgdmlhIGV4aXN0aW5n IG1lY2hhbmlzbS4gSWYKdGhlcmUgYWxyZWFkeSBhcmUgQUNQSSB0YWJsZXMgbmVlZGVkIHRvIHBh c3MgdGhyb3VnaCwgd2Ugam9pbnQgdGhlIHRhYmxlcy4KClNpZ25lZC1vZmYtYnk6IENoYW8gR2Fv IDxjaGFvLmdhb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5s YW5AaW50ZWwuY29tPgoKLS0tCnYzOgogLSBidWlsZCBkbWFyIGFuZCBpbml0aWFsaXplIHJlbGF0 ZWQgYWNwaV9tb2R1bGVzIHN0cnVjdCBpbgogbGlieGxfeDg2X2FjcGkuYywga2VlcGluZyBpbiBh Y2NvcmRhbmNlIHdpdGggcHZoLgoKLS0tCiB0b29scy9saWJ4bC9saWJ4bF94ODYuYyAgICAgIHwg IDMgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX3g4Nl9hY3BpLmMgfCA5OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4 Ni5jIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKaW5kZXggNDU1ZjZmMC4uMjNjOWE1NSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxf eDg2LmMKQEAgLTM4MSw4ICszODEsNyBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2ZpbmFsaXNl X2h3X2Rlc2NyaXB0aW9uKGxpYnhsX19nYyAqZ2MsCiB7CiAgICAgaW50IHJjID0gMDsKIAotICAg IGlmICgoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pICYmCi0gICAgICAgIChp bmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9O T05FKSkgeworICAgIGlmIChpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgewog ICAgICAgICByYyA9IGxpYnhsX19kb21fbG9hZF9hY3BpKGdjLCBpbmZvLCBkb20pOwogICAgICAg ICBpZiAocmMgIT0gMCkKICAgICAgICAgICAgIExPR0UoRVJST1IsICJsaWJ4bF9kb21fbG9hZF9h Y3BpIGZhaWxlZCIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfeDg2X2FjcGkuYyBi L3Rvb2xzL2xpYnhsL2xpYnhsX3g4Nl9hY3BpLmMKaW5kZXggMTc2MTc1Ni4uYWRmMDJmNCAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfeDg2X2FjcGkuYworKysgYi90b29scy9saWJ4bC9s aWJ4bF94ODZfYWNwaS5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSAibGlieGxfYXJjaC5o IgogI2luY2x1ZGUgPHhlbi9odm0vaHZtX2luZm9fdGFibGUuaD4KICNpbmNsdWRlIDx4ZW4vaHZt L2U4MjAuaD4KKyNpbmNsdWRlICJsaWJhY3BpL2FjcGkyXzAuaCIKICNpbmNsdWRlICJsaWJhY3Bp L2xpYmFjcGkuaCIKIAogI2luY2x1ZGUgPHhjX2RvbS5oPgpAQCAtMTYxLDkgKzE2Miw5IEBAIG91 dDoKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCBsaWJ4bF9fZG9tX2xvYWRfYWNwaShsaWJ4bF9f Z2MgKmdjLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9idWls ZF9pbmZvICpiX2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9p bWFnZSAqZG9tKQorc3RhdGljIGludCBsaWJ4bF9fZG9tX2xvYWRfYWNwaV9wdmgobGlieGxfX2dj ICpnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2Rv bWFpbl9idWlsZF9pbmZvICpiX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiB7CiAgICAgc3RydWN0IGFjcGlfY29uZmln IGNvbmZpZyA9IHswfTsKICAgICBzdHJ1Y3QgbGlieGxfYWNwaV9jdHh0IGxpYnhsX2N0eHQ7CkBA IC0yMzYsNiArMjM3LDk3IEBAIG91dDoKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB2b2lk ICphY3BpX21lbWFsaWduKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHVpbnQzMl90IHNpemUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhbGlnbikKK3sKKyAgICBpbnQgcmV0 OworICAgIHZvaWQgKnB0cjsKKworICAgIHJldCA9IHBvc2l4X21lbWFsaWduKCZwdHIsIGFsaWdu LCBzaXplKTsKKyAgICBpZiAocmV0ICE9IDAgfHwgIXB0cikKKyAgICAgICAgcmV0dXJuIE5VTEw7 CisKKyAgICByZXR1cm4gcHRyOworfQorCisvKgorICogRm9yIGh2bSwgd2UgZG9uJ3QgbmVlZCBi dWlsZCBhY3BpIGluIGxpYnhsLiBJbnN0ZWFkLCBpdCdzIGJ1aWx0IGluIGh2bWxvYWRlci4KKyAq IEJ1dCBpZiBvbmUgaHZtIGhhcyB2aXJ0dWFsIFZURChzKSwgd2UgYnVpbGQgRE1BUiB0YWJsZSBm b3IgaXQgYW5kIGpvaW50IHRoaXMKKyAqIHRhYmxlIHdpdGggZXhpc3RpbmcgY29udGVudCBpbiBh Y3BpX21vZHVsZXMgaW4gb3JkZXIgdG8gZW1wbG95IEhWTQorICogZmlybXdhcmUgcGFzcy10aHJv dWdoIG1lY2hhbmlzbSB0byBwYXNzLXRocm91Z2ggRE1BUiB0YWJsZS4KKyAqLworc3RhdGljIGlu dCBsaWJ4bF9fZG9tX2xvYWRfYWNwaV9odm0obGlieGxfX2djICpnYywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2lu Zm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2lt YWdlICpkb20pCit7CisgICAgc3RydWN0IGFjcGlfY29uZmlnIGNvbmZpZyA9IHsgMCB9OworICAg IHN0cnVjdCBhY3BpX2N0eHQgY3R4dDsKKyAgICB2b2lkICp0YWJsZTsKKyAgICB1aW50MzJfdCBs ZW47CisKKyAgICBpZiAoKGJfaW5mby0+dHlwZSAhPSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHx8 CisgICAgICAgIChiX2luZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uID09IExJQlhMX0RFVklDRV9N T0RFTF9WRVJTSU9OX05PTkUpIHx8CisgICAgICAgIChiX2luZm8tPm51bV92aW9tbXVzICE9IDEp IHx8CisgICAgICAgIChiX2luZm8tPnZpb21tdVswXS50eXBlICE9IExJQlhMX1ZJT01NVV9UWVBF X0lOVEVMX1ZURCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgY3R4dC5tZW1fb3BzLmFsbG9j ID0gYWNwaV9tZW1hbGlnbjsKKyAgICBjdHh0Lm1lbV9vcHMudjJwID0gdmlydF90b19waHlzOwor ICAgIGN0eHQubWVtX29wcy5mcmVlID0gYWNwaV9tZW1fZnJlZTsKKworICAgIGlmIChsaWJ4bF9k ZWZib29sX3ZhbChiX2luZm8tPnZpb21tdVswXS5pbnRyZW1hcCkpCisgICAgICAgIGNvbmZpZy5p b21tdV9pbnRyZW1hcF9zdXBwb3J0ZWQgPSB0cnVlOworICAgIC8qIHgyYXBpYyBpcyBhbHdheXMg ZW5hYmxlZCBzaW5jZSBpbiBubyBjYXNlIHdlIG11c3QgZGlzYWJsZSBpdCAqLworICAgIGNvbmZp Zy5pb21tdV94MmFwaWNfc3VwcG9ydGVkID0gdHJ1ZTsKKyAgICBjb25maWcuaW9tbXVfYmFzZV9h ZGRyID0gYl9pbmZvLT52aW9tbXVbMF0uYmFzZV9hZGRyOworCisgICAgLyogSU9BUElDIGlkIGFu ZCBQU0VVRE8gQkRGICovCisgICAgY29uZmlnLmlvYXBpY19pZCA9IDE7CisgICAgY29uZmlnLmlv YXBpY19idXMgPSAweGZmOworICAgIGNvbmZpZy5pb2FwaWNfZGV2Zm4gPSAweDA7CisKKyAgICBj b25maWcuaG9zdF9hZGRyX3dpZHRoID0gMzk7CisKKyAgICB0YWJsZSA9IGNvbnN0cnVjdF9kbWFy KCZjdHh0LCAmY29uZmlnKTsKKyAgICBpZiAoICF0YWJsZSApCisgICAgICAgIHJldHVybiBFUlJP Ul9OT01FTTsKKyAgICBsZW4gPSAoKHN0cnVjdCBhY3BpX2hlYWRlciAqKXRhYmxlKS0+bGVuZ3Ro OworCisgICAgaWYgKGxlbikgeworICAgICAgICBsaWJ4bF9fcHRyX2FkZChnYywgdGFibGUpOwor ICAgICAgICBpZiAoIWRvbS0+YWNwaV9tb2R1bGVzWzBdLmRhdGEpIHsKKyAgICAgICAgICAgIGRv bS0+YWNwaV9tb2R1bGVzWzBdLmRhdGEgPSB0YWJsZTsKKyAgICAgICAgICAgIGRvbS0+YWNwaV9t b2R1bGVzWzBdLmxlbmd0aCA9IGxlbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8q IGpvaW50IHRhYmxlcyAqLworICAgICAgICAgICAgdm9pZCAqbmV3ZGF0YTsKKworICAgICAgICAg ICAgbmV3ZGF0YSA9IGxpYnhsX19tYWxsb2MoZ2MsIGxlbiArIGRvbS0+YWNwaV9tb2R1bGVzWzBd Lmxlbmd0aCk7CisgICAgICAgICAgICBtZW1jcHkobmV3ZGF0YSwgZG9tLT5hY3BpX21vZHVsZXNb MF0uZGF0YSwKKyAgICAgICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlc1swXS5sZW5ndGgp OworICAgICAgICAgICAgbWVtY3B5KG5ld2RhdGEgKyBkb20tPmFjcGlfbW9kdWxlc1swXS5sZW5n dGgsIHRhYmxlLCBsZW4pOworCisgICAgICAgICAgICBmcmVlKGRvbS0+YWNwaV9tb2R1bGVzWzBd LmRhdGEpOworICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVsZXNbMF0uZGF0YSA9IG5ld2RhdGE7 CisgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlc1swXS5sZW5ndGggKz0gbGVuOworICAgICAg ICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQgbGlieGxfX2RvbV9sb2FkX2FjcGko bGlieGxfX2djICpnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kb21h aW5fYnVpbGRfaW5mbyAqYl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4 Y19kb21faW1hZ2UgKmRvbSkKK3sKKworICAgIGlmIChiX2luZm8tPnR5cGUgIT0gTElCWExfRE9N QUlOX1RZUEVfSFZNKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChiX2luZm8tPmRldmlj ZV9tb2RlbF92ZXJzaW9uID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX05PTkUpCisgICAg ICAgIHJldHVybiBsaWJ4bF9fZG9tX2xvYWRfYWNwaV9wdmgoZ2MsIGJfaW5mbywgZG9tKTsKKyAg ICBlbHNlCisgICAgICAgIHJldHVybiBsaWJ4bF9fZG9tX2xvYWRfYWNwaV9odm0oZ2MsIGJfaW5m bywgZG9tKTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCi0tIAoxLjgu My4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==