On Mon, Jul 9, 2018 at 5:29 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, 9 Jul 2018 13:53:09 -0400 Pavel Tatashin <pasha.tatashin@xxxxxxxxxx> wrote: > > > In sparse_init() we allocate two large buffers to temporary hold usemap and > > memmap for the whole machine. However, we can avoid doing that if we > > changed sparse_init() to operated on per-node bases instead of doing it on > > the whole machine beforehand. > > > > As shown by Baoquan > > http://lkml.kernel.org/r/20180628062857.29658-1-bhe@xxxxxxxxxx > > > > The buffers are large enough to cause machine stop to boot on small memory > > systems. > > > > These patches should be applied on top of Baoquan's work, as > > CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER is removed in that work. > > > > For the ease of review, I split this work so the first patch only adds new > > interfaces, the second patch enables them, and removes the old ones. > > This clashes pretty significantly with patches from Baoquan and Oscar: > > mm-sparse-make-sparse_init_one_section-void-and-remove-check.patch > mm-sparse-make-sparse_init_one_section-void-and-remove-check-fix.patch > mm-sparse-make-sparse_init_one_section-void-and-remove-check-fix-2.patch > mm-sparse-add-a-static-variable-nr_present_sections.patch > mm-sparsemem-defer-the-ms-section_mem_map-clearing.patch > mm-sparse-add-a-new-parameter-data_unit_size-for-alloc_usemap_and_memmap.patch > > Is there duplication of intent here? Any thoughts on the > prioritization of these efforts? Hi Andrew, In the cover letter I wrote that these should be applied on top of Baoquan's patches. His work fixes a bug by making temporary buffers smaller on smaller machines, and also starts the sparse_init cleaning process by getting rid of CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER. My patches remove those buffers entirely. However, if my patches conflict, I should resend based on mm-tree as Baoquan's patches are already in and probably were slightly modified compared to what I have locally, which I took from the mailing list. Pavel