From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v1 07/21] ARM: NUMA: Parse memory NUMA information Date: Thu, 9 Feb 2017 21:26:59 +0530 Message-ID: <1486655834-9708-8-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbr86-0007zV-Pj for xen-devel@lists.xenproject.org; Thu, 09 Feb 2017 15:59:30 +0000 Received: by mail-pg0-f68.google.com with SMTP id v184so621564pgv.1 for ; Thu, 09 Feb 2017 07:59:25 -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 RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKUGFyc2UgbWVt b3J5IG5vZGUgYW5kIGZldGNoIG51bWEtbm9kZS1pZCBpbmZvcm1hdGlvbi4KRm9yIGVhY2ggbWVt b3J5IHJhbmdlLCBzdG9yZSBpbiBub2RlX21lbWJsa19yYW5nZVtdCmFsb25nIHdpdGggbm9kZSBp ZC4KClNpZ25lZC1vZmYtYnk6IFZpamF5YSBLdW1hciBLIDxWaWpheWEuS3VtYXJAY2F2aXVtLmNv bT4KLS0tCiB4ZW4vYXJjaC9hcm0vYm9vdGZkdC5jICAgICAgICB8ICA0ICstLQogeGVuL2FyY2gv YXJtL2R0X251bWEuYyAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCiB4ZW4vY29tbW9uL251bWEuYyAgICAgICAgICAgICB8ICA4ICsrKysrCiB4 ZW4vaW5jbHVkZS94ZW4vZGV2aWNlX3RyZWUuaCB8ICAzICsrCiB4ZW4vaW5jbHVkZS94ZW4vbnVt YS5oICAgICAgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYm9vdGZkdC5jIGIveGVuL2Fy Y2gvYXJtL2Jvb3RmZHQuYwppbmRleCBkMTEyMmQ4Li41ZTJkZjkyIDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vYm9vdGZkdC5jCisrKyBiL3hlbi9hcmNoL2FybS9ib290ZmR0LmMKQEAgLTU2LDgg KzU2LDggQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgZGV2aWNlX3RyZWVfbm9kZV9jb21wYXRpYmxl KGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2 b2lkIF9faW5pdCBkZXZpY2VfdHJlZV9nZXRfcmVnKGNvbnN0IF9fYmUzMiAqKmNlbGwsIHUzMiBh ZGRyZXNzX2NlbGxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMy IHNpemVfY2VsbHMsIHU2NCAqc3RhcnQsIHU2NCAqc2l6ZSkKK3ZvaWQgX19pbml0IGRldmljZV90 cmVlX2dldF9yZWcoY29uc3QgX19iZTMyICoqY2VsbCwgdTMyIGFkZHJlc3NfY2VsbHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBzaXplX2NlbGxzLCB1NjQgKnN0YXJ0LCB1 NjQgKnNpemUpCiB7CiAgICAgKnN0YXJ0ID0gZHRfbmV4dF9jZWxsKGFkZHJlc3NfY2VsbHMsIGNl bGwpOwogICAgICpzaXplID0gZHRfbmV4dF9jZWxsKHNpemVfY2VsbHMsIGNlbGwpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL2R0X251bWEuYyBiL3hlbi9hcmNoL2FybS9kdF9udW1hLmMKaW5k ZXggNGI5NGMzNi4uZmNlOWU2NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2R0X251bWEuYwor KysgYi94ZW4vYXJjaC9hcm0vZHRfbnVtYS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8 eGVuL251bWEuaD4KIAogbm9kZW1hc2tfdCBudW1hX25vZGVzX3BhcnNlZDsKK2V4dGVybiBzdHJ1 Y3Qgbm9kZSBub2RlX21lbWJsa19yYW5nZVtOUl9OT0RFX01FTUJMS1NdOwogCiAvKgogICogRXZl biB0aG91Z2ggd2UgY29ubmVjdCBjcHVzIHRvIG51bWEgZG9tYWlucyBsYXRlciBpbiBTTVAKQEAg LTQ4LDExICs0OSw3MyBAQCBzdGF0aWMgaW50IF9faW5pdCBkdF9udW1hX3Byb2Nlc3NfY3B1X25v ZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGlj IGludCBfX2luaXQgZHRfbnVtYV9wcm9jZXNzX21lbW9yeV9ub2RlKGNvbnN0IHZvaWQgKmZkdCwg aW50IG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1MzIgYWRkcmVzc19jZWxscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1MzIgc2l6ZV9jZWxscykKK3sKKyAgICBjb25zdCBzdHJ1Y3QgZmR0 X3Byb3BlcnR5ICpwcm9wOworICAgIGludCBpLCByZXQsIGJhbmtzOworICAgIGNvbnN0IF9fYmUz MiAqY2VsbDsKKyAgICBwYWRkcl90IHN0YXJ0LCBzaXplOworICAgIHUzMiByZWdfY2VsbHMgPSBh ZGRyZXNzX2NlbGxzICsgc2l6ZV9jZWxsczsKKyAgICB1MzIgbmlkOworCisgICAgaWYgKCBhZGRy ZXNzX2NlbGxzIDwgMSB8fCBzaXplX2NlbGxzIDwgMSApCisgICAgeworICAgICAgICBwcmludGso WEVOTE9HX1dBUk5JTkcKKyAgICAgICAgICAgICAgICJmZHQ6IG5vZGUgYCVzJzogaW52YWxpZCAj YWRkcmVzcy1jZWxscyBvciAjc2l6ZS1jZWxscyIsIG5hbWUpOworICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKyAgICB9CisKKyAgICBuaWQgPSBkZXZpY2VfdHJlZV9nZXRfdTMyKGZkdCwgbm9kZSwg Im51bWEtbm9kZS1pZCIsIE1BWF9OVU1OT0RFUyk7CisgICAgaWYgKCBuaWQgPj0gTUFYX05VTU5P REVTKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIE5vIG5vZGUgaWQgZm91bmQuIFNraXAgdGhp cyBtZW1vcnkgbm9kZS4KKyAgICAgICAgICovCisgICAgICAgIHJldHVybiAwOworICAgIH0KKwor ICAgIHByb3AgPSBmZHRfZ2V0X3Byb3BlcnR5KGZkdCwgbm9kZSwgInJlZyIsIE5VTEwpOworICAg IGlmICggIXByb3AgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJmZHQ6 IG5vZGUgYCVzJzogbWlzc2luZyBgcmVnJyBwcm9wZXJ0eVxuIiwKKyAgICAgICAgICAgICAgIG5h bWUpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBjZWxsID0gKGNvbnN0 IF9fYmUzMiAqKXByb3AtPmRhdGE7CisgICAgYmFua3MgPSBmZHQzMl90b19jcHUocHJvcC0+bGVu KSAvIChyZWdfY2VsbHMgKiBzaXplb2YgKHUzMikpOworCisgICAgZm9yICggaSA9IDA7IGkgPCBi YW5rczsgaSsrICkKKyAgICB7CisgICAgICAgIGRldmljZV90cmVlX2dldF9yZWcoJmNlbGwsIGFk ZHJlc3NfY2VsbHMsIHNpemVfY2VsbHMsICZzdGFydCwgJnNpemUpOworICAgICAgICBpZiAoICFz aXplICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8qIEl0IGlzIGZpbmUgdG8g YWRkIHRoaXMgYXJlYSB0byB0aGUgbm9kZXMgZGF0YSBpdCB3aWxsIGJlIHVzZWQgbGF0ZXIqLwor ICAgICAgICByZXQgPSBjb25mbGljdGluZ19tZW1ibGtzKHN0YXJ0LCBzdGFydCArIHNpemUpOwor ICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICBudW1hX2FkZF9tZW1ibGsobmlkLCBz dGFydCwgc2l6ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgIHByaW50 ayhYRU5MT0dfRVJSCisgICAgICAgICAgICAgICAgICAgICJOVU1BIERUOiBub2RlICV1ICglIlBS SXg2NCItJSJQUkl4NjQiKSBvdmVybGFwcyB3aXRoIHJldCAlZCAoJSJQUkl4NjQiLSUiUFJJeDY0 IilcbiIsCisgICAgICAgICAgICAgICAgICAgIG5pZCwgc3RhcnQsIHN0YXJ0ICsgc2l6ZSwgcmV0 LAorICAgICAgICAgICAgICAgICAgICBub2RlX21lbWJsa19yYW5nZVtpXS5zdGFydCwgbm9kZV9t ZW1ibGtfcmFuZ2VbaV0uZW5kKTsKKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAg ICAgfQorICAgIH0KKworICAgIG5vZGVfc2V0KG5pZCwgbnVtYV9ub2Rlc19wYXJzZWQpOworCisg ICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0IGR0X251bWFfc2Nhbl9jcHVfbm9k ZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBkZXB0aCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgYWRkcmVzc19jZWxscywgdTMyIHNpemVfY2Vs bHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSkK LQogewogICAgIGlmICggZGV2aWNlX3RyZWVfbm9kZV9tYXRjaGVzKGZkdCwgbm9kZSwgImNwdSIp ICkKICAgICAgICAgcmV0dXJuIGR0X251bWFfcHJvY2Vzc19jcHVfbm9kZShmZHQsIG5vZGUsIG5h bWUsIGFkZHJlc3NfY2VsbHMsCkBAIC02MSw2ICsxMjQsMTggQEAgc3RhdGljIGludCBfX2luaXQg ZHRfbnVtYV9zY2FuX2NwdV9ub2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCiAgICAgcmV0 dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgX19pbml0IGR0X251bWFfc2Nhbl9tZW1vcnlfbm9kZShj b25zdCB2b2lkICpmZHQsIGludCBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBkZXB0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgYWRkcmVzc19jZWxscywgdTMyIHNpemVf Y2VsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq ZGF0YSkKK3sKKyAgICBpZiAoIGRldmljZV90cmVlX25vZGVfbWF0Y2hlcyhmZHQsIG5vZGUsICJt ZW1vcnkiKSApCisgICAgICAgIHJldHVybiBkdF9udW1hX3Byb2Nlc3NfbWVtb3J5X25vZGUoZmR0 LCBub2RlLCBuYW1lLCBhZGRyZXNzX2NlbGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVfY2VsbHMpOworCisgICAgcmV0dXJuIDA7Cit9CisKIGludCBf X2luaXQgZHRfbnVtYV9pbml0KHZvaWQpCiB7CiAgICAgaW50IHJldDsKQEAgLTY4LDUgKzE0Mywx MiBAQCBpbnQgX19pbml0IGR0X251bWFfaW5pdCh2b2lkKQogICAgIG5vZGVzX2NsZWFyKG51bWFf bm9kZXNfcGFyc2VkKTsKICAgICByZXQgPSBkZXZpY2VfdHJlZV9mb3JfZWFjaF9ub2RlKCh2b2lk ICopZGV2aWNlX3RyZWVfZmxhdHRlbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHRfbnVtYV9zY2FuX2NwdV9ub2RlLCBOVUxMKTsKKworICAgIGlmICggcmV0ICkKKyAg ICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldCA9IGRldmljZV90cmVlX2Zvcl9lYWNoX25vZGUo KHZvaWQgKilkZXZpY2VfdHJlZV9mbGF0dGVuZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkdF9udW1hX3NjYW5fbWVtb3J5X25vZGUsIE5VTEwpOworCiAgICAgcmV0dXJu IHJldDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbnVtYS5jIGIveGVuL2NvbW1vbi9udW1h LmMKaW5kZXggOWI5Y2Y5Yy4uNjJjNzZhZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9udW1hLmMK KysrIGIveGVuL2NvbW1vbi9udW1hLmMKQEAgLTU1LDYgKzU1LDE0IEBAIHN0cnVjdCBub2RlIG5v ZGVfbWVtYmxrX3JhbmdlW05SX05PREVfTUVNQkxLU107CiBub2RlaWRfdCBtZW1ibGtfbm9kZWlk W05SX05PREVfTUVNQkxLU107CiBzdHJ1Y3Qgbm9kZSBub2Rlc1tNQVhfTlVNTk9ERVNdIF9faW5p dGRhdGE7CiAKK3ZvaWQgX19pbml0IG51bWFfYWRkX21lbWJsayhub2RlaWRfdCBub2RlaWQsIHU2 NCBzdGFydCwgdTY0IHNpemUpCit7CisgICAgbm9kZV9tZW1ibGtfcmFuZ2VbbnVtX25vZGVfbWVt Ymxrc10uc3RhcnQgPSBzdGFydDsKKyAgICBub2RlX21lbWJsa19yYW5nZVtudW1fbm9kZV9tZW1i bGtzXS5lbmQgPSBzdGFydCArIHNpemU7CisgICAgbWVtYmxrX25vZGVpZFtudW1fbm9kZV9tZW1i bGtzXSA9IG5vZGVpZDsKKyAgICBudW1fbm9kZV9tZW1ibGtzKys7Cit9CisKIGludCB2YWxpZF9u dW1hX3JhbmdlKHU2NCBzdGFydCwgdTY0IGVuZCwgbm9kZWlkX3Qgbm9kZSkKIHsKICNpZmRlZiBD T05GSUdfTlVNQQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2RldmljZV90cmVlLmggYi94 ZW4vaW5jbHVkZS94ZW4vZGV2aWNlX3RyZWUuaAppbmRleCBkZTZiMzUxLi5kOTJlNDdlIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZGV2aWNlX3RyZWUuaAorKysgYi94ZW4vaW5jbHVkZS94 ZW4vZGV2aWNlX3RyZWUuaApAQCAtMTkyLDYgKzE5Miw5IEBAIGJvb2xfdCBkZXZpY2VfdHJlZV9u b2RlX21hdGNoZXMoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbWF0Y2gpOwogdTMyIGRldmljZV90cmVlX2dldF91 MzIoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKnByb3BfbmFtZSwgdTMyIGRmbHQpOwordm9pZCBkZXZpY2VfdHJlZV9nZXRfcmVn KGNvbnN0IF9fYmUzMiAqKmNlbGwsIHUzMiBhZGRyZXNzX2NlbGxzLAorICAgICAgICAgICAgICAg ICAgICAgICAgIHUzMiBzaXplX2NlbGxzLCB1NjQgKnN0YXJ0LCB1NjQgKnNpemUpOworCiAvKioK ICAqIGR0X3VuZmxhdHRlbl9ob3N0X2RldmljZV90cmVlIC0gVW5mbGF0dGVuIHRoZSBob3N0IGRl dmljZSB0cmVlCiAgKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL251bWEuaCBiL3hlbi9p bmNsdWRlL3hlbi9udW1hLmgKaW5kZXggNzdjNWNmZC4uOTM5MmE4OSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGVuL251bWEuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbnVtYS5oCkBAIC02Nyw2 ICs2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygocHVyZSkpIG5vZGVpZF90IHBo eXNfdG9fbmlkKHBhZGRyX3QgYWRkcikKICNkZWZpbmUgY2xlYXJfbm9kZV9jcHVtYXNrKGNwdSkg ZG8ge30gd2hpbGUgKDApCiAjZW5kaWYgLyogQ09ORklHX05VTUEgKi8KIAorZXh0ZXJuIHZvaWQg bnVtYV9hZGRfbWVtYmxrKG5vZGVpZF90IG5vZGVpZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CiBl eHRlcm4gaW50IHZhbGlkX251bWFfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgZW5kLCBub2RlaWRfdCBu b2RlKTsKIGV4dGVybiBpbnQgY29uZmxpY3RpbmdfbWVtYmxrcyh1NjQgc3RhcnQsIHU2NCBlbmQp OwogZXh0ZXJuIHZvaWQgY3V0b2ZmX25vZGUoaW50IGksIHU2NCBzdGFydCwgdTY0IGVuZCk7Ci0t IAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=