From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [RFC Patch v4 6/8] hvmload: Add x2apic entry support in the MADT and SRAT build Date: Wed, 6 Dec 2017 15:50:12 +0800 Message-ID: <1512546614-9937-7-git-send-email-chao.gao@intel.com> References: <1512546614-9937-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1512546614-9937-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , Ian Jackson , Wei Liu , Jan Beulich , Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+CgpUaGlzIHBhdGNoIGNvbnRh aW5zIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKMS4gYWRkIHgyYXBpYyBlbnRyeSBzdXBwb3J0IGZv ciBBQ1BJIE1BRFQgdGFibGUgYWNjb3JkaW5nIHRvCiBBQ1BJIHNwZWMgNS4yLjEyLjEyIFByb2Nl c3NvciBMb2NhbCB4MkFQSUMgU3RydWN0dXJlLgoyLiBhZGQgeDJhcGljIGVudHJ5IHN1cHBvcnQg Zm9yIEFDUEkgU1JBVCB0YWJsZSBhY2NvcmRpbmcgdG8KIEFDUEkgc3BlYyA1LjIuMTYuMyBQcm9j ZXNzb3IgTG9jYWwgeDJBUElDIEFmZmluaXR5IFN0cnVjdHVyZS4KClNpZ25lZC1vZmYtYnk6IExh biBUaWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8 Y2hhby5nYW9AaW50ZWwuY29tPgotLS0KdjQ6CiAtIGFsc28gYWRkIHgyYXBpYyBlbnRyeSBpbiBT UkFUCi0tLQogdG9vbHMvbGliYWNwaS9hY3BpMl8wLmggfCAyNSArKysrKysrKysrKysrKysrKysr Ky0tCiB0b29scy9saWJhY3BpL2J1aWxkLmMgICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9u cygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliYWNwaS9hY3BpMl8w LmggYi90b29scy9saWJhY3BpL2FjcGkyXzAuaAppbmRleCA2MDgxNDE3Li43ZWI5ODNkIDEwMDY0 NAotLS0gYS90b29scy9saWJhY3BpL2FjcGkyXzAuaAorKysgYi90b29scy9saWJhY3BpL2FjcGky XzAuaApAQCAtMzIyLDYgKzMyMiw3IEBAIHN0cnVjdCBhY3BpXzIwX3dhZXQgewogI2RlZmluZSBB Q1BJX0lPX1NBUElDICAgICAgICAgICAgICAgICAgICAgICAweDA2CiAjZGVmaW5lIEFDUElfUFJP Q0VTU09SX0xPQ0FMX1NBUElDICAgICAgICAgIDB4MDcKICNkZWZpbmUgQUNQSV9QTEFURk9STV9J TlRFUlJVUFRfU09VUkNFUyAgICAgMHgwOAorI2RlZmluZSBBQ1BJX1BST0NFU1NPUl9MT0NBTF9Y MkFQSUMgICAgICAgICAweDA5CiAKIC8qCiAgKiBBUElDIFN0cnVjdHVyZSBEZWZpbml0aW9ucy4K QEAgLTMzOCw2ICszMzksMTUgQEAgc3RydWN0IGFjcGlfMjBfbWFkdF9sYXBpYyB7CiAgICAgdWlu dDMyX3QgZmxhZ3M7CiB9OwogCitzdHJ1Y3QgYWNwaV8yMF9tYWR0X3gyYXBpYyB7CisgICAgdWlu dDhfdCAgdHlwZTsKKyAgICB1aW50OF90ICBsZW5ndGg7CisgICAgdWludDE2X3QgcmVzZXJ2ZWQ7 CisgICAgdWludDMyX3QgeDJhcGljX2lkOworICAgIHVpbnQzMl90IGZsYWdzOworICAgIHVpbnQz Ml90IGFjcGlfcHJvY2Vzc29yX3VpZDsKK307CisKIC8qCiAgKiBMb2NhbCBBUElDIEZsYWdzLiAg QWxsIG90aGVyIGJpdHMgYXJlIHJlc2VydmVkIGFuZCBtdXN0IGJlIDAuCiAgKi8KQEAgLTM3OCw4 ICszODgsOSBAQCBzdHJ1Y3QgYWNwaV8yMF9zcmF0IHsKIC8qCiAgKiBTeXN0ZW0gUmVzb3VyY2Ug QWZmaW5pdHkgVGFibGUgc3RydWN0dXJlIHR5cGVzLgogICovCi0jZGVmaW5lIEFDUElfUFJPQ0VT U09SX0FGRklOSVRZIDB4MAotI2RlZmluZSBBQ1BJX01FTU9SWV9BRkZJTklUWSAgICAweDEKKyNk ZWZpbmUgQUNQSV9QUk9DRVNTT1JfQUZGSU5JVFkgICAgICAgICAweDAKKyNkZWZpbmUgQUNQSV9N RU1PUllfQUZGSU5JVFkgICAgICAgICAgICAweDEKKyNkZWZpbmUgQUNQSV9QUk9DRVNTT1JfWDJB UElDX0FGRklOSVRZICAweDIKIHN0cnVjdCBhY3BpXzIwX3NyYXRfcHJvY2Vzc29yIHsKICAgICB1 aW50OF90IHR5cGU7CiAgICAgdWludDhfdCBsZW5ndGg7CkBAIC0zOTEsNiArNDAyLDE2IEBAIHN0 cnVjdCBhY3BpXzIwX3NyYXRfcHJvY2Vzc29yIHsKICAgICB1aW50MzJfdCByZXNlcnZlZDsKIH07 CiAKK3N0cnVjdCBhY3BpXzIwX3NyYXRfcHJvY2Vzc29yX3gyYXBpYyB7CisgICAgdWludDhfdCB0 eXBlOworICAgIHVpbnQ4X3QgbGVuZ3RoOworICAgIHVpbnQxNl90IHJlc2VydmVkOworICAgIHVp bnQzMl90IGRvbWFpbjsKKyAgICB1aW50MzJfdCB4MmFwaWNfaWQ7CisgICAgdWludDMyX3QgZmxh Z3M7CisgICAgdWludDMyX3QgcmVzZXJ2ZWQyWzJdOworfTsKKwogLyoKICAqIExvY2FsIEFQSUMg QWZmaW5pdHkgRmxhZ3MuICBBbGwgb3RoZXIgYml0cyBhcmUgcmVzZXJ2ZWQgYW5kIG11c3QgYmUg MC4KICAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGliYWNwaS9idWlsZC5jIGIvdG9vbHMvbGliYWNw aS9idWlsZC5jCmluZGV4IGRmMGE2N2MuLjVjYmY2YTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYmFj cGkvYnVpbGQuYworKysgYi90b29scy9saWJhY3BpL2J1aWxkLmMKQEAgLTMwLDYgKzMwLDExIEBA CiAKICNkZWZpbmUgYWxpZ24xNihzeikgICAgICAgICgoKHN6KSArIDE1KSAmIH4xNSkKICNkZWZp bmUgZml4ZWRfc3RyY3B5KGQsIHMpIHN0cm5jcHkoKGQpLCAocyksIHNpemVvZihkKSkKKyNkZWZp bmUgbWluKFgsIFkpICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICBjb25zdCB0eXBlb2YgKFgpIF94ID0gKFgpOyAgICAgICAgICAgXAorICAgICAgICAgICAgY29u c3QgdHlwZW9mIChZKSBfeSA9IChZKTsgICAgICAgICAgIFwKKyAgICAgICAgICAgICh2b2lkKSAo Jl94ID09ICZfeSk7ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAoX3ggPCBfeSkgPyBf eCA6IF95OyB9KQogCiBleHRlcm4gc3RydWN0IGFjcGlfMjBfcnNkcCBSc2RwOwogZXh0ZXJuIHN0 cnVjdCBhY3BpXzIwX3JzZHQgUnNkdDsKQEAgLTc5LDE2ICs4NCwxOSBAQCBzdGF0aWMgc3RydWN0 IGFjcGlfMjBfbWFkdCAqY29uc3RydWN0X21hZHQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKICAg ICBzdHJ1Y3QgYWNwaV8yMF9tYWR0X2ludHNyY292ciAqaW50c3Jjb3ZyOwogICAgIHN0cnVjdCBh Y3BpXzIwX21hZHRfaW9hcGljICAgICppb19hcGljOwogICAgIHN0cnVjdCBhY3BpXzIwX21hZHRf bGFwaWMgICAgICpsYXBpYzsKKyAgICBzdHJ1Y3QgYWNwaV8yMF9tYWR0X3gyYXBpYyAgICAqeDJh cGljOwogICAgIGNvbnN0IHN0cnVjdCBodm1faW5mb190YWJsZSAgICpodm1pbmZvID0gY29uZmln LT5odm1pbmZvOwotICAgIGludCBpLCBzejsKKyAgICBpbnQgaSwgc3osIG5yX2FwaWM7CiAKICAg ICBpZiAoIGNvbmZpZy0+bGFwaWNfaWQgPT0gTlVMTCApCiAgICAgICAgIHJldHVybiBOVUxMOwog CisgICAgbnJfYXBpYyA9IG1pbihodm1pbmZvLT5ucl92Y3B1cywgTUFEVF9NQVhfTE9DQUxfQVBJ Qyk7CiAgICAgc3ogID0gc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX21hZHQpOwogICAgIHN6ICs9IHNp emVvZihzdHJ1Y3QgYWNwaV8yMF9tYWR0X2ludHNyY292cikgKiAxNjsKICAgICBzeiArPSBzaXpl b2Yoc3RydWN0IGFjcGlfMjBfbWFkdF9pb2FwaWMpOwotICAgIHN6ICs9IHNpemVvZihzdHJ1Y3Qg YWNwaV8yMF9tYWR0X2xhcGljKSAqIGh2bWluZm8tPm5yX3ZjcHVzOworICAgIHN6ICs9IHNpemVv ZihzdHJ1Y3QgYWNwaV8yMF9tYWR0X2xhcGljKSAqIG5yX2FwaWM7CisgICAgc3ogKz0gc2l6ZW9m KHN0cnVjdCBhY3BpXzIwX21hZHRfeDJhcGljKSAqIChodm1pbmZvLT5ucl92Y3B1cyAtIG5yX2Fw aWMpOwogCiAgICAgbWFkdCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc3osIDE2KTsKICAg ICBpZiAoIW1hZHQpIHJldHVybiBOVUxMOwpAQCAtMTQ5LDcgKzE1Nyw3IEBAIHN0YXRpYyBzdHJ1 Y3QgYWNwaV8yMF9tYWR0ICpjb25zdHJ1Y3RfbWFkdChzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAog CiAgICAgaW5mby0+bnJfY3B1cyA9IGh2bWluZm8tPm5yX3ZjcHVzOwogICAgIGluZm8tPm1hZHRf bGFwaWMwX2FkZHIgPSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBsYXBpYyk7Ci0gICAgZm9yICgg aSA9IDA7IGkgPCBodm1pbmZvLT5ucl92Y3B1czsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8 IG5yX2FwaWM7IGkrKyApCiAgICAgewogICAgICAgICBtZW1zZXQobGFwaWMsIDAsIHNpemVvZigq bGFwaWMpKTsKICAgICAgICAgbGFwaWMtPnR5cGUgICAgPSBBQ1BJX1BST0NFU1NPUl9MT0NBTF9B UElDOwpAQCAtMTU3LDEyICsxNjUsMjYgQEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX21hZHQgKmNv bnN0cnVjdF9tYWR0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCiAgICAgICAgIC8qIFByb2Nlc3Nv ciBJRCBtdXN0IG1hdGNoIHByb2Nlc3Nvci1vYmplY3QgSURzIGluIHRoZSBEU0RULiAqLwogICAg ICAgICBsYXBpYy0+YWNwaV9wcm9jZXNzb3JfaWQgPSBpOwogICAgICAgICBsYXBpYy0+YXBpY19p ZCA9IGNvbmZpZy0+bGFwaWNfaWQoaSk7Ci0gICAgICAgIGxhcGljLT5mbGFncyA9ICh0ZXN0X2Jp dChpLCBodm1pbmZvLT52Y3B1X29ubGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gQUNQ SV9MT0NBTF9BUElDX0VOQUJMRUQgOiAwKTsKKyAgICAgICAgbGFwaWMtPmZsYWdzID0gdGVzdF9i aXQoaSwgaHZtaW5mby0+dmNwdV9vbmxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA/ IEFDUElfTE9DQUxfQVBJQ19FTkFCTEVEIDogMDsKICAgICAgICAgbGFwaWMrKzsKICAgICB9CiAK LSAgICBtYWR0LT5oZWFkZXIubGVuZ3RoID0gKHVuc2lnbmVkIGNoYXIgKilsYXBpYyAtICh1bnNp Z25lZCBjaGFyICopbWFkdDsKKyAgICB4MmFwaWMgPSAodm9pZCAqKWxhcGljOworICAgIGZvciAo IDsgaSA8IGh2bWluZm8tPm5yX3ZjcHVzOyBpKysgKQorICAgIHsKKyAgICAgICAgbWVtc2V0KHgy YXBpYywgMCwgc2l6ZW9mKCp4MmFwaWMpKTsKKyAgICAgICAgeDJhcGljLT50eXBlICAgID0gQUNQ SV9QUk9DRVNTT1JfTE9DQUxfWDJBUElDOworICAgICAgICB4MmFwaWMtPmxlbmd0aCAgPSBzaXpl b2YoKngyYXBpYyk7CisgICAgICAgIC8qIFByb2Nlc3NvciBVSUQgbXVzdCBtYXRjaCBwcm9jZXNz b3Itb2JqZWN0IFVJRHMgaW4gdGhlIERTRFQuICovCisgICAgICAgIHgyYXBpYy0+YWNwaV9wcm9j ZXNzb3JfdWlkID0gaTsKKyAgICAgICAgeDJhcGljLT54MmFwaWNfaWQgPSBjb25maWctPmxhcGlj X2lkKGkpOworICAgICAgICB4MmFwaWMtPmZsYWdzID0gIHRlc3RfYml0KGksIGh2bWluZm8tPnZj cHVfb25saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEFDUElfTE9DQUxfQVBJ Q19FTkFCTEVEIDogMDsKKyAgICAgICAgeDJhcGljKys7CisgICAgfQorCisgICAgbWFkdC0+aGVh ZGVyLmxlbmd0aCA9ICh1bnNpZ25lZCBjaGFyICopeDJhcGljIC0gKHVuc2lnbmVkIGNoYXIgKilt YWR0OwogICAgIHNldF9jaGVja3N1bShtYWR0LCBvZmZzZXRvZihzdHJ1Y3QgYWNwaV9oZWFkZXIs IGNoZWNrc3VtKSwKICAgICAgICAgICAgICAgICAgbWFkdC0+aGVhZGVyLmxlbmd0aCk7CiAgICAg aW5mby0+bWFkdF9jc3VtX2FkZHIgPQpAQCAtMjE2LDEyICsyMzgsMTQgQEAgc3RhdGljIHN0cnVj dCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCiB7 CiAgICAgc3RydWN0IGFjcGlfMjBfc3JhdCAqc3JhdDsKICAgICBzdHJ1Y3QgYWNwaV8yMF9zcmF0 X3Byb2Nlc3NvciAqcHJvY2Vzc29yOworICAgIHN0cnVjdCBhY3BpXzIwX3NyYXRfcHJvY2Vzc29y X3gyYXBpYyAqeDJhcGljOwogICAgIHN0cnVjdCBhY3BpXzIwX3NyYXRfbWVtb3J5ICptZW1vcnk7 Ci0gICAgdW5zaWduZWQgaW50IHNpemU7CisgICAgdW5zaWduZWQgaW50IHNpemUsIGksIG5yX2Fw aWM7CiAgICAgdm9pZCAqcDsKLSAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIHNpemUgPSBzaXpl b2YoKnNyYXQpICsgc2l6ZW9mKCpwcm9jZXNzb3IpICogY29uZmlnLT5odm1pbmZvLT5ucl92Y3B1 cyArCisgICAgbnJfYXBpYyA9IG1pbihNQURUX01BWF9MT0NBTF9BUElDLCBjb25maWctPmh2bWlu Zm8tPm5yX3ZjcHVzKTsKKyAgICBzaXplID0gc2l6ZW9mKCpzcmF0KSArIHNpemVvZigqcHJvY2Vz c29yKSAqIG5yX2FwaWMgKworICAgICAgICAgICBzaXplb2YoKngyYXBpYykgKiAoY29uZmlnLT5o dm1pbmZvLT5ucl92Y3B1cyAtIG5yX2FwaWMpICsKICAgICAgICAgICAgc2l6ZW9mKCptZW1vcnkp ICogY29uZmlnLT5udW1hLm5yX3ZtZW1yYW5nZXM7CiAKICAgICBwID0gY3R4dC0+bWVtX29wcy5h bGxvYyhjdHh0LCBzaXplLCAxNik7CkBAIC0yMzksNyArMjYzLDcgQEAgc3RhdGljIHN0cnVjdCBh Y3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCiAgICAg c3JhdC0+dGFibGVfcmV2aXNpb24gICAgICA9IEFDUElfU1JBVF9UQUJMRV9SRVZJU0lPTjsKIAog ICAgIHByb2Nlc3NvciA9IChzdHJ1Y3QgYWNwaV8yMF9zcmF0X3Byb2Nlc3NvciAqKShzcmF0ICsg MSk7Ci0gICAgZm9yICggaSA9IDA7IGkgPCBjb25maWctPmh2bWluZm8tPm5yX3ZjcHVzOyBpKysg KQorICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfYXBpYzsgaSsrICkKICAgICB7CiAgICAgICAgIHBy b2Nlc3Nvci0+dHlwZSAgICAgPSBBQ1BJX1BST0NFU1NPUl9BRkZJTklUWTsKICAgICAgICAgcHJv Y2Vzc29yLT5sZW5ndGggICA9IHNpemVvZigqcHJvY2Vzc29yKTsKQEAgLTI0OSw3ICsyNzMsMTgg QEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KHN0cnVjdCBhY3Bp X2N0eHQgKmN0eHQsCiAgICAgICAgIHByb2Nlc3NvcisrOwogICAgIH0KIAotICAgIG1lbW9yeSA9 IChzdHJ1Y3QgYWNwaV8yMF9zcmF0X21lbW9yeSAqKXByb2Nlc3NvcjsKKyAgICB4MmFwaWMgPSAo c3RydWN0IGFjcGlfMjBfc3JhdF9wcm9jZXNzb3JfeDJhcGljICopcHJvY2Vzc29yOworICAgIGZv ciAoIDsgaSA8IGNvbmZpZy0+aHZtaW5mby0+bnJfdmNwdXM7IGkrKyApCisgICAgeworICAgICAg ICB4MmFwaWMtPnR5cGUgICAgICAgPSBBQ1BJX1BST0NFU1NPUl9YMkFQSUNfQUZGSU5JVFk7Cisg ICAgICAgIHgyYXBpYy0+bGVuZ3RoICAgICA9IHNpemVvZigqeDJhcGljKTsKKyAgICAgICAgeDJh cGljLT5kb21haW4gICAgID0gY29uZmlnLT5udW1hLnZjcHVfdG9fdm5vZGVbaV07CisgICAgICAg IHgyYXBpYy0+eDJhcGljX2lkICA9IGNvbmZpZy0+bGFwaWNfaWQoaSk7CisgICAgICAgIHgyYXBp Yy0+ZmxhZ3MgICAgICA9IEFDUElfTE9DQUxfQVBJQ19BRkZJTl9FTkFCTEVEOworICAgICAgICB4 MmFwaWMrKzsKKyAgICB9CisKKyAgICBtZW1vcnkgPSAoc3RydWN0IGFjcGlfMjBfc3JhdF9tZW1v cnkgKil4MmFwaWM7CiAgICAgZm9yICggaSA9IDA7IGkgPCBjb25maWctPm51bWEubnJfdm1lbXJh bmdlczsgaSsrICkKICAgICB7CiAgICAgICAgIG1lbW9yeS0+dHlwZSAgICAgICAgICA9IEFDUElf TUVNT1JZX0FGRklOSVRZOwotLSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=