From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v1 17/21] ARM: NUMA: Extract memory proximity from SRAT table Date: Thu, 9 Feb 2017 21:27:09 +0530 Message-ID: <1486655834-9708-18-git-send-email-vijay.kilari@gmail.com> References: <1486655834-9708-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: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbr8V-0008UT-Tl for xen-devel@lists.xenproject.org; Thu, 09 Feb 2017 15:59:56 +0000 Received: by mail-pg0-f65.google.com with SMTP id 204so619461pge.2 for ; Thu, 09 Feb 2017 07:59:53 -0800 (PST) In-Reply-To: <1486655834-9708-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: julien.grall@arm.com, sstabellini@kernel.org, andre.przywara@arm.com, dario.faggioli@citrix.com Cc: xen-devel@lists.xenproject.org, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKUmVnaXN0ZXIg U1JBVCBlbnRyeSBoYW5kbGVyIGZvciB0eXBlCkFDUElfU1JBVF9UWVBFX01FTU9SWV9BRkZJTklU WSB0byBwYXJzZSBTUkFUIHRhYmxlCmFuZCBleHRyYWN0IHByb3hpbWl0eSBmb3IgYWxsIG1lbW9y eSBtYXBwaW5ncy4KClNpZ25lZC1vZmYtYnk6IFZpamF5YSBLdW1hciA8VmlqYXlhLkt1bWFyQGNh dml1bS5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL2FjcGlfbnVtYS5jIHwgODAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgODAg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hY3BpX251bWEuYyBiL3hl bi9hcmNoL2FybS9hY3BpX251bWEuYwppbmRleCBmNjU5Mjc1Li4yM2NiMDdiIDEwMDY0NAotLS0g YS94ZW4vYXJjaC9hcm0vYWNwaV9udW1hLmMKKysrIGIveGVuL2FyY2gvYXJtL2FjcGlfbnVtYS5j CkBAIC0zMCw2ICszMCw5IEBACiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20v YWNwaS5oPgogCitleHRlcm4gaW50IG51bV9ub2RlX21lbWJsa3M7CitleHRlcm4gc3RydWN0IG5v ZGUgbm9kZV9tZW1ibGtfcmFuZ2VbTlJfTk9ERV9NRU1CTEtTXTsKK2V4dGVybiBub2RlaWRfdCBt ZW1ibGtfbm9kZWlkW05SX05PREVfTUVNQkxLU107CiBleHRlcm4gbm9kZW1hc2tfdCBudW1hX25v ZGVzX3BhcnNlZDsKIHN0cnVjdCB1aWRfdG9fbXBpZHIgewogICAgIHUzMiB1aWQ7CkBAIC0zOCw2 ICs0MSw3IEBAIHN0cnVjdCB1aWRfdG9fbXBpZHIgewogCiAvKiBIb2xkcyBtYXBwaW5nIG9mIENQ VSBpZCB0byBNUElEUiByZWFkIGZyb20gTUFEVCAqLwogc3RhdGljIHN0cnVjdCB1aWRfdG9fbXBp ZHIgY3B1X3VpZF90b19od2lkW05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7CitzdGF0aWMgX19pbml0 ZGF0YSBERUNMQVJFX0JJVE1BUChtZW1ibGtfaG90cGx1ZywgTlJfTk9ERV9NRU1CTEtTKTsKIAog c3RhdGljIF9faW5pdCB2b2lkIGJhZF9zcmF0KHZvaWQpCiB7CkBAIC0xNjAsNiArMTY0LDgyIEBA IHZvaWQgX19pbml0IGFjcGlfbnVtYV9naWNjX2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFj cGlfc3JhdF9naWNjX2FmZmluaXR5ICpwCiAgICAgICAgICAgIHB4bSwgbXBpZHIsIG5vZGUpOwog fQogCisvKiBDYWxsYmFjayBmb3IgcGFyc2luZyBvZiB0aGUgUHJveGltaXR5IERvbWFpbiA8LT4g TWVtb3J5IEFyZWEgbWFwcGluZ3MgKi8KK3ZvaWQgX19pbml0CithY3BpX251bWFfbWVtb3J5X2Fm ZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1hKQorewor ICAgIHU2NCBzdGFydCwgZW5kOworICAgIHVuc2lnbmVkIHB4bTsKKyAgICBub2RlaWRfdCBub2Rl OworICAgIGludCBpOworCisgICAgaWYgKCBzcmF0X2Rpc2FibGVkKCkgKQorICAgICAgICByZXR1 cm47CisKKyAgICBpZiAoIG1hLT5oZWFkZXIubGVuZ3RoICE9IHNpemVvZihzdHJ1Y3QgYWNwaV9z cmF0X21lbV9hZmZpbml0eSkgKQorICAgIHsKKyAgICAgICAgYmFkX3NyYXQoKTsKKyAgICAgICAg cmV0dXJuOworICAgIH0KKyAgICBpZiAoICEobWEtPmZsYWdzICYgQUNQSV9TUkFUX01FTV9FTkFC TEVEKSApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggbnVtX25vZGVfbWVtYmxrcyA+PSBO Ul9OT0RFX01FTUJMS1MgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HCisg ICAgICAgICAgICAgICAiVG9vIG1hbnkgbnVtYSBlbnRyeSwgdHJ5IGJpZ2dlciBOUl9OT0RFX01F TUJMS1MgXG4iKTsKKyAgICAgICAgYmFkX3NyYXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K KworICAgIHN0YXJ0ID0gbWEtPmJhc2VfYWRkcmVzczsKKyAgICBlbmQgPSBzdGFydCArIG1hLT5s ZW5ndGg7CisgICAgcHhtID0gbWEtPnByb3hpbWl0eV9kb21haW47CisgICAgbm9kZSA9IHNldHVw X25vZGUocHhtKTsKKyAgICBpZiAoIG5vZGUgPT0gTlVNQV9OT19OT0RFICkKKyAgICB7CisgICAg ICAgIGJhZF9zcmF0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLyogSXQgaXMgZmlu ZSB0byBhZGQgdGhpcyBhcmVhIHRvIHRoZSBub2RlcyBkYXRhIGl0IHdpbGwgYmUgdXNlZCBsYXRl ciovCisgICAgaSA9IGNvbmZsaWN0aW5nX21lbWJsa3Moc3RhcnQsIGVuZCk7CisgICAgaWYgKCBp IDwgMCApCisgICAgICAgIC8qIGV2ZXJ5dGhpbmcgZmluZSAqLzsKKyAgICBlbHNlIGlmICggbWVt YmxrX25vZGVpZFtpXSA9PSBub2RlICkKKyAgICB7CisgICAgICAgIGJvb2xfdCBtaXNtYXRjaCA9 ICEobWEtPmZsYWdzICYgQUNQSV9TUkFUX01FTV9IT1RfUExVR0dBQkxFKSAhPQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIXRlc3RfYml0KGksIG1lbWJsa19ob3RwbHVnKTsKKworICAgICAg ICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAgICAgICAgICAgICIlc1NSQVQ6IFBYTSAldSAo JSJQUkl4NjQiLSUiUFJJeDY0Iikgb3ZlcmxhcHMgd2l0aCBpdHNlbGYgKCUiUFJJeDY0Ii0lIlBS SXg2NCIpXG4iLAorICAgICAgICAgICAgICAgbWlzbWF0Y2ggPyBLRVJOX0VSUiA6IEtFUk5fV0FS TklORywgcHhtLCBzdGFydCwgZW5kLAorICAgICAgICAgICAgICAgbm9kZV9tZW1ibGtfcmFuZ2Vb aV0uc3RhcnQsIG5vZGVfbWVtYmxrX3JhbmdlW2ldLmVuZCk7CisgICAgICAgIGlmICggbWlzbWF0 Y2ggKQorICAgICAgICB7CisgICAgICAgICAgICBiYWRfc3JhdCgpOworICAgICAgICAgICAgcmV0 dXJuOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgICBwcmludGso WEVOTE9HX1dBUk5JTkcKKyAgICAgICAgICAgICAgICAiU1JBVDogUFhNICV1ICglIlBSSXg2NCIt JSJQUkl4NjQiKSBvdmVybGFwcyB3aXRoIFBYTSAldSAoJSJQUkl4NjQiLSUiUFJJeDY0IilcbiIs CisgICAgICAgICAgICAgICAgcHhtLCBzdGFydCwgZW5kLCBub2RlX3RvX3B4bShtZW1ibGtfbm9k ZWlkW2ldKSwKKyAgICAgICAgICAgICAgICBub2RlX21lbWJsa19yYW5nZVtpXS5zdGFydCwgbm9k ZV9tZW1ibGtfcmFuZ2VbaV0uZW5kKTsKKyAgICAgICAgYmFkX3NyYXQoKTsKKyAgICAgICAgcmV0 dXJuOworICAgIH0KKworICAgIHByaW50ayhYRU5MT0dfSU5GTyAiU1JBVDogTm9kZSAldSBQWE0g JXUgJSJQUkl4NjQiLSUiUFJJeDY0IiVzXG4iLAorICAgICAgICAgICBub2RlLCBweG0sIHN0YXJ0 LCBlbmQsCisgICAgICAgICAgIG1hLT5mbGFncyAmIEFDUElfU1JBVF9NRU1fSE9UX1BMVUdHQUJM RSA/ICIgKGhvdHBsdWcpIiA6ICIiKTsKKworICAgIG51bWFfYWRkX21lbWJsayhub2RlLCBzdGFy dCwgbWEtPmxlbmd0aCk7CisgICAgbm9kZV9zZXQobm9kZSwgbnVtYV9ub2Rlc19wYXJzZWQpOwor ICAgIGlmIChtYS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpCisgICAgICAg IF9fc2V0X2JpdChudW1fbm9kZV9tZW1ibGtzLCBtZW1ibGtfaG90cGx1Zyk7Cit9CisKIHZvaWQg X19pbml0IGFjcGlfbWFwX3VpZF90b19tcGlkcih2b2lkKQogewogICAgIGludCBpOwotLSAKMi43 LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK