From: Alexander Duyck <alexander.duyck@gmail.com> To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org Cc: pavel.tatashin@microsoft.com, mhocko@suse.com, dave.hansen@intel.com, jglisse@redhat.com, akpm@linux-foundation.org, mingo@kernel.org, kirill.shutemov@linux.intel.com Subject: [PATCH 0/4] Address issues slowing persistent memory initialization Date: Mon, 10 Sep 2018 16:43:35 -0700 [thread overview] Message-ID: <20180910232615.4068.29155.stgit@localhost.localdomain> (raw) This patch set is meant to be a v3 to my earlier patch set "Address issues slowing memory init"[1]. However I have added 2 additional patches to address issues seen in which NVDIMM memory was slow to initialize especially on systems with multiple NUMA nodes. Since v2 of the patch set I have replaced the config option to work around the page init poisoning with a kernel parameter. I also updated one comment based on input from Michal. The third patch in this set is new and is meant to address the need to defer some page initialization to outside of the hot-plug lock. It is loosely based on the original patch set by Dan Williams to perform asynchronous page init for ZONE_DEVICE pages[2]. However, it is based more around the deferred page init model where memory init is deferred to a fixed point, which in this case is to just outside of the hot-plug lock. The fourth patch allows nvdimm init to be more node specific where possible. I basically just copy/pasted the approach used in pci_call_probe to allow for us to get the initialization code on the node as close to the memory as possible. Doing so allows us to save considerably on init time. [1]: https://lkml.org/lkml/2018/9/5/924 [2]: https://lkml.org/lkml/2018/7/16/828 --- Alexander Duyck (4): mm: Provide kernel parameter to allow disabling page init poisoning mm: Create non-atomic version of SetPageReserved for init use mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap nvdimm: Trigger the device probe on a cpu local to the device Documentation/admin-guide/kernel-parameters.txt | 8 ++ drivers/nvdimm/bus.c | 45 ++++++++++ include/linux/mm.h | 2 include/linux/page-flags.h | 9 ++ kernel/memremap.c | 24 ++--- mm/debug.c | 16 +++ mm/hmm.c | 12 ++- mm/memblock.c | 5 - mm/page_alloc.c | 106 ++++++++++++++++++++++- mm/sparse.c | 4 - 10 files changed, 200 insertions(+), 31 deletions(-) -- _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Duyck <alexander.duyck@gmail.com> To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org Cc: pavel.tatashin@microsoft.com, mhocko@suse.com, dave.jiang@intel.com, mingo@kernel.org, dave.hansen@intel.com, jglisse@redhat.com, akpm@linux-foundation.org, logang@deltatee.com, dan.j.williams@intel.com, kirill.shutemov@linux.intel.com Subject: [PATCH 0/4] Address issues slowing persistent memory initialization Date: Mon, 10 Sep 2018 16:43:35 -0700 [thread overview] Message-ID: <20180910232615.4068.29155.stgit@localhost.localdomain> (raw) This patch set is meant to be a v3 to my earlier patch set "Address issues slowing memory init"[1]. However I have added 2 additional patches to address issues seen in which NVDIMM memory was slow to initialize especially on systems with multiple NUMA nodes. Since v2 of the patch set I have replaced the config option to work around the page init poisoning with a kernel parameter. I also updated one comment based on input from Michal. The third patch in this set is new and is meant to address the need to defer some page initialization to outside of the hot-plug lock. It is loosely based on the original patch set by Dan Williams to perform asynchronous page init for ZONE_DEVICE pages[2]. However, it is based more around the deferred page init model where memory init is deferred to a fixed point, which in this case is to just outside of the hot-plug lock. The fourth patch allows nvdimm init to be more node specific where possible. I basically just copy/pasted the approach used in pci_call_probe to allow for us to get the initialization code on the node as close to the memory as possible. Doing so allows us to save considerably on init time. [1]: https://lkml.org/lkml/2018/9/5/924 [2]: https://lkml.org/lkml/2018/7/16/828 --- Alexander Duyck (4): mm: Provide kernel parameter to allow disabling page init poisoning mm: Create non-atomic version of SetPageReserved for init use mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap nvdimm: Trigger the device probe on a cpu local to the device Documentation/admin-guide/kernel-parameters.txt | 8 ++ drivers/nvdimm/bus.c | 45 ++++++++++ include/linux/mm.h | 2 include/linux/page-flags.h | 9 ++ kernel/memremap.c | 24 ++--- mm/debug.c | 16 +++ mm/hmm.c | 12 ++- mm/memblock.c | 5 - mm/page_alloc.c | 106 ++++++++++++++++++++++- mm/sparse.c | 4 - 10 files changed, 200 insertions(+), 31 deletions(-) --
next reply other threads:[~2018-09-10 23:43 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-10 23:43 Alexander Duyck [this message] 2018-09-10 23:43 ` [PATCH 0/4] Address issues slowing persistent memory initialization Alexander Duyck 2018-09-10 23:43 ` [PATCH 1/4] mm: Provide kernel parameter to allow disabling page init poisoning Alexander Duyck 2018-09-10 23:43 ` Alexander Duyck 2018-09-11 0:35 ` Alexander Duyck 2018-09-11 0:35 ` Alexander Duyck 2018-09-11 16:50 ` Dan Williams 2018-09-11 16:50 ` Dan Williams 2018-09-11 20:01 ` Alexander Duyck 2018-09-11 20:01 ` Alexander Duyck 2018-09-11 20:24 ` Dan Williams 2018-09-11 20:24 ` Dan Williams 2018-09-12 13:24 ` Pasha Tatashin 2018-09-12 14:10 ` Michal Hocko 2018-09-12 14:10 ` Michal Hocko 2018-09-12 14:49 ` Alexander Duyck 2018-09-12 14:49 ` Alexander Duyck 2018-09-12 15:23 ` Dave Hansen 2018-09-12 15:23 ` Dave Hansen 2018-09-12 16:36 ` Alexander Duyck 2018-09-12 16:43 ` Dave Hansen 2018-09-12 16:43 ` Dave Hansen 2018-09-10 23:43 ` [PATCH 2/4] mm: Create non-atomic version of SetPageReserved for init use Alexander Duyck 2018-09-10 23:43 ` Alexander Duyck 2018-09-12 13:28 ` Pasha Tatashin 2018-09-10 23:43 ` [PATCH 3/4] mm: Defer ZONE_DEVICE page initialization to the point where we init pgmap Alexander Duyck 2018-09-10 23:43 ` Alexander Duyck 2018-09-11 7:49 ` kbuild test robot 2018-09-11 7:49 ` kbuild test robot 2018-09-11 7:54 ` kbuild test robot 2018-09-11 7:54 ` kbuild test robot 2018-09-11 22:35 ` Dan Williams 2018-09-11 22:35 ` Dan Williams 2018-09-12 0:51 ` Alexander Duyck 2018-09-12 0:51 ` Alexander Duyck 2018-09-12 0:59 ` Dan Williams 2018-09-12 0:59 ` Dan Williams 2018-09-12 13:59 ` Pasha Tatashin 2018-09-12 15:48 ` Alexander Duyck 2018-09-12 15:48 ` Alexander Duyck 2018-09-12 15:54 ` Pasha Tatashin 2018-09-12 16:44 ` Alexander Duyck 2018-09-12 16:44 ` Alexander Duyck 2018-09-12 16:50 ` Dan Williams 2018-09-12 16:50 ` Dan Williams 2018-09-12 17:46 ` Pasha Tatashin 2018-09-12 19:11 ` Dan Williams 2018-09-12 19:11 ` Dan Williams 2018-09-10 23:44 ` [PATCH 4/4] nvdimm: Trigger the device probe on a cpu local to the device Alexander Duyck 2018-09-10 23:44 ` Alexander Duyck 2018-09-11 0:37 ` Alexander Duyck 2018-09-11 0:37 ` Alexander Duyck 2018-09-12 5:48 ` Dan Williams 2018-09-12 5:48 ` Dan Williams 2018-09-12 13:44 ` Pasha Tatashin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180910232615.4068.29155.stgit@localhost.localdomain \ --to=alexander.duyck@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=dave.hansen@intel.com \ --cc=jglisse@redhat.com \ --cc=kirill.shutemov@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-nvdimm@lists.01.org \ --cc=mhocko@suse.com \ --cc=mingo@kernel.org \ --cc=pavel.tatashin@microsoft.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.