From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v2 06/25] x86: NUMA: Add accessors for nodes[] and node_memblk_range[] structs Date: Tue, 28 Mar 2017 21:23:14 +0530 Message-ID: <1490716413-19796-7-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 RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKQWRkIGFjY2Vz c29yIGZvciBub2Rlc1tdIGFuZCBvdGhlciBzdGF0aWMgdmFyaWFibGVzIGFuZAp1c2VkIHRob3Nl IGFjY2Vzc29ycy4KClNpZ25lZC1vZmYtYnk6IFZpamF5YSBLdW1hciBLIDxWaWpheWEuS3VtYXJA Y2F2aXVtLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvc3JhdC5jIHwgMTA4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4 MiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvc3JhdC5jIGIveGVuL2FyY2gveDg2L3NyYXQuYwppbmRleCBjY2FjYmNkLi45ODNlMWQ4IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3JhdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcmF0LmMK QEAgLTQxLDcgKzQxLDQ1IEBAIHN0YXRpYyBzdHJ1Y3Qgbm9kZSBub2RlX21lbWJsa19yYW5nZVtO Ul9OT0RFX01FTUJMS1NdOwogc3RhdGljIG5vZGVpZF90IG1lbWJsa19ub2RlaWRbTlJfTk9ERV9N RU1CTEtTXTsKIHN0YXRpYyBfX2luaXRkYXRhIERFQ0xBUkVfQklUTUFQKG1lbWJsa19ob3RwbHVn LCBOUl9OT0RFX01FTUJMS1MpOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgbm9kZV9mb3VuZCh1bnNp Z25lZCBpZHgsIHVuc2lnbmVkIHB4bSkKK3N0YXRpYyBzdHJ1Y3Qgbm9kZSAqZ2V0X251bWFfbm9k ZShpbnQgaWQpCit7CisJcmV0dXJuICZub2Rlc1tpZF07Cit9CisKK3N0YXRpYyBub2RlaWRfdCBn ZXRfbWVtYmxrX25vZGVpZChpbnQgaWQpCit7CisJcmV0dXJuIG1lbWJsa19ub2RlaWRbaWRdOwor fQorCitzdGF0aWMgbm9kZWlkX3QgKmdldF9tZW1ibGtfbm9kZWlkX21hcCh2b2lkKQoreworCXJl dHVybiAmbWVtYmxrX25vZGVpZFswXTsKK30KKworc3RhdGljIHN0cnVjdCBub2RlICpnZXRfbm9k ZV9tZW1ibGtfcmFuZ2UoaW50IG1lbWJsaykKK3sKKwlyZXR1cm4gJm5vZGVfbWVtYmxrX3Jhbmdl W21lbWJsa107Cit9CisKK3N0YXRpYyBpbnQgZ2V0X251bV9ub2RlX21lbWJsa3Modm9pZCkKK3sK KwlyZXR1cm4gbnVtX25vZGVfbWVtYmxrczsKK30KKworc3RhdGljIGludCBfX2luaXQgbnVtYV9h ZGRfbWVtYmxrKG5vZGVpZF90IG5vZGVpZCwgcGFkZHJfdCBzdGFydCwgdWludDY0X3Qgc2l6ZSkK K3sKKwlpZiAobm9kZWlkID49IE5SX05PREVfTUVNQkxLUykKKwkJcmV0dXJuIC1FSU5WQUw7CisK Kwlub2RlX21lbWJsa19yYW5nZVtudW1fbm9kZV9tZW1ibGtzXS5zdGFydCA9IHN0YXJ0OworCW5v ZGVfbWVtYmxrX3JhbmdlW251bV9ub2RlX21lbWJsa3NdLmVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwlt ZW1ibGtfbm9kZWlkW251bV9ub2RlX21lbWJsa3NdID0gbm9kZWlkOworCW51bV9ub2RlX21lbWJs a3MrKzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgbm9kZV9mb3VuZCh1 bnNpZ25lZCBpbnQgaWR4LCB1bnNpZ25lZCBpbnQgcHhtKQogewogCXJldHVybiAoKHB4bTJub2Rl W2lkeF0ucHhtID09IHB4bSkgJiYKIAkJKHB4bTJub2RlW2lkeF0ubm9kZSAhPSBOVU1BX05PX05P REUpKTsKQEAgLTEwNywxMSArMTQ1LDExIEBAIGludCB2YWxpZF9udW1hX3JhbmdlKHBhZGRyX3Qg c3RhcnQsIHBhZGRyX3QgZW5kLCBub2RlaWRfdCBub2RlKQogewogCWludCBpOwogCi0JZm9yIChp ID0gMDsgaSA8IG51bV9ub2RlX21lbWJsa3M7IGkrKykgewotCQlzdHJ1Y3Qgbm9kZSAqbmQgPSAm bm9kZV9tZW1ibGtfcmFuZ2VbaV07CisJZm9yIChpID0gMDsgaSA8IGdldF9udW1fbm9kZV9tZW1i bGtzKCk7IGkrKykgeworCQlzdHJ1Y3Qgbm9kZSAqbmQgPSBnZXRfbm9kZV9tZW1ibGtfcmFuZ2Uo aSk7CiAKIAkJaWYgKG5kLT5zdGFydCA8PSBzdGFydCAmJiBuZC0+ZW5kID4gZW5kICYmCi0JCQlt ZW1ibGtfbm9kZWlkW2ldID09IG5vZGUgKQorCQkgICAgZ2V0X21lbWJsa19ub2RlaWQoaSkgPT0g bm9kZSkKIAkJCXJldHVybiAxOwogCX0KIApAQCAtMTIyLDggKzE2MCw4IEBAIHN0YXRpYyBpbnQg X19pbml0IGNvbmZsaWN0aW5nX21lbWJsa3MocGFkZHJfdCBzdGFydCwgcGFkZHJfdCBlbmQpCiB7 CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX25vZGVfbWVtYmxrczsgaSsrKSB7Ci0J CXN0cnVjdCBub2RlICpuZCA9ICZub2RlX21lbWJsa19yYW5nZVtpXTsKKwlmb3IgKGkgPSAwOyBp IDwgZ2V0X251bV9ub2RlX21lbWJsa3MoKTsgaSsrKSB7CisJCXN0cnVjdCBub2RlICpuZCA9IGdl dF9ub2RlX21lbWJsa19yYW5nZShpKTsKIAkJaWYgKG5kLT5zdGFydCA9PSBuZC0+ZW5kKQogCQkJ Y29udGludWU7CiAJCWlmIChuZC0+ZW5kID4gc3RhcnQgJiYgbmQtPnN0YXJ0IDwgZW5kKQpAQCAt MTM2LDcgKzE3NCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGNvbmZsaWN0aW5nX21lbWJsa3MocGFk ZHJfdCBzdGFydCwgcGFkZHJfdCBlbmQpCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBjdXRvZmZfbm9k ZShpbnQgaSwgcGFkZHJfdCBzdGFydCwgcGFkZHJfdCBlbmQpCiB7Ci0Jc3RydWN0IG5vZGUgKm5k ID0gJm5vZGVzW2ldOworCXN0cnVjdCBub2RlICpuZCA9IGdldF9udW1hX25vZGUoaSk7CisKIAlp ZiAobmQtPnN0YXJ0IDwgc3RhcnQpIHsKIAkJbmQtPnN0YXJ0ID0gc3RhcnQ7CiAJCWlmIChuZC0+ ZW5kIDwgbmQtPnN0YXJ0KQpAQCAtMjc4LDYgKzMxNyw3IEBAIGFjcGlfbnVtYV9tZW1vcnlfYWZm aW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0eSAqbWEpCiAJdW5z aWduZWQgcHhtOwogCW5vZGVpZF90IG5vZGU7CiAJaW50IGk7CisJc3RydWN0IG5vZGUgKm1lbWJs azsKIAogCWlmIChzcmF0X2Rpc2FibGVkKCkpCiAJCXJldHVybjsKQEAgLTI4OCw3ICszMjgsNyBA QCBhY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9t ZW1fYWZmaW5pdHkgKm1hKQogCWlmICghKG1hLT5mbGFncyAmIEFDUElfU1JBVF9NRU1fRU5BQkxF RCkpCiAJCXJldHVybjsKIAotCWlmIChudW1fbm9kZV9tZW1ibGtzID49IE5SX05PREVfTUVNQkxL UykKKwlpZiAoZ2V0X251bV9ub2RlX21lbWJsa3MoKSA+PSBOUl9OT0RFX01FTUJMS1MpCiAJewog CQlkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAogICAgICAgICAgICAgICAgICJUb28gbWFueSBudW1h IGVudHJ5LCB0cnkgYmlnZ2VyIE5SX05PREVfTUVNQkxLUyBcbiIpOwpAQCAtMzEwLDI3ICszNTAs MzEgQEAgYWNwaV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBhY3BpX3Ny YXRfbWVtX2FmZmluaXR5ICptYSkKIAlpID0gY29uZmxpY3RpbmdfbWVtYmxrcyhzdGFydCwgZW5k KTsKIAlpZiAoaSA8IDApCiAJCS8qIGV2ZXJ5dGhpbmcgZmluZSAqLzsKLQllbHNlIGlmIChtZW1i bGtfbm9kZWlkW2ldID09IG5vZGUpIHsKKwllbHNlIGlmIChnZXRfbWVtYmxrX25vZGVpZChpKSA9 PSBub2RlKSB7CiAJCWJvb2wgbWlzbWF0Y2ggPSAhKG1hLT5mbGFncyAmIEFDUElfU1JBVF9NRU1f SE9UX1BMVUdHQUJMRSkgIT0KIAkJICAgICAgICAgICAgICAgICF0ZXN0X2JpdChpLCBtZW1ibGtf aG90cGx1Zyk7CiAKKwkJbWVtYmxrID0gZ2V0X25vZGVfbWVtYmxrX3JhbmdlKGkpOworCiAJCXBy aW50aygiJXNTUkFUOiBQWE0gJXUgKCUiUFJJeDY0Ii0lIlBSSXg2NCIpIG92ZXJsYXBzIHdpdGgg aXRzZWxmICglIlBSSXg2NCItJSJQUkl4NjQiKVxuIiwKIAkJICAgICAgIG1pc21hdGNoID8gS0VS Tl9FUlIgOiBLRVJOX1dBUk5JTkcsIHB4bSwgc3RhcnQsIGVuZCwKLQkJICAgICAgIG5vZGVfbWVt YmxrX3JhbmdlW2ldLnN0YXJ0LCBub2RlX21lbWJsa19yYW5nZVtpXS5lbmQpOworCQkgICAgICAg bWVtYmxrLT5zdGFydCwgbWVtYmxrLT5lbmQpOwogCQlpZiAobWlzbWF0Y2gpIHsKIAkJCWJhZF9z cmF0KCk7CiAJCQlyZXR1cm47CiAJCX0KIAl9IGVsc2UgeworCQltZW1ibGsgPSBnZXRfbm9kZV9t ZW1ibGtfcmFuZ2UoaSk7CisKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAgICAiU1JBVDogUFhN ICV1ICglIlBSSXg2NCItJSJQUkl4NjQiKSBvdmVybGFwcyB3aXRoIFBYTSAldSAoJSJQUkl4NjQi LSUiUFJJeDY0IilcbiIsCi0JCSAgICAgICBweG0sIHN0YXJ0LCBlbmQsIG5vZGVfdG9fcHhtKG1l bWJsa19ub2RlaWRbaV0pLAotCQkgICAgICAgbm9kZV9tZW1ibGtfcmFuZ2VbaV0uc3RhcnQsIG5v ZGVfbWVtYmxrX3JhbmdlW2ldLmVuZCk7CisJCSAgICAgICBweG0sIHN0YXJ0LCBlbmQsIG5vZGVf dG9fcHhtKGdldF9tZW1ibGtfbm9kZWlkKGkpKSwKKwkJICAgICAgIG1lbWJsay0+c3RhcnQsIG1l bWJsay0+ZW5kKTsKIAkJYmFkX3NyYXQoKTsKIAkJcmV0dXJuOwogCX0KIAlpZiAoIShtYS0+Zmxh Z3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpKSB7Ci0JCXN0cnVjdCBub2RlICpuZCA9 ICZub2Rlc1tub2RlXTsKKwkJc3RydWN0IG5vZGUgKm5kID0gZ2V0X251bWFfbm9kZShub2RlKTsK IAogCQlpZiAoIW5vZGVfdGVzdF9hbmRfc2V0KG5vZGUsIG1lbW9yeV9ub2Rlc19wYXJzZWQpKSB7 CiAJCQluZC0+c3RhcnQgPSBzdGFydDsKQEAgLTM0NiwxNSArMzkwLDE3IEBAIGFjcGlfbnVtYV9t ZW1vcnlfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0eSAq bWEpCiAJICAgICAgIG5vZGUsIHB4bSwgc3RhcnQsIGVuZCwKIAkgICAgICAgbWEtPmZsYWdzICYg QUNQSV9TUkFUX01FTV9IT1RfUExVR0dBQkxFID8gIiAoaG90cGx1ZykiIDogIiIpOwogCi0Jbm9k ZV9tZW1ibGtfcmFuZ2VbbnVtX25vZGVfbWVtYmxrc10uc3RhcnQgPSBzdGFydDsKLQlub2RlX21l bWJsa19yYW5nZVtudW1fbm9kZV9tZW1ibGtzXS5lbmQgPSBlbmQ7Ci0JbWVtYmxrX25vZGVpZFtu dW1fbm9kZV9tZW1ibGtzXSA9IG5vZGU7CisJaWYgKG51bWFfYWRkX21lbWJsayhub2RlLCBzdGFy dCwgbWEtPmxlbmd0aCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJTUkFUOiBub2RlLWlkICV1IG91 dCBvZiByYW5nZVxuIiwgbm9kZSk7CisJCWJhZF9zcmF0KCk7CisJCXJldHVybjsKKwl9CisKIAlp ZiAobWEtPmZsYWdzICYgQUNQSV9TUkFUX01FTV9IT1RfUExVR0dBQkxFKSB7Ci0JCV9fc2V0X2Jp dChudW1fbm9kZV9tZW1ibGtzLCBtZW1ibGtfaG90cGx1Zyk7CisJCV9fc2V0X2JpdChnZXRfbnVt X25vZGVfbWVtYmxrcygpLCBtZW1ibGtfaG90cGx1Zyk7CiAJCWlmIChlbmQgPiBtZW1faG90cGx1 ZykKIAkJCW1lbV9ob3RwbHVnID0gZW5kOwogCX0KLQludW1fbm9kZV9tZW1ibGtzKys7CiB9CiAK IC8qIFNhbml0eSBjaGVjayB0byBjYXRjaCBtb3JlIGJhZCBTUkFUcyAodGhleSBhcmUgYW1hemlu Z2x5IGNvbW1vbikuCkBAIC0zNzcsMTcgKzQyMywyMSBAQCBzdGF0aWMgaW50IF9faW5pdCBub2Rl c19jb3Zlcl9tZW1vcnkodm9pZCkKIAkJZG8gewogCQkJZm91bmQgPSAwOwogCQkJZm9yX2VhY2hf bm9kZV9tYXNrKGosIG1lbW9yeV9ub2Rlc19wYXJzZWQpCi0JCQkJaWYgKHN0YXJ0IDwgbm9kZXNb al0uZW5kCi0JCQkJICAgICYmIGVuZCA+IG5vZGVzW2pdLnN0YXJ0KSB7Ci0JCQkJCWlmIChzdGFy dCA+PSBub2Rlc1tqXS5zdGFydCkgewotCQkJCQkJc3RhcnQgPSBub2Rlc1tqXS5lbmQ7CisJCQl7 CisJCSAgICAgICAgICAgICAgICBzdHJ1Y3Qgbm9kZSAqbmQgPSBnZXRfbnVtYV9ub2RlKGopOwor CisJCQkJaWYgKHN0YXJ0IDwgbmQtPmVuZAorCQkJCSAgICAmJiBlbmQgPiBuZC0+c3RhcnQpIHsK KwkJCQkJaWYgKHN0YXJ0ID49IG5kLT5zdGFydCkgeworCQkJCQkJc3RhcnQgPSBuZC0+ZW5kOwog CQkJCQkJZm91bmQgPSAxOwogCQkJCQl9Ci0JCQkJCWlmIChlbmQgPD0gbm9kZXNbal0uZW5kKSB7 Ci0JCQkJCQllbmQgPSBub2Rlc1tqXS5zdGFydDsKKwkJCQkJaWYgKGVuZCA8PSBuZC0+ZW5kKSB7 CisJCQkJCQllbmQgPSBuZC0+c3RhcnQ7CiAJCQkJCQlmb3VuZCA9IDE7CiAJCQkJCX0KIAkJCQl9 CisJCQl9CiAJCX0gd2hpbGUgKGZvdW5kICYmIHN0YXJ0IDwgZW5kKTsKIAogCQlpZiAoc3RhcnQg PCBlbmQpIHsKQEAgLTQ1Nyw2ICs1MDcsOCBAQCBpbnQgX19pbml0IGFjcGlfc2Nhbl9ub2Rlcyh1 aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kKQogewogCWludCBpOwogCW5vZGVtYXNrX3QgYWxs X25vZGVzX3BhcnNlZDsKKwlzdHJ1Y3Qgbm9kZSAqbWVtYmxrczsKKwlub2RlaWRfdCAqbm9kZWlk czsKIAogCS8qIEZpcnN0IGNsZWFuIHVwIHRoZSBub2RlIGxpc3QgKi8KIAlmb3IgKGkgPSAwOyBp IDwgTUFYX05VTU5PREVTOyBpKyspCkBAIC00NzAsNiArNTIyLDggQEAgaW50IF9faW5pdCBhY3Bp X3NjYW5fbm9kZXModWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCkKIAkJcmV0dXJuIC0xOwog CX0KIAorCW1lbWJsa3MgPSBnZXRfbm9kZV9tZW1ibGtfcmFuZ2UoMCk7CisJbm9kZWlkcyA9IGdl dF9tZW1ibGtfbm9kZWlkX21hcCgpOwogCWlmIChjb21wdXRlX21lbW5vZGVfc2hpZnQobm9kZV9t ZW1ibGtfcmFuZ2UsIG51bV9ub2RlX21lbWJsa3MsCiAJCQkJICBtZW1ibGtfbm9kZWlkLCAmbWVt bm9kZV9zaGlmdCkpIHsKIAkJbWVtbm9kZV9zaGlmdCA9IDA7CkBAIC00ODQsMTIgKzUzOCwxNCBA QCBpbnQgX19pbml0IGFjcGlfc2Nhbl9ub2Rlcyh1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5k KQogCS8qIEZpbmFsbHkgcmVnaXN0ZXIgbm9kZXMgKi8KIAlmb3JfZWFjaF9ub2RlX21hc2soaSwg YWxsX25vZGVzX3BhcnNlZCkKIAl7Ci0JCXVpbnQ2NF90IHNpemUgPSBub2Rlc1tpXS5lbmQgLSBu b2Rlc1tpXS5zdGFydDsKKwkJc3RydWN0IG5vZGUgKm5kID0gZ2V0X251bWFfbm9kZShpKTsKKwkJ dWludDY0X3Qgc2l6ZSA9IG5kLT5lbmQgLSBuZC0+c3RhcnQ7CisKIAkJaWYgKCBzaXplID09IDAg KQogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiU1JBVDogTm9kZSAldSBoYXMgbm8gbWVtb3J5LiAi CiAJCQkgICAgICAgIkJJT1MgQnVnIG9yIG1pcy1jb25maWd1cmVkIGhhcmR3YXJlP1xuIiwgaSk7 CiAKLQkJc2V0dXBfbm9kZV9ib290bWVtKGksIG5vZGVzW2ldLnN0YXJ0LCBub2Rlc1tpXS5lbmQp OworCQlzZXR1cF9ub2RlX2Jvb3RtZW0oaSwgbmQtPnN0YXJ0LCBuZC0+ZW5kKTsKIAl9CiAJZm9y IChpID0gMDsgaSA8IG5yX2NwdV9pZHM7IGkrKykgewogCQlpZiAoY3B1X3RvX25vZGVbaV0gPT0g TlVNQV9OT19OT0RFKQotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK