From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 17/44] x86/smp: Infrastructure for allocating and freeing percpu pagetables Date: Thu, 4 Jan 2018 20:21:42 +0000 Message-ID: <1515097329-31902-18-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org UGFnZXRhYmxlcyBhcmUgYWxsb2NhdGVkIGFuZCBmcmVlZCBhbG9uZyB3aXRoIHRoZSBvdGhlciBz bXAgZGF0YXN0cnVjdHVyZXMsCmFuZCB0aGUgcm9vdCBvZiB0aGUgcGFnZXRhYmxlcyBpcyBzdG9y ZWQgaW4gdGhlIHBlcmNwdV9tYXBwaW5ncyB2YXJpYWJsZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJl dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L3Nt cGJvb3QuYyAgICAgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCB8ICAxICsKIHhlbi9pbmNsdWRlL2Fz bS14ODYvc21wLmggIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290 LmMKaW5kZXggYTg1NTMwMS4uMWY5MjgzMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NtcGJv b3QuYworKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCkBAIC01OCw2ICs1OCw3IEBACiB1bnNp Z25lZCBsb25nIF9fcmVhZF9tb3N0bHkgdHJhbXBvbGluZV9waHlzOwogCiBERUZJTkVfUEVSX0NQ VV9SRUFEX01PU1RMWShwYWRkcl90LCBwZXJjcHVfaWRsZV9wdCk7CitERUZJTkVfUEVSX0NQVV9S RUFEX01PU1RMWShsNF9wZ2VudHJ5X3QsIHBlcmNwdV9tYXBwaW5ncyk7CiAKIC8qIHJlcHJlc2Vu dGluZyBIVCBzaWJsaW5ncyBvZiBlYWNoIGxvZ2ljYWwgQ1BVICovCiBERUZJTkVfUEVSX0NQVV9S RUFEX01PU1RMWShjcHVtYXNrX3Zhcl90LCBjcHVfc2libGluZ19tYXNrKTsKQEAgLTY0NCw2ICs2 NDUsNyBAQCBzdGF0aWMgaW50IGNwdV9zbXBib290X2FsbG9jX2NvbW1vbih1bnNpZ25lZCBpbnQg Y3B1KQogICAgIHVuc2lnbmVkIGludCBtZW1mbGFncyA9IDA7CiAgICAgbm9kZWlkX3Qgbm9kZSA9 IGNwdV90b19ub2RlKGNwdSk7CiAgICAgbDRfcGdlbnRyeV90ICpsNHQgPSBOVUxMOworICAgIGwz X3BnZW50cnlfdCAqbDN0ID0gTlVMTDsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKICAgICBp bnQgcmMgPSAtRU5PTUVNOwogCkBAIC02NjMsMTUgKzY2NSwxMDMgQEAgc3RhdGljIGludCBjcHVf c21wYm9vdF9hbGxvY19jb21tb24odW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAoIHJjICkKICAg ICAgICAgZ290byBvdXQ7CiAKKyAgICByYyA9IC1FTk9NRU07CisKKyAgICAvKiBQZXJjcHUgTDMg dGFibGUsIGNvbnRhaW5pbmcgdGhlIHBlcmNwdSBtYXBwaW5ncy4gKi8KKyAgICBwZyA9IGFsbG9j X2RvbWhlYXBfcGFnZShOVUxMLCBtZW1mbGFncyk7CisgICAgaWYgKCAhcGcgKQorICAgICAgICBn b3RvIG91dDsKKyAgICBsM3QgPSBfX21hcF9kb21haW5fcGFnZShwZyk7CisgICAgY2xlYXJfcGFn ZShsM3QpOworICAgIHBlcl9jcHUocGVyY3B1X21hcHBpbmdzLCBjcHUpID0gbDR0W2w0X3RhYmxl X29mZnNldChQRVJDUFVfTElORUFSX1NUQVJUKV0gPQorICAgICAgICBsNGVfZnJvbV9wYWdlKHBn LCBfX1BBR0VfSFlQRVJWSVNPUik7CisKICAgICByYyA9IDA7IC8qIFN1Y2Nlc3MgKi8KIAogIG91 dDoKKyAgICBpZiAoIGwzdCApCisgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwzdCk7CiAgICAg aWYgKCBsNHQgKQogICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsNHQpOwogCiAgICAgcmV0dXJu IHJjOwogfQogCisvKgorICogRGlzbWFudGxlcyB0aGUgcGFnZXRhYmxlIHN0cnVjdHVyZSB1bmRl ciBwZXJfY3B1KHBlcmNwdV9tYXBwaW5ncywgY3B1KSwKKyAqIGZyZWVpbmcgYWxsIHBhZ2V0YWJs ZSBmcmFtZXMsIGFuZCBhbnkgUkFNIGZyYW1lcyB3aGljaCBhcmUgbWFwcGVkIHdpdGgKKyAqIE1B UF9QRVJDUFVfQVVUT0ZSRUUuCisgKi8KK3N0YXRpYyB2b2lkIGZyZWVfcGVycGNwdV9wYWdldGFi bGVzKHVuc2lnbmVkIGludCBjcHUpCit7CisgICAgbDRfcGdlbnRyeV90ICpwZXJjcHVfbWFwcGlu Z3MgPSAmcGVyX2NwdShwZXJjcHVfbWFwcGluZ3MsIGNwdSk7CisgICAgdW5zaWduZWQgaW50IGwz aTsKKyAgICBsM19wZ2VudHJ5X3QgKmwzdCA9IE5VTEw7CisKKyAgICBpZiAoICFsNGVfZ2V0X2lu dHB0ZSgqcGVyY3B1X21hcHBpbmdzKSApCisgICAgICAgIHJldHVybjsKKworICAgIGwzdCA9IG1h cF9kb21haW5fcGFnZShsNGVfZ2V0X21mbigqcGVyY3B1X21hcHBpbmdzKSk7CisKKyAgICBmb3Ig KCBsM2kgPSAwOyBsM2kgPCBMM19QQUdFVEFCTEVfRU5UUklFUzsgKytsM2kgKQorICAgIHsKKyAg ICAgICAgbDNfcGdlbnRyeV90IGwzZSA9IGwzdFtsM2ldOworCisgICAgICAgIGlmICggIShsM2Vf Z2V0X2ZsYWdzKGwzZSkgJiBfUEFHRV9QUkVTRU5UKSApCisgICAgICAgICAgICBjb250aW51ZTsK KworICAgICAgICBpZiAoICEobDNlX2dldF9mbGFncyhsM2UpICYgX1BBR0VfUFNFKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBsMmk7CisgICAgICAgICAgICBsMl9wZ2Vu dHJ5X3QgKmwydCA9IF9fbWFwX2RvbWFpbl9wYWdlKGwzZV9nZXRfcGFnZShsM2UpKTsKKworICAg ICAgICAgICAgZm9yICggbDJpID0gMDsgbDJpIDwgTDJfUEFHRVRBQkxFX0VOVFJJRVM7ICsrbDJp ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsMl9wZ2VudHJ5X3QgbDJlID0gbDJ0 W2wyaV07CisKKyAgICAgICAgICAgICAgICBpZiAoICEobDJlX2dldF9mbGFncyhsMmUpICYgX1BB R0VfUFJFU0VOVCkgKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg ICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKGwyZSkgJiBfUEFHRV9QU0UpICkKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsMWk7CisgICAgICAg ICAgICAgICAgICAgIGwxX3BnZW50cnlfdCAqbDF0ID0gX19tYXBfZG9tYWluX3BhZ2UobDJlX2dl dF9wYWdlKGwyZSkpOworCisgICAgICAgICAgICAgICAgICAgIGZvciAoIGwxaSA9IDA7IGwxaSA8 IEwxX1BBR0VUQUJMRV9FTlRSSUVTOyArK2wxaSApCisgICAgICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGwxX3BnZW50cnlfdCBsMWUgPSBsMXRbbDFpXTsKKworICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCAhKGwxZV9nZXRfZmxhZ3MobDFlKSAmIF9QQUdFX1BS RVNFTlQpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCBsMWVfZ2V0X2ZsYWdzKGwxZSkgJiBNQVBfUEVSQ1BVX0FV VE9GUkVFICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IGwxZV9nZXRfcGFnZShsMWUpOworCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpc194ZW5faGVhcF9wYWdlKHBnKSApCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlKHBhZ2VfdG9fdmly dChwZykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2UocGcpOworICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg dW5tYXBfZG9tYWluX3BhZ2UobDF0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg ICAgICBmcmVlX2RvbWhlYXBfcGFnZShsMmVfZ2V0X3BhZ2UobDJlKSk7CisgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGwydCk7CisgICAgICAgIH0KKworICAg ICAgICBmcmVlX2RvbWhlYXBfcGFnZShsM2VfZ2V0X3BhZ2UobDNlKSk7CisgICAgfQorCisgICAg dW5tYXBfZG9tYWluX3BhZ2UobDN0KTsKKyAgICBmcmVlX2RvbWhlYXBfcGFnZShsNGVfZ2V0X3Bh Z2UoKnBlcmNwdV9tYXBwaW5ncykpOworICAgICpwZXJjcHVfbWFwcGluZ3MgPSBsNGVfZW1wdHko KTsKK30KKwogc3RhdGljIHZvaWQgY3B1X3NtcGJvb3RfZnJlZSh1bnNpZ25lZCBpbnQgY3B1KQog ewogICAgIHVuc2lnbmVkIGludCBvcmRlciwgc29ja2V0ID0gY3B1X3RvX3NvY2tldChjcHUpOwpA QCAtNzMzLDYgKzgyMyw3IEBAIHN0YXRpYyB2b2lkIGNwdV9zbXBib290X2ZyZWUodW5zaWduZWQg aW50IGNwdSkKICAgICB9CiAKICAgICBwdF9zaGFkb3dfZnJlZShjcHUpOworICAgIGZyZWVfcGVy cGNwdV9wYWdldGFibGVzKGNwdSk7CiB9CiAKIHN0YXRpYyBpbnQgY3B1X3NtcGJvb3RfYWxsb2Mo dW5zaWduZWQgaW50IGNwdSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKaW5kZXggNDVjYTc0Mi4uZjMzMGM3NSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmgKQEAgLTM0NCw2ICszNDQsNyBAQCB2b2lkIGVmaV91cGRhdGVfbDRfcGd0YWJs ZSh1bnNpZ25lZCBpbnQgbDRpZHgsIGw0X3BnZW50cnlfdCk7CiAjZGVmaW5lIF9fUEFHRV9IWVBF UlZJU09SX1VDICAgICAgKF9fUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfUENEIHwgX1BBR0VfUFdU KQogCiAjZGVmaW5lIE1BUF9TTUFMTF9QQUdFUyBfUEFHRV9BVkFJTDAgLyogZG9uJ3QgdXNlIHN1 cGVycGFnZXMgbWFwcGluZ3MgKi8KKyNkZWZpbmUgTUFQX1BFUkNQVV9BVVRPRlJFRSBfUEFHRV9B VkFJTDEKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9zbXAuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc21wLmgKaW5kZXggNWZlYTI3ZC4u NDZiYmYwZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3NtcC5oCkBAIC0yMCw2ICsyMCw3IEBACiAjaWZuZGVmIF9fQVNTRU1C TFlfXwogCiBERUNMQVJFX1BFUl9DUFUocGFkZHJfdCwgcGVyY3B1X2lkbGVfcHQpOworREVDTEFS RV9QRVJfQ1BVKGw0X3BnZW50cnlfdCwgcGVyY3B1X21hcHBpbmdzKTsKIAogLyoKICAqIFByaXZh dGUgcm91dGluZXMvZGF0YQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs