From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hildenbrand Date: Fri, 30 Nov 2018 17:59:19 +0000 Subject: [PATCH RFCv2 1/4] mm/memory_hotplug: Introduce memory block types Message-Id: <20181130175922.10425-2-david@redhat.com> List-Id: References: <20181130175922.10425-1-david@redhat.com> In-Reply-To: <20181130175922.10425-1-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="macroman" Content-Transfer-Encoding: base64 To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-acpi@vger.kernel.org, devel@linuxdriverproject.org, xen-devel@lists.xenproject.org, x86@kernel.org, David Hildenbrand , Greg Kroah-Hartman , "Rafael J. Wysocki" , Andrew Morton , Ingo Molnar , Pavel Tatashin , Stephen Rothwell , Andrew Banman , "mike.travis@hpe.com" , Oscar Salvador , Dave Hansen , Michal Hocko , =?UTF-8?q?Michal=20Such=C3=A1nek? TWVtb3J5IG9ubGluaW5nIHNob3VsZCBhbHdheXMgYmUgaGFuZGxlZCBieSB1c2VyIHNwYWNlLCBi ZWNhdXNlIG9ubHkgdXNlcgpzcGFjZSBrbm93cyB3aGljaCB1c2UgY2FzZXMgaXQgd2FudHMgdG8g c2F0aXNmeS4gRS5nLiBtZW1vcnkgbWlnaHQgYmUKb25saW5lZCB0byB0aGUgTU9WQUJMRSB6b25l IGV2ZW4gaWYgaXQgY2FuIG5ldmVyIGJlIHJlbW92ZWQgZnJvbSB0aGUKc3lzdGVtLCBlLmcuIHRv IG1ha2UgdXNhZ2Ugb2YgaHVnZSBwYWdlcyBtb3JlIHJlbGlhYmxlLgoKSG93ZXZlciB0byBpbXBs ZW1lbnQgc3VjaCBydWxlcyAoZXNwZWNpYWxseSBkZWZhdWx0IHJ1bGVzIGluIGRpc3RyaWJ1dGlv bnMpCndlIG5lZWQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtb3J5IHRoYXQgd2FzIGFk ZGVkIGluIHVzZXIgc3BhY2UuCgpFLmcuIG9uIHg4NiB3ZSB3YW50IHRvIG9ubGluZSBtZW1vcnkg cHJvdmlkZWQgYnkgYmFsbG9vbiBkZXZpY2VzIChlLmcuClhFTiwgSHlwZXItVikgZGlmZmVyZW50 bHkgKC0+IHdpbGwgbm90IGJlIHVucGx1Z2dlZCBieSBvZmZsaW5pbmcgdGhlIHdob2xlCmJsb2Nr KSB0aGFuIG9yZGluYXJ5IERJTU1zICgtPiBtaWdodCBldmVudHVhbGx5IGJlIHVucGx1Z2dlZCBi eSBvZmZsaW5pbmcKdGhlIHdob2xlIGJsb2NrKS4gVGhpcyBtaWdodCBhbHNvIGJlY29tZSByZWxl dmF0IGZvciBvdGhlciBhcmNoaXRlY3R1cmVzLgoKQWxzbywgdWRldiBydWxlcyByaWdodCBub3cg Y2hlY2sgaWYgcnVubmluZyBvbiBzMzkweCBhbmQgdHJlYXQgYWxsIGFkZGVkCm1lbW9yeSBibG9j a3MgYXMgc3RhbmRieSBtZW1vcnkgKC0+IGRvbid0IG9ubGluZSBhdXRvbWF0aWNhbGx5KS4gQXMg c29vbiBhcwp3ZSBzdXBwb3J0IG90aGVyIG1lbW9yeSBob3RwbHVnIG1lY2hhbmlzbSAoZS5nLiB2 aXJ0aW8tbWVtKSBjaGVja3Mgd291bGQKaGF2ZSB0byBnZXQgbW9yZSBpbnZvbHZlZCAoZS5nLiBh bHNvIGNoZWNrIGlmIHVuZGVyIEtWTSkgYnV0IGV2ZW50dWFsbHkKYWxzbyB3cm9uZyAoZS5nLiBp ZiBLVk0gZXZlciBzdXBwb3J0cyBzdGFuZGJ5IG1lbW9yeSB3ZSBhcmUgZG9vbWVkKS4KCkkgZGVj aWRlZCB0byBhbGxvdyB0byBzcGVjaWZ5IHRoZSB0eXBlIG9mIG1lbW9yeSB0aGF0IGlzIGdldHRp bmcgYWRkZWQKdG8gdGhlIHN5c3RlbS4gTGV0J3Mgc3RhcnQgd2l0aCB0d28gdHlwZXMsIEJPT1Qg YW5kIFVOU1BFQ0lGSUVEIHRvIGdldCB0aGUKYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgcnVubmluZy4g V2UnbGwgaW50cm9kdWNlIGFuZCB1c2UgZnVydGhlciB0eXBlcyBpbgpmb2xsb3ctdXAgcGF0Y2hl cy4gRm9yIG5vdyB3ZSBjbGFzc2lmeSBhbnkgaG90cGx1Z2dlZCBtZW1vcnkgdGVtcG9yYXJpbHkK YXMgYXMgVU5TUEVDSUZJRUQgKHdoaWNoIHdpbGwgZXZlbnR1YWxseSBiZSBkcm9wcGVkIGxhdGVy IG9uKS4KCkNjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3Jn PgpDYzogIlJhZmFlbCBKLiBXeXNvY2tpIiA8cmFmYWVsQGtlcm5lbC5vcmc+CkNjOiBBbmRyZXcg TW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdv QGtlcm5lbC5vcmc+CkNjOiBQYXZlbCBUYXRhc2hpbiA8cGFzaGEudGF0YXNoaW5Ab3JhY2xlLmNv bT4KQ2M6IFN0ZXBoZW4gUm90aHdlbGwgPHNmckBjYW5iLmF1dWcub3JnLmF1PgpDYzogQW5kcmV3 IEJhbm1hbiA8YW5kcmV3LmJhbm1hbkBocGUuY29tPgpDYzogIm1pa2UudHJhdmlzQGhwZS5jb20i IDxtaWtlLnRyYXZpc0BocGUuY29tPgpDYzogT3NjYXIgU2FsdmFkb3IgPG9zYWx2YWRvckBzdXNl LmNvbT4KQ2M6IERhdmUgSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5jb20+CkNjOiBN aWNoYWwgSG9ja28gPG1ob2Nrb0BrZXJuZWwub3JnPgpDYzogTWljaGFsIFN1Y2jDoW5layA8bXN1 Y2hhbmVrQHN1c2UuZGU+CkNjOiBWaXRhbHkgS3V6bmV0c292IDx2a3V6bmV0c0ByZWRoYXQuY29t PgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBQYXZlbCBU YXRhc2hpbiA8cGF2ZWwudGF0YXNoaW5AbWljcm9zb2Z0LmNvbT4KQ2M6IE1hcnRpbiBTY2h3aWRl ZnNreSA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KQ2M6IEhlaWtvIENhcnN0ZW5zIDxoZWlrby5j YXJzdGVuc0BkZS5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2 aWRAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2Jhc2UvbWVtb3J5LmMgIHwgMzggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvbGludXgvbWVtb3J5LmggfCAy NyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvbWVtb3J5 LmMgYi9kcml2ZXJzL2Jhc2UvbWVtb3J5LmMKaW5kZXggMGMyOTBmODZhYjIwLi4xN2YyOTg1YzA3 YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9tZW1vcnkuYworKysgYi9kcml2ZXJzL2Jhc2Uv bWVtb3J5LmMKQEAgLTM4MSw2ICszODEsMjkgQEAgc3RhdGljIHNzaXplX3Qgc2hvd19waHlzX2Rl dmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIG1l bS0+cGh5c19kZXZpY2UpOwogfQogCitzdGF0aWMgc3NpemVfdCB0eXBlX3Nob3coc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSBjaGFyICpidWYp Cit7CisJc3RydWN0IG1lbW9yeV9ibG9jayAqbWVtID0gdG9fbWVtb3J5X2Jsb2NrKGRldik7CisJ c3NpemVfdCBsZW4gPSAwOworCisJc3dpdGNoIChtZW0tPnR5cGUpIHsKKwljYXNlIE1FTU9SWV9C TE9DS19VTlNQRUNJRklFRDoKKwkJbGVuID0gc3ByaW50ZihidWYsICJ1bnNwZWNpZmllZFxuIik7 CisJCWJyZWFrOworCWNhc2UgTUVNT1JZX0JMT0NLX0JPT1Q6CisJCWxlbiA9IHNwcmludGYoYnVm LCAiYm9vdFxuIik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWxlbiA9IHNwcmludGYoYnVmLCAi RVJST1ItVU5LTk9XTi0lbGRcbiIsCisJCQkJbWVtLT5zdGF0ZSk7CisJCVdBUk5fT04oMSk7CisJ CWJyZWFrOworCX0KKworCXJldHVybiBsZW47Cit9CisKICNpZmRlZiBDT05GSUdfTUVNT1JZX0hP VFJFTU9WRQogc3RhdGljIHZvaWQgcHJpbnRfYWxsb3dlZF96b25lKGNoYXIgKmJ1ZiwgaW50IG5p ZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAJCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsIGlu dCBvbmxpbmVfdHlwZSwKQEAgLTQ0Miw2ICs0NjUsNyBAQCBzdGF0aWMgREVWSUNFX0FUVFIocGh5 c19pbmRleCwgMDQ0NCwgc2hvd19tZW1fc3RhcnRfcGh5c19pbmRleCwgTlVMTCk7CiBzdGF0aWMg REVWSUNFX0FUVFIoc3RhdGUsIDA2NDQsIHNob3dfbWVtX3N0YXRlLCBzdG9yZV9tZW1fc3RhdGUp Owogc3RhdGljIERFVklDRV9BVFRSKHBoeXNfZGV2aWNlLCAwNDQ0LCBzaG93X3BoeXNfZGV2aWNl LCBOVUxMKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihyZW1vdmFibGUsIDA0NDQsIHNob3dfbWVtX3Jl bW92YWJsZSwgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFJfUk8odHlwZSk7CiAKIC8qCiAgKiBC bG9jayBzaXplIGF0dHJpYnV0ZSBzdHVmZgpAQCAtNjIwLDYgKzY0NCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlICptZW1vcnlfbWVtYmxrX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3N0YXRl LmF0dHIsCiAJJmRldl9hdHRyX3BoeXNfZGV2aWNlLmF0dHIsCiAJJmRldl9hdHRyX3JlbW92YWJs ZS5hdHRyLAorCSZkZXZfYXR0cl90eXBlLmF0dHIsCiAjaWZkZWYgQ09ORklHX01FTU9SWV9IT1RS RU1PVkUKIAkmZGV2X2F0dHJfdmFsaWRfem9uZXMuYXR0ciwKICNlbmRpZgpAQCAtNjU3LDEzICs2 ODIsMTcgQEAgaW50IHJlZ2lzdGVyX21lbW9yeShzdHJ1Y3QgbWVtb3J5X2Jsb2NrICptZW1vcnkp CiB9CiAKIHN0YXRpYyBpbnQgaW5pdF9tZW1vcnlfYmxvY2soc3RydWN0IG1lbW9yeV9ibG9jayAq Km1lbW9yeSwKLQkJCSAgICAgc3RydWN0IG1lbV9zZWN0aW9uICpzZWN0aW9uLCB1bnNpZ25lZCBs b25nIHN0YXRlKQorCQkJICAgICBzdHJ1Y3QgbWVtX3NlY3Rpb24gKnNlY3Rpb24sIHVuc2lnbmVk IGxvbmcgc3RhdGUsCisJCQkgICAgIGludCB0eXBlKQogewogCXN0cnVjdCBtZW1vcnlfYmxvY2sg Km1lbTsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbjsKIAlpbnQgc2NuX25yOwogCWludCByZXQg PSAwOwogCisJaWYgKHR5cGUgPSBNRU1PUllfQkxPQ0tfTk9ORSkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKIAltZW0gPSBremFsbG9jKHNpemVvZigqbWVtKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtZW0p CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNjc1LDYgKzcwNCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9t ZW1vcnlfYmxvY2soc3RydWN0IG1lbW9yeV9ibG9jayAqKm1lbW9yeSwKIAltZW0tPnN0YXRlID0g c3RhdGU7CiAJc3RhcnRfcGZuID0gc2VjdGlvbl9ucl90b19wZm4obWVtLT5zdGFydF9zZWN0aW9u X25yKTsKIAltZW0tPnBoeXNfZGV2aWNlID0gYXJjaF9nZXRfbWVtb3J5X3BoeXNfZGV2aWNlKHN0 YXJ0X3Bmbik7CisJbWVtLT50eXBlID0gdHlwZTsKIAogCXJldCA9IHJlZ2lzdGVyX21lbW9yeSht ZW0pOwogCkBAIC02OTksNyArNzI5LDggQEAgc3RhdGljIGludCBhZGRfbWVtb3J5X2Jsb2NrKGlu dCBiYXNlX3NlY3Rpb25fbnIpCiAKIAlpZiAoc2VjdGlvbl9jb3VudCA9IDApCiAJCXJldHVybiAw OwotCXJldCA9IGluaXRfbWVtb3J5X2Jsb2NrKCZtZW0sIF9fbnJfdG9fc2VjdGlvbihzZWN0aW9u X25yKSwgTUVNX09OTElORSk7CisJcmV0ID0gaW5pdF9tZW1vcnlfYmxvY2soJm1lbSwgX19ucl90 b19zZWN0aW9uKHNlY3Rpb25fbnIpLCBNRU1fT05MSU5FLAorCQkJCU1FTU9SWV9CTE9DS19CT09U KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCW1lbS0+c2VjdGlvbl9jb3VudCA9IHNlY3Rp b25fY291bnQ7CkBAIC03MjIsNyArNzUzLDggQEAgaW50IGhvdHBsdWdfbWVtb3J5X3JlZ2lzdGVy KGludCBuaWQsIHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKIAkJbWVtLT5zZWN0aW9uX2Nv dW50Kys7CiAJCXB1dF9kZXZpY2UoJm1lbS0+ZGV2KTsKIAl9IGVsc2UgewotCQlyZXQgPSBpbml0 X21lbW9yeV9ibG9jaygmbWVtLCBzZWN0aW9uLCBNRU1fT0ZGTElORSk7CisJCXJldCA9IGluaXRf bWVtb3J5X2Jsb2NrKCZtZW0sIHNlY3Rpb24sIE1FTV9PRkZMSU5FLAorCQkJCQlNRU1PUllfQkxP Q0tfVU5TUEVDSUZJRUQpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXQ7CiAJCW1lbS0+c2VjdGlv bl9jb3VudCsrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1vcnkuaCBiL2luY2x1ZGUv bGludXgvbWVtb3J5LmgKaW5kZXggZDc1ZWM4OGNhMDlkLi4wNjI2OGU5NmUwZGEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbWVtb3J5LmgKKysrIGIvaW5jbHVkZS9saW51eC9tZW1vcnkuaApA QCAtMzQsMTIgKzM0LDM5IEBAIHN0cnVjdCBtZW1vcnlfYmxvY2sgewogCWludCAoKnBoeXNfY2Fs bGJhY2spKHN0cnVjdCBtZW1vcnlfYmxvY2sgKik7CiAJc3RydWN0IGRldmljZSBkZXY7CiAJaW50 IG5pZDsJCQkvKiBOSUQgZm9yIHRoaXMgbWVtb3J5IGJsb2NrICovCisJaW50IHR5cGU7CQkJLyog dHlwZSBvZiB0aGlzIG1lbW9yeSBibG9jayAqLwogfTsKIAogaW50IGFyY2hfZ2V0X21lbW9yeV9w aHlzX2RldmljZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3Bmbik7CiB1bnNpZ25lZCBsb25nIG1lbW9y eV9ibG9ja19zaXplX2J5dGVzKHZvaWQpOwogaW50IHNldF9tZW1vcnlfYmxvY2tfc2l6ZV9vcmRl cih1bnNpZ25lZCBpbnQgb3JkZXIpOwogCisvKgorICogTWVtb3J5IGJsb2NrIHR5cGVzIGFsbG93 IHVzZXIgc3BhY2UgdG8gZm9ybXVsYXRlIHJ1bGVzIGlmIGFuZCBob3cgdG8KKyAqIG9ubGluZSBt ZW1vcnkgYmxvY2tzLiBUaGUgdHlwZXMgYXJlIGV4cG9zZWQgdG8gdXNlciBzcGFjZSBhcyB0ZXh0 CisgKiBzdHJpbmdzIGluIHN5c2ZzLgorICoKKyAqIE1FTU9SWV9CTE9DS19OT05FOgorICogIE5v IG1lbW9yeSBibG9jayBpcyB0byBiZSBjcmVhdGVkIChlLmcuIGRldmljZSBtZW1vcnkpLiBOb3Qg ZXhwb3NlZCB0bworICogIHVzZXIgc3BhY2UuCisgKgorICogTUVNT1JZX0JMT0NLX1VOU1BFQ0lG SUVEOgorICogIFRoZSB0eXBlIG9mIG1lbW9yeSBibG9jayB3YXMgbm90IGZ1cnRoZXIgc3BlY2lm aWVkIHdoZW4gYWRkaW5nIHRoZQorICogIG1lbW9yeSBibG9jay4KKyAqCisgKiBNRU1PUllfQkxP Q0tfQk9PVDoKKyAqICBUaGlzIG1lbW9yeSBibG9jayB3YXMgYWRkZWQgZHVyaW5nIGJvb3QgYnkg dGhlIGJhc2ljIHN5c3RlbS4gTm8KKyAqICBzcGVjaWZpYyBkZXZpY2UgZHJpdmVyIHRha2VzIGNh cmUgb2YgdGhpcyBtZW1vcnkgYmxvY2suIFRoaXMgbWVtb3J5CisgKiAgYmxvY2sgdHlwZSBpcyBv bmxpbmVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIGtlcm5lbCBkdXJpbmcgYm9vdCBhbmQgbWlnaHQK KyAqICBsYXRlciBiZSBtYW5hZ2VkIGJ5IGEgZGlmZmVyZW50IGRldmljZSBkcml2ZXIsIGluIHdo aWNoIGNhc2UgdGhlIHR5cGUKKyAqICBtaWdodCBjaGFuZ2UuCisgKi8KK2VudW0geworCU1FTU9S WV9CTE9DS19OT05FID0gMCwKKwlNRU1PUllfQkxPQ0tfVU5TUEVDSUZJRUQsCisJTUVNT1JZX0JM T0NLX0JPT1QsCit9OworCiAvKiBUaGVzZSBzdGF0ZXMgYXJlIGV4cG9zZWQgdG8gdXNlcnNwYWNl IGFzIHRleHQgc3RyaW5ncyBpbiBzeXNmcyAqLwogI2RlZmluZQlNRU1fT05MSU5FCQkoMTw8MCkg LyogZXhwb3NlZCB0byB1c2Vyc3BhY2UgKi8KICNkZWZpbmUJTUVNX0dPSU5HX09GRkxJTkUJKDE8 PDEpIC8qIGV4cG9zZWQgdG8gdXNlcnNwYWNlICovCi0tIAoyLjE3LjIK