From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v3 05/24] x86: NUMA: Add accessors for nodes[] and node_memblk_range[] structs Date: Tue, 18 Jul 2017 17:11:27 +0530 Message-ID: <1500378106-2620-6-git-send-email-vijay.kilari@gmail.com> References: <1500378106-2620-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: <1500378106-2620-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: kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@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 c29ycyBmb3Igbm9kZXNbXSBhbmQgb3RoZXIgc3RhdGljIHZhcmlhYmxlcyBhbmQKdXNlIHRob3Nl IGFjY2Vzc29ycy4gVGhlc2UgdmFyaWFibGVzIGFyZSBsYXRlciBhY2Nlc3NlZApvdXRzaWRlIHRo ZSBmaWxlIHdoZW4gdGhlIGNvZGUgbWFkZSBnZW5lcmljIGluIGxhdGVyCnBhdGNoZXMuIEhvd2V2 ZXIgdGhlIGNvZGluZyBzdHlsZSBpcyBub3QgY2hhbmdlZC4KClNpZ25lZC1vZmYtYnk6IFZpamF5 YSBLdW1hciBLIDxWaWpheWEuS3VtYXJAY2F2aXVtLmNvbT4KLS0tCnYzOiAtIENoYW5nZWQgYWNj ZXNzb3JzIHBhcmFtZXRlciBmcm9tIGludCB0byB1bnNpZ25lZCBpbnQKICAgIC0gVXBkYXRlZCBj b21taXQgbWVzc2FnZQogICAgLSBGaXhlZCB3cm9uZyBpbmRlbnRhdGlvbgotLS0KIHhlbi9hcmNo L3g4Ni9zcmF0LmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDI1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcmF0LmMgYi94ZW4vYXJjaC94ODYv c3JhdC5jCmluZGV4IDUzNWM5ZDcuLjQyY2NhNWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9z cmF0LmMKKysrIGIveGVuL2FyY2gveDg2L3NyYXQuYwpAQCAtNDEsNiArNDEsNDQgQEAgc3RhdGlj IHN0cnVjdCBub2RlIG5vZGVfbWVtYmxrX3JhbmdlW05SX05PREVfTUVNQkxLU107CiBzdGF0aWMg bm9kZWlkX3QgbWVtYmxrX25vZGVpZFtOUl9OT0RFX01FTUJMS1NdOwogc3RhdGljIF9faW5pdGRh dGEgREVDTEFSRV9CSVRNQVAobWVtYmxrX2hvdHBsdWcsIE5SX05PREVfTUVNQkxLUyk7CiAKK3N0 YXRpYyBzdHJ1Y3Qgbm9kZSAqZ2V0X251bWFfbm9kZSh1bnNpZ25lZCBpbnQgaWQpCit7CisJcmV0 dXJuICZub2Rlc1tpZF07Cit9CisKK3N0YXRpYyBub2RlaWRfdCBnZXRfbWVtYmxrX25vZGVpZCh1 bnNpZ25lZCBpbnQgaWQpCit7CisJcmV0dXJuIG1lbWJsa19ub2RlaWRbaWRdOworfQorCitzdGF0 aWMgbm9kZWlkX3QgKmdldF9tZW1ibGtfbm9kZWlkX21hcCh2b2lkKQoreworCXJldHVybiAmbWVt YmxrX25vZGVpZFswXTsKK30KKworc3RhdGljIHN0cnVjdCBub2RlICpnZXRfbm9kZV9tZW1ibGtf cmFuZ2UodW5zaWduZWQgaW50IG1lbWJsaykKK3sKKwlyZXR1cm4gJm5vZGVfbWVtYmxrX3Jhbmdl W21lbWJsa107Cit9CisKK3N0YXRpYyBpbnQgZ2V0X251bV9ub2RlX21lbWJsa3Modm9pZCkKK3sK KwlyZXR1cm4gbnVtX25vZGVfbWVtYmxrczsKK30KKworc3RhdGljIGludCBfX2luaXQgbnVtYV9h ZGRfbWVtYmxrKG5vZGVpZF90IG5vZGVpZCwgcGFkZHJfdCBzdGFydCwgdWludDY0X3Qgc2l6ZSkK K3sKKwlpZiAobm9kZWlkID49IE5SX05PREVfTUVNQkxLUykKKwkJcmV0dXJuIC1FSU5WQUw7CisK Kwlub2RlX21lbWJsa19yYW5nZVtudW1fbm9kZV9tZW1ibGtzXS5zdGFydCA9IHN0YXJ0OworCW5v ZGVfbWVtYmxrX3JhbmdlW251bV9ub2RlX21lbWJsa3NdLmVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwlt ZW1ibGtfbm9kZWlkW251bV9ub2RlX21lbWJsa3NdID0gbm9kZWlkOworCW51bV9ub2RlX21lbWJs a3MrKzsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgbm9kZV9mb3VuZCh1 bnNpZ25lZCBpbnQgaWR4LCB1bnNpZ25lZCBpbnQgcHhtKQogewogCXJldHVybiAoKHB4bTJub2Rl W2lkeF0ucHhtID09IHB4bSkgJiYKQEAgLTEwNywxMSArMTQ1LDExIEBAIGludCB2YWxpZF9udW1h X3JhbmdlKHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5kLCBub2RlaWRfdCBub2RlKQogewogCWlu dCBpOwogCi0JZm9yIChpID0gMDsgaSA8IG51bV9ub2RlX21lbWJsa3M7IGkrKykgewotCQlzdHJ1 Y3Qgbm9kZSAqbmQgPSAmbm9kZV9tZW1ibGtfcmFuZ2VbaV07CisJZm9yIChpID0gMDsgaSA8IGdl dF9udW1fbm9kZV9tZW1ibGtzKCk7IGkrKykgeworCQlzdHJ1Y3Qgbm9kZSAqbmQgPSBnZXRfbm9k ZV9tZW1ibGtfcmFuZ2UoaSk7CiAKIAkJaWYgKG5kLT5zdGFydCA8PSBzdGFydCAmJiBuZC0+ZW5k ID4gZW5kICYmCi0JCQltZW1ibGtfbm9kZWlkW2ldID09IG5vZGUgKQorCQkJZ2V0X21lbWJsa19u b2RlaWQoaSkgPT0gbm9kZSkKIAkJCXJldHVybiAxOwogCX0KIApAQCAtMTIyLDggKzE2MCw4IEBA IHN0YXRpYyBpbnQgX19pbml0IGNvbmZsaWN0aW5nX21lbWJsa3MocGFkZHJfdCBzdGFydCwgcGFk ZHJfdCBlbmQpCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX25vZGVfbWVtYmxr czsgaSsrKSB7Ci0JCXN0cnVjdCBub2RlICpuZCA9ICZub2RlX21lbWJsa19yYW5nZVtpXTsKKwlm b3IgKGkgPSAwOyBpIDwgZ2V0X251bV9ub2RlX21lbWJsa3MoKTsgaSsrKSB7CisJCXN0cnVjdCBu b2RlICpuZCA9IGdldF9ub2RlX21lbWJsa19yYW5nZShpKTsKIAkJaWYgKG5kLT5zdGFydCA9PSBu ZC0+ZW5kKQogCQkJY29udGludWU7CiAJCWlmIChuZC0+ZW5kID4gc3RhcnQgJiYgbmQtPnN0YXJ0 IDwgZW5kKQpAQCAtMTM2LDcgKzE3NCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGNvbmZsaWN0aW5n X21lbWJsa3MocGFkZHJfdCBzdGFydCwgcGFkZHJfdCBlbmQpCiAKIHN0YXRpYyB2b2lkIF9faW5p dCBjdXRvZmZfbm9kZShub2RlaWRfdCBpLCBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IGVuZCkKIHsK LQlzdHJ1Y3Qgbm9kZSAqbmQgPSAmbm9kZXNbaV07CisJc3RydWN0IG5vZGUgKm5kID0gZ2V0X251 bWFfbm9kZShpKTsKKwogCWlmIChuZC0+c3RhcnQgPCBzdGFydCkgewogCQluZC0+c3RhcnQgPSBz dGFydDsKIAkJaWYgKG5kLT5lbmQgPCBuZC0+c3RhcnQpCkBAIC0yNzgsNiArMzE3LDcgQEAgYWNw aV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBhY3BpX3NyYXRfbWVtX2Fm ZmluaXR5ICptYSkKIAl1bnNpZ25lZCBpbnQgcHhtOwogCW5vZGVpZF90IG5vZGU7CiAJaW50IGk7 CisJc3RydWN0IG5vZGUgKm1lbWJsazsKIAogCWlmIChzcmF0X2Rpc2FibGVkKCkpCiAJCXJldHVy bjsKQEAgLTI4OCw3ICszMjgsNyBAQCBhY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29u c3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1hKQogCWlmICghKG1hLT5mbGFncyAm IEFDUElfU1JBVF9NRU1fRU5BQkxFRCkpCiAJCXJldHVybjsKIAotCWlmIChudW1fbm9kZV9tZW1i bGtzID49IE5SX05PREVfTUVNQkxLUykKKwlpZiAoZ2V0X251bV9ub2RlX21lbWJsa3MoKSA+PSBO Ul9OT0RFX01FTUJMS1MpCiAJewogCQlkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAogICAgICAgICAg ICAgICAgICJUb28gbWFueSBudW1hIGVudHJ5LCB0cnkgYmlnZ2VyIE5SX05PREVfTUVNQkxLUyBc biIpOwpAQCAtMzEwLDI3ICszNTAsMzEgQEAgYWNwaV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0 KGNvbnN0IHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICptYSkKIAlpID0gY29uZmxpY3Rp bmdfbWVtYmxrcyhzdGFydCwgZW5kKTsKIAlpZiAoaSA8IDApCiAJCS8qIGV2ZXJ5dGhpbmcgZmlu ZSAqLzsKLQllbHNlIGlmIChtZW1ibGtfbm9kZWlkW2ldID09IG5vZGUpIHsKKwllbHNlIGlmIChn ZXRfbWVtYmxrX25vZGVpZChpKSA9PSBub2RlKSB7CiAJCWJvb2wgbWlzbWF0Y2ggPSAhKG1hLT5m bGFncyAmIEFDUElfU1JBVF9NRU1fSE9UX1BMVUdHQUJMRSkgIT0KIAkJICAgICAgICAgICAgICAg ICF0ZXN0X2JpdChpLCBtZW1ibGtfaG90cGx1Zyk7CiAKKwkJbWVtYmxrID0gZ2V0X25vZGVfbWVt YmxrX3JhbmdlKGkpOworCiAJCXByaW50aygiJXNTUkFUOiBQWE0gJXUgKCUiUFJJeDY0Ii0lIlBS SXg2NCIpIG92ZXJsYXBzIHdpdGggaXRzZWxmICglIlBSSXg2NCItJSJQUkl4NjQiKVxuIiwKIAkJ ICAgICAgIG1pc21hdGNoID8gS0VSTl9FUlIgOiBLRVJOX1dBUk5JTkcsIHB4bSwgc3RhcnQsIGVu ZCwKLQkJICAgICAgIG5vZGVfbWVtYmxrX3JhbmdlW2ldLnN0YXJ0LCBub2RlX21lbWJsa19yYW5n ZVtpXS5lbmQpOworCQkgICAgICAgbWVtYmxrLT5zdGFydCwgbWVtYmxrLT5lbmQpOwogCQlpZiAo bWlzbWF0Y2gpIHsKIAkJCWJhZF9zcmF0KCk7CiAJCQlyZXR1cm47CiAJCX0KIAl9IGVsc2Ugewor CQltZW1ibGsgPSBnZXRfbm9kZV9tZW1ibGtfcmFuZ2UoaSk7CisKIAkJcHJpbnRrKEtFUk5fRVJS CiAJCSAgICAgICAiU1JBVDogUFhNICV1ICglIlBSSXg2NCItJSJQUkl4NjQiKSBvdmVybGFwcyB3 aXRoIFBYTSAldSAoJSJQUkl4NjQiLSUiUFJJeDY0IilcbiIsCi0JCSAgICAgICBweG0sIHN0YXJ0 LCBlbmQsIG5vZGVfdG9fcHhtKG1lbWJsa19ub2RlaWRbaV0pLAotCQkgICAgICAgbm9kZV9tZW1i bGtfcmFuZ2VbaV0uc3RhcnQsIG5vZGVfbWVtYmxrX3JhbmdlW2ldLmVuZCk7CisJCSAgICAgICBw eG0sIHN0YXJ0LCBlbmQsIG5vZGVfdG9fcHhtKGdldF9tZW1ibGtfbm9kZWlkKGkpKSwKKwkJICAg ICAgIG1lbWJsay0+c3RhcnQsIG1lbWJsay0+ZW5kKTsKIAkJYmFkX3NyYXQoKTsKIAkJcmV0dXJu OwogCX0KIAlpZiAoIShtYS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpKSB7 Ci0JCXN0cnVjdCBub2RlICpuZCA9ICZub2Rlc1tub2RlXTsKKwkJc3RydWN0IG5vZGUgKm5kID0g Z2V0X251bWFfbm9kZShub2RlKTsKIAogCQlpZiAoIW5vZGVfdGVzdF9hbmRfc2V0KG5vZGUsIG1l bW9yeV9ub2Rlc19wYXJzZWQpKSB7CiAJCQluZC0+c3RhcnQgPSBzdGFydDsKQEAgLTM0NiwxNSAr MzkwLDE3IEBAIGFjcGlfbnVtYV9tZW1vcnlfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNw aV9zcmF0X21lbV9hZmZpbml0eSAqbWEpCiAJICAgICAgIG5vZGUsIHB4bSwgc3RhcnQsIGVuZCwK IAkgICAgICAgbWEtPmZsYWdzICYgQUNQSV9TUkFUX01FTV9IT1RfUExVR0dBQkxFID8gIiAoaG90 cGx1ZykiIDogIiIpOwogCi0Jbm9kZV9tZW1ibGtfcmFuZ2VbbnVtX25vZGVfbWVtYmxrc10uc3Rh cnQgPSBzdGFydDsKLQlub2RlX21lbWJsa19yYW5nZVtudW1fbm9kZV9tZW1ibGtzXS5lbmQgPSBl bmQ7Ci0JbWVtYmxrX25vZGVpZFtudW1fbm9kZV9tZW1ibGtzXSA9IG5vZGU7CisJaWYgKG51bWFf YWRkX21lbWJsayhub2RlLCBzdGFydCwgbWEtPmxlbmd0aCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJS ICJTUkFUOiBub2RlLWlkICV1IG91dCBvZiByYW5nZVxuIiwgbm9kZSk7CisJCWJhZF9zcmF0KCk7 CisJCXJldHVybjsKKwl9CisKIAlpZiAobWEtPmZsYWdzICYgQUNQSV9TUkFUX01FTV9IT1RfUExV R0dBQkxFKSB7Ci0JCV9fc2V0X2JpdChudW1fbm9kZV9tZW1ibGtzLCBtZW1ibGtfaG90cGx1Zyk7 CisJCV9fc2V0X2JpdChnZXRfbnVtX25vZGVfbWVtYmxrcygpLCBtZW1ibGtfaG90cGx1Zyk7CiAJ CWlmIChlbmQgPiBtZW1faG90cGx1ZykKIAkJCW1lbV9ob3RwbHVnID0gZW5kOwogCX0KLQludW1f bm9kZV9tZW1ibGtzKys7CiB9CiAKIC8qIFNhbml0eSBjaGVjayB0byBjYXRjaCBtb3JlIGJhZCBT UkFUcyAodGhleSBhcmUgYW1hemluZ2x5IGNvbW1vbikuCkBAIC0zNzcsMTcgKzQyMywyMSBAQCBz dGF0aWMgaW50IF9faW5pdCBub2Rlc19jb3Zlcl9tZW1vcnkodm9pZCkKIAkJZG8gewogCQkJZm91 bmQgPSAwOwogCQkJZm9yX2VhY2hfbm9kZV9tYXNrKGosIG1lbW9yeV9ub2Rlc19wYXJzZWQpCi0J CQkJaWYgKHN0YXJ0IDwgbm9kZXNbal0uZW5kCi0JCQkJICAgICYmIGVuZCA+IG5vZGVzW2pdLnN0 YXJ0KSB7Ci0JCQkJCWlmIChzdGFydCA+PSBub2Rlc1tqXS5zdGFydCkgewotCQkJCQkJc3RhcnQg PSBub2Rlc1tqXS5lbmQ7CisJCQl7CisJCSAgICAgICAgICAgICAgICBzdHJ1Y3Qgbm9kZSAqbmQg PSBnZXRfbnVtYV9ub2RlKGopOworCisJCQkJaWYgKHN0YXJ0IDwgbmQtPmVuZAorCQkJCSAgICAm JiBlbmQgPiBuZC0+c3RhcnQpIHsKKwkJCQkJaWYgKHN0YXJ0ID49IG5kLT5zdGFydCkgeworCQkJ CQkJc3RhcnQgPSBuZC0+ZW5kOwogCQkJCQkJZm91bmQgPSAxOwogCQkJCQl9Ci0JCQkJCWlmIChl bmQgPD0gbm9kZXNbal0uZW5kKSB7Ci0JCQkJCQllbmQgPSBub2Rlc1tqXS5zdGFydDsKKwkJCQkJ aWYgKGVuZCA8PSBuZC0+ZW5kKSB7CisJCQkJCQllbmQgPSBuZC0+c3RhcnQ7CiAJCQkJCQlmb3Vu ZCA9IDE7CiAJCQkJCX0KIAkJCQl9CisJCQl9CiAJCX0gd2hpbGUgKGZvdW5kICYmIHN0YXJ0IDwg ZW5kKTsKIAogCQlpZiAoc3RhcnQgPCBlbmQpIHsKQEAgLTQ1Nyw2ICs1MDcsOCBAQCBpbnQgX19p bml0IGFjcGlfc2Nhbl9ub2RlcyhwYWRkcl90IHN0YXJ0LCBwYWRkcl90IGVuZCkKIHsKIAl1bnNp Z25lZCBpbnQgaTsKIAlub2RlbWFza190IGFsbF9ub2Rlc19wYXJzZWQ7CisJc3RydWN0IG5vZGUg Km1lbWJsa3M7CisJbm9kZWlkX3QgKm5vZGVpZHM7CiAKIAkvKiBGaXJzdCBjbGVhbiB1cCB0aGUg bm9kZSBsaXN0ICovCiAJZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKQpAQCAtNDcw LDYgKzUyMiw4IEBAIGludCBfX2luaXQgYWNwaV9zY2FuX25vZGVzKHBhZGRyX3Qgc3RhcnQsIHBh ZGRyX3QgZW5kKQogCQlyZXR1cm4gLTE7CiAJfQogCisJbWVtYmxrcyA9IGdldF9ub2RlX21lbWJs a19yYW5nZSgwKTsKKwlub2RlaWRzID0gZ2V0X21lbWJsa19ub2RlaWRfbWFwKCk7CiAJaWYgKGNv bXB1dGVfbWVtbm9kZV9zaGlmdChub2RlX21lbWJsa19yYW5nZSwgbnVtX25vZGVfbWVtYmxrcywK IAkJCQkgIG1lbWJsa19ub2RlaWQpKSB7CiAJCW1lbW5vZGVfc2hpZnQgPSAwOwpAQCAtNDg0LDEy ICs1MzgsMTQgQEAgaW50IF9faW5pdCBhY3BpX3NjYW5fbm9kZXMocGFkZHJfdCBzdGFydCwgcGFk ZHJfdCBlbmQpCiAJLyogRmluYWxseSByZWdpc3RlciBub2RlcyAqLwogCWZvcl9lYWNoX25vZGVf bWFzayhpLCBhbGxfbm9kZXNfcGFyc2VkKQogCXsKLQkJdWludDY0X3Qgc2l6ZSA9IG5vZGVzW2ld LmVuZCAtIG5vZGVzW2ldLnN0YXJ0OworCQlzdHJ1Y3Qgbm9kZSAqbmQgPSBnZXRfbnVtYV9ub2Rl KGkpOworCQl1aW50NjRfdCBzaXplID0gbmQtPmVuZCAtIG5kLT5zdGFydDsKKwogCQlpZiAoIHNp emUgPT0gMCApCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJTUkFUOiBOb2RlICV1IGhhcyBubyBt ZW1vcnkuICIKIAkJCSAgICAgICAiQklPUyBCdWcgb3IgbWlzLWNvbmZpZ3VyZWQgaGFyZHdhcmU/ XG4iLCBpKTsKIAotCQlzZXR1cF9ub2RlX2Jvb3RtZW0oaSwgbm9kZXNbaV0uc3RhcnQsIG5vZGVz W2ldLmVuZCk7CisJCXNldHVwX25vZGVfYm9vdG1lbShpLCBuZC0+c3RhcnQsIG5kLT5lbmQpOwog CX0KIAlmb3IgKGkgPSAwOyBpIDwgbnJfY3B1X2lkczsgaSsrKSB7CiAJCWlmIChjcHVfdG9fbm9k ZVtpXSA9PSBOVU1BX05PX05PREUpCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=