From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v2 16/25] ARM: NUMA: Add memory NUMA support Date: Tue, 28 Mar 2017 21:23:24 +0530 Message-ID: <1490716413-19796-17-git-send-email-vijay.kilari@gmail.com> References: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.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: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKSW1wbGVtZW50 IGFyY2hfc2FuaXRpemVfbm9kZXNfbWVtb3J5KCkgd2hpY2ggbG9va3MgYXQgYWxsIGJhbmtzCmlu IGJvb3RpbmZvLm1lbSwgdXBkYXRlIG5vZGVzW10gd2l0aCBjb3JyZXNwb25kaW5nIG5vZGVpZC4K Q2FsbCBudW1hX3NjYW5fbm9kZXMoKSBnZW5lcmljIGZ1bmN0aW9uIHdpdGggcmFtIHN0YXJ0IGFu ZAplbmQgYWRkcmVzcywgd2hpY2ggdGFrZXMgY2FyZSBvZiBmdXJ0aGVyIGNvbXB1dGluZyBtZW1u b2Rlc2hpZnQKYW5kIHBvcHVsYXRpbmcgbWVtbm9kZW1hcFtdIHVzaW5nIGdlbmVyaWMgaW1wbGVt ZW50YXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBWaWpheWEgS3VtYXIgSyA8VmlqYXlhLkt1bWFyQGNh dml1bS5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL251bWEvbnVtYS5jICAgfCA3OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vY29tbW9uL251bWEuYyAg ICAgICAgICB8IDE0ICsrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL251bWEuaCB8IDE5ICsr KysrKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vbnVtYS5oICAgICB8ICAxICsKIDQgZmlsZXMgY2hh bmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC9hcm0vbnVtYS9udW1hLmMgYi94ZW4vYXJjaC9hcm0vbnVtYS9udW1hLmMKaW5kZXggZWVm NTg3MC4uNzU4M2E0MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL251bWEvbnVtYS5jCisrKyBi L3hlbi9hcmNoL2FybS9udW1hL251bWEuYwpAQCAtNzAsOSArNzAsNzQgQEAgdm9pZCBudW1hX2Zh aWxlZCh2b2lkKQogICAgIGluaXRfY3B1X3RvX25vZGUoKTsKIH0KIAoraW50IF9faW5pdCBhcmNo X3Nhbml0aXplX25vZGVzX21lbW9yeSh2b2lkKQoreworICAgIG5vZGVtYXNrX3QgbWVtX25vZGVz X3BhcnNlZDsKKyAgICBpbnQgYmFuaywgbm9kZWlkOworICAgIHN0cnVjdCBub2RlICpuZDsKKyAg ICBwYWRkcl90IHN0YXJ0LCBzaXplLCBlbmQ7CisKKyAgICBub2Rlc19jbGVhcihtZW1fbm9kZXNf cGFyc2VkKTsKKyAgICBmb3IgKCBiYW5rID0gMCA7IGJhbmsgPCBib290aW5mby5tZW0ubnJfYmFu a3M7IGJhbmsrKyApCisgICAgeworICAgICAgICBzdGFydCA9IGJvb3RpbmZvLm1lbS5iYW5rW2Jh bmtdLnN0YXJ0OworICAgICAgICBzaXplID0gYm9vdGluZm8ubWVtLmJhbmtbYmFua10uc2l6ZTsK KyAgICAgICAgZW5kID0gc3RhcnQgKyBzaXplOworCisgICAgICAgIG5vZGVpZCA9IGdldF9tZW1f bm9kZWlkKHN0YXJ0LCBlbmQpOworICAgICAgICBpZiAoIG5vZGVpZCA+PSBOVU1BX05PX05PREUg KQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAgICAg ICAgICAgICAgICAiTlVNQTogbm9kZSBmb3IgbWVtIGJhbmsgc3RhcnQgMHglbHggLSAweCVseCBu b3QgZm91bmRcbiIsCisgICAgICAgICAgICAgICAgICAgc3RhcnQsIGVuZCk7CisKKyAgICAgICAg ICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgbmQgPSBnZXRfbnVtYV9ub2RlKG5v ZGVpZCk7CisgICAgICAgIGlmICggIW5vZGVfdGVzdF9hbmRfc2V0KG5vZGVpZCwgbWVtX25vZGVz X3BhcnNlZCkgKQorICAgICAgICB7CisgICAgICAgICAgICBuZC0+c3RhcnQgPSBzdGFydDsKKyAg ICAgICAgICAgIG5kLT5lbmQgPSBlbmQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoIHN0YXJ0IDwgbmQtPnN0YXJ0ICkKKyAgICAgICAgICAgICAg ICBuZC0+c3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIGlmICggbmQtPmVuZCA8IGVuZCApCisg ICAgICAgICAgICAgICAgbmQtPmVuZCA9IGVuZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl dHVybiAxOworfQorCitzdGF0aWMgYm9vbF90IF9faW5pdCBudW1hX2luaXRtZW1faW5pdChwYWRk cl90IHJhbV9zdGFydCwgcGFkZHJfdCByYW1fZW5kKQoreworICAgIGludCBpOworICAgIHN0cnVj dCBub2RlICpuZDsKKyAgICAvKgorICAgICAqIEluIGFyY2hfc2FuaXRpemVfbm9kZXNfbWVtb3J5 KCkgd2UgdXBkYXRlIG5vZGVzW10gd2l0aCBwcm9wZXJseS4KKyAgICAgKiBIZW5jZSB3ZSByZXNl dCB0aGUgbm9kZXNbXSBiZWZvcmUgY2FsbGluZyBudW1hX3NjYW5fbm9kZXMoKS4KKyAgICAgKi8K KyAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrICkKKyAgICB7CisgICAgICAg IG5kID0gZ2V0X251bWFfbm9kZShpKTsKKyAgICAgICAgbmQtPnN0YXJ0ID0gMDsKKyAgICAgICAg bmQtPmVuZCA9IDA7CisgICAgfQorCisgICAgaWYgKCAhbnVtYV9zY2FuX25vZGVzKHJhbV9zdGFy dCwgcmFtX2VuZCkgKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gMTsKK30K Kwogdm9pZCBfX2luaXQgbnVtYV9pbml0KHZvaWQpCiB7Ci0gICAgaW50IHJldCA9IDA7CisgICAg aW50IHJldCA9IDAsIGJhbms7CisgICAgcGFkZHJfdCByYW1fc3RhcnQgPSB+MDsKKyAgICBwYWRk cl90IHJhbV9lbmQgPSAwOwogCiAgICAgbm9kZXNfY2xlYXIocHJvY2Vzc29yX25vZGVzX3BhcnNl ZCk7CiAgICAgaW5pdF9jcHVfdG9fbm9kZSgpOwpAQCAtODcsNiArMTUyLDE4IEBAIHZvaWQgX19p bml0IG51bWFfaW5pdCh2b2lkKQogICAgIGlmICggcmV0ICkKICAgICAgICAgcHJpbnRrKFhFTkxP R19XQVJOSU5HICJEVCBOVU1BIGluaXQgZmFpbGVkXG4iKTsKIAorICAgIGZvciAoIGJhbmsgPSAw IDsgYmFuayA8IGJvb3RpbmZvLm1lbS5ucl9iYW5rczsgYmFuaysrICkKKyAgICB7CisgICAgICAg IHBhZGRyX3QgYmFua19zdGFydCA9IGJvb3RpbmZvLm1lbS5iYW5rW2JhbmtdLnN0YXJ0OworICAg ICAgICBwYWRkcl90IGJhbmtfZW5kID0gYmFua19zdGFydCArIGJvb3RpbmZvLm1lbS5iYW5rW2Jh bmtdLnNpemU7CisKKyAgICAgICAgcmFtX3N0YXJ0ID0gbWluKHJhbV9zdGFydCwgYmFua19zdGFy dCk7CisgICAgICAgIHJhbV9lbmQgPSBtYXgocmFtX2VuZCwgYmFua19lbmQpOworICAgIH0KKwor ICAgIGlmICggIXJldCApCisgICAgICAgIHJldCA9IG51bWFfaW5pdG1lbV9pbml0KHJhbV9zdGFy dCwgcmFtX2VuZCk7CisKIG5vX251bWE6CiAgICAgcmV0dXJuOwogfQpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9udW1hLmMgYi94ZW4vY29tbW9uL251bWEuYwppbmRleCAxNzg5YmJhLi5mMmFjNzI2 IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL251bWEuYworKysgYi94ZW4vY29tbW9uL251bWEuYwpA QCAtODQsNiArODQsMjAgQEAgbm9kZWlkX3QgZ2V0X21lbWJsa19ub2RlaWQoaW50IGlkKQogICAg IHJldHVybiBtZW1ibGtfbm9kZWlkW2lkXTsKIH0KIAoraW50IF9faW5pdCBnZXRfbWVtX25vZGVp ZChwYWRkcl90IHN0YXJ0LCBwYWRkcl90IGVuZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKwor ICAgIGZvciAoIGkgPSAwOyBpIDwgZ2V0X251bV9ub2RlX21lbWJsa3MoKTsgaSsrICkKKyAgICB7 CisgICAgICAgIGlmICggc3RhcnQgPj0gbm9kZV9tZW1ibGtfcmFuZ2VbaV0uc3RhcnQgJiYKKyAg ICAgICAgICAgICBlbmQgPD0gbm9kZV9tZW1ibGtfcmFuZ2VbaV0uZW5kICkKKyAgICAgICAgICAg IHJldHVybiBtZW1ibGtfbm9kZWlkW2ldOworICAgIH0KKworICAgIHJldHVybiAtRUlOVkFMOwor fQorCiBub2RlaWRfdCAqZ2V0X21lbWJsa19ub2RlaWRfbWFwKHZvaWQpCiB7CiAgICAgcmV0dXJu ICZtZW1ibGtfbm9kZWlkWzBdOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9udW1h LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL251bWEuaAppbmRleCA2NWJkZDVlLi44NWZiYmU4IDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL251bWEuaAorKysgYi94ZW4vaW5jbHVkZS9h c20tYXJtL251bWEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19BUkNIX0FSTV9OVU1BX0gK ICNkZWZpbmUgX19BUkNIX0FSTV9OVU1BX0gKIAorI2luY2x1ZGUgPHhlbi9tbS5oPgorCiB0eXBl ZGVmIHVpbnQ4X3Qgbm9kZWlkX3Q7CiAKIC8qIExpbWl0IG51bWJlciBvZiBOVU1BIG5vZGVzIHN1 cHBvcnRlZCB0byA0ICovCkBAIC0yOCw2ICszMCwyMyBAQCBleHRlcm4gdWludDhfdCAqbWVtbm9k ZW1hcDsKICNkZWZpbmUgbm9kZV90b19maXJzdF9jcHUobm9kZSkgIChfX2Zmcyhub2RlX3RvX2Nw dW1hc2tbbm9kZV0pKQogI2RlZmluZSBub2RlX3RvX2NwdW1hc2sobm9kZSkgICAgKG5vZGVfdG9f Y3B1bWFza1tub2RlXSkKIAorc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgbm9k ZWlkX3QgcGh5c190b19uaWQocGFkZHJfdCBhZGRyKQoreworICAgIHJldHVybiBtZW1ub2RlbWFw W3BhZGRyX3RvX3BkeChhZGRyKSA+PiBtZW1ub2RlX3NoaWZ0XTsKK30KKworc3RydWN0IG5vZGVf ZGF0YSB7CisgICAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X3BmbjsKKyAgICB1bnNpZ25lZCBs b25nIG5vZGVfc3Bhbm5lZF9wYWdlczsKK307CisKK2V4dGVybiBzdHJ1Y3Qgbm9kZV9kYXRhIG5v ZGVfZGF0YVtdOworI2RlZmluZSBOT0RFX0RBVEEobmlkKSAgICAgICAgICAoJihub2RlX2RhdGFb bmlkXSkpCisKKyNkZWZpbmUgbm9kZV9zdGFydF9wZm4obmlkKSAgICAgKE5PREVfREFUQShuaWQp LT5ub2RlX3N0YXJ0X3BmbikKKyNkZWZpbmUgbm9kZV9zcGFubmVkX3BhZ2VzKG5pZCkgKE5PREVf REFUQShuaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMpCisjZGVmaW5lIG5vZGVfZW5kX3BmbihuaWQp ICAgICAgIChOT0RFX0RBVEEobmlkKS0+bm9kZV9zdGFydF9wZm4gKyBcCisKICNlbHNlCiBzdGF0 aWMgaW5saW5lIHZvaWQgbnVtYV9pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vbnVtYS5oIGIveGVuL2luY2x1ZGUveGVuL251bWEuaAppbmRleCBlZTUzNTI2Li5iNDBh ODQxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbnVtYS5oCisrKyBiL3hlbi9pbmNsdWRl L3hlbi9udW1hLmgKQEAgLTM4LDYgKzM4LDcgQEAgZXh0ZXJuIG5vZGVpZF90ICpnZXRfbWVtYmxr X25vZGVpZF9tYXAodm9pZCk7CiBleHRlcm4gc3RydWN0IG5vZGUgKmdldF9ub2RlX21lbWJsa19y YW5nZShpbnQgbWVtYmxrKTsKIGV4dGVybiBzdHJ1Y3Qgbm9kZSAqZ2V0X21lbWJsayhpbnQgbWVt YmxrKTsKIGV4dGVybiBpbnQgbnVtYV9hZGRfbWVtYmxrKG5vZGVpZF90IG5vZGVpZCwgcGFkZHJf dCBzdGFydCwgdWludDY0X3Qgc2l6ZSk7CitleHRlcm4gaW50IGdldF9tZW1fbm9kZWlkKHBhZGRy X3Qgc3RhcnQsIHBhZGRyX3QgZW5kKTsKIGV4dGVybiBpbnQgZ2V0X251bV9ub2RlX21lbWJsa3Mo dm9pZCk7CiBleHRlcm4gaW50IGFyY2hfc2FuaXRpemVfbm9kZXNfbWVtb3J5KHZvaWQpOwogZXh0 ZXJuIHZvaWQgbnVtYV9mYWlsZWQodm9pZCk7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=