All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for 4.19-stable 00/25] mm/memory_hotplug: backport of pending stable fixes
@ 2020-01-15 15:33 David Hildenbrand
  2020-01-15 15:33 ` [PATCH for 4.19-stable 01/25] mm/memory_hotplug: make remove_memory() take the device_hotplug_lock David Hildenbrand
                   ` (25 more replies)
  0 siblings, 26 replies; 37+ messages in thread
From: David Hildenbrand @ 2020-01-15 15:33 UTC (permalink / raw)
  To: stable
  Cc: linux-mm, Oscar Salvador, Michal Hocko, Aneesh Kumar K . V,
	Greg Kroah-Hartman, Dan Williams, Andrew Morton, Laurent Vivier,
	Baoquan He

This is the backport of the following fixes for 4.19-stable:

- a31b264c2b41 ("mm/memory_hotplug: make
  unregister_memory_block_under_nodes() never fail")
-- Turned out to not only be a cleanup but also a fix
- 2c91f8fc6c99 ("mm/memory_hotplug: fix try_offline_node()")
-- Automatic stable backport failed due to missing dependencies.
- feee6b298916 ("mm/memory_hotplug: shrink zones when offlining memory")
-- Was marked as stable 5.0+ due to the backport complexity,, but it's also
   relevant for 4.19/4.14. As I have to backport quite some cleanups
   already ...

To minimize manual code changes, I decided to pull in quite some cleanups.
Still some manual code changes are necessary (indicated in the individual
patches). Especially missing arm64 hot(un)plug, missing sub-section hotadd
support, and missing unification of mm/hmm.c and kernel/memremap.c requires
care.

Due to:
- 4e0d2e7ef14d ("mm, sparse: pass nid instead of pgdat to
  sparse_add_one_section()")
I need:
- afe9b36ca890 ("mm/memunmap: don't access uninitialized memmap in
  memunmap_pages()")

Please note that:
- 4c4b7f9ba948 ("mm/memory_hotplug: remove memory block devices
  before arch_remove_memory()")
Makes big (e.g., 32TB) machines boot up slower (e.g., 2h vs 10m). There is
a performance fix in linux-next, but it does not seem to classify as a
fix for current RC / stable.

I did quite some testing with hot(un)plug, onlining/offlining of memory
blocks and memory-less/CPU-less NUMA nodes under x86_64 - the same set of
tests I run against upstream on a fairly regular basis. I compile-tested
on PowerPC. I did not test any ZONE_DEVICE/HMM thingies.

Let's see what people think - it's a lot of patches. If we want this,
then I can try to prepare a similar set for 4.4-stable.

CCing only some people to minimize noise.

Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@suse.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Laurent Vivier <lvivier@redhat.com>
Cc: Baoquan He <bhe@redhat.com>

David Hildenbrand (25):
  mm/memory_hotplug: make remove_memory() take the device_hotplug_lock
  mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section()
  mm, sparse: pass nid instead of pgdat to sparse_add_one_section()
  drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS
  mm, memory_hotplug: add nid parameter to arch_remove_memory
  mm/memory_hotplug: release memory resource after arch_remove_memory()
  drivers/base/memory.c: clean up relics in function parameters
  mm, memory_hotplug: update a comment in unregister_memory()
  mm/memory_hotplug: make unregister_memory_section() never fail
  mm/memory_hotplug: make __remove_section() never fail
  powerpc/mm: Fix section mismatch warning
  powerpc/mm: move warning from resize_hpt_for_hotplug()
  mm/memory_hotplug: make __remove_pages() and arch_remove_memory()
    never fail
  s390x/mm: implement arch_remove_memory()
  mm/memory_hotplug: allow arch_remove_memory() without
    CONFIG_MEMORY_HOTREMOVE
  drivers/base/memory: pass a block_id to init_memory_block()
  mm/memory_hotplug: create memory block devices after arch_add_memory()
  mm/memory_hotplug: remove memory block devices before
    arch_remove_memory()
  mm/memory_hotplug: make unregister_memory_block_under_nodes() never
    fail
  mm/memory_hotplug: remove "zone" parameter from
    sparse_remove_one_section
  mm/hotplug: kill is_dev_zone() usage in __remove_pages()
  drivers/base/node.c: simplify unregister_memory_block_under_nodes()
  mm/memunmap: don't access uninitialized memmap in memunmap_pages()
  mm/memory_hotplug: fix try_offline_node()
  mm/memory_hotplug: shrink zones when offlining memory

 arch/ia64/mm/init.c                           |  15 +-
 arch/powerpc/include/asm/sparsemem.h          |   4 +-
 arch/powerpc/mm/hash_utils_64.c               |  19 +-
 arch/powerpc/mm/mem.c                         |  28 +--
 arch/powerpc/platforms/powernv/memtrace.c     |   2 +-
 .../platforms/pseries/hotplug-memory.c        |   6 +-
 arch/powerpc/platforms/pseries/lpar.c         |   3 +-
 arch/s390/mm/init.c                           |  18 +-
 arch/sh/mm/init.c                             |  15 +-
 arch/x86/mm/init_32.c                         |   9 +-
 arch/x86/mm/init_64.c                         |  17 +-
 drivers/acpi/acpi_memhotplug.c                |   2 +-
 drivers/base/memory.c                         | 203 +++++++++++-------
 drivers/base/node.c                           |  52 ++---
 include/linux/memory.h                        |   8 +-
 include/linux/memory_hotplug.h                |  22 +-
 include/linux/mmzone.h                        |   3 +-
 include/linux/node.h                          |   7 +-
 kernel/memremap.c                             |  13 +-
 mm/hmm.c                                      |   8 +-
 mm/memory_hotplug.c                           | 166 +++++++-------
 mm/sparse.c                                   |  27 +--
 22 files changed, 318 insertions(+), 329 deletions(-)

-- 
2.24.1


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2020-01-16 14:32 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-15 15:33 [PATCH for 4.19-stable 00/25] mm/memory_hotplug: backport of pending stable fixes David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 01/25] mm/memory_hotplug: make remove_memory() take the device_hotplug_lock David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 02/25] mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 03/25] mm, sparse: pass nid instead of pgdat to sparse_add_one_section() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 04/25] drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 05/25] mm, memory_hotplug: add nid parameter to arch_remove_memory David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 06/25] mm/memory_hotplug: release memory resource after arch_remove_memory() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 07/25] drivers/base/memory.c: clean up relics in function parameters David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 08/25] mm, memory_hotplug: update a comment in unregister_memory() David Hildenbrand
2020-01-15 15:38   ` Greg Kroah-Hartman
2020-01-15 15:41     ` David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 09/25] mm/memory_hotplug: make unregister_memory_section() never fail David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 10/25] mm/memory_hotplug: make __remove_section() " David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 11/25] powerpc/mm: Fix section mismatch warning David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 12/25] powerpc/mm: move warning from resize_hpt_for_hotplug() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 13/25] mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never fail David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 14/25] s390x/mm: implement arch_remove_memory() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 15/25] mm/memory_hotplug: allow arch_remove_memory() without CONFIG_MEMORY_HOTREMOVE David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 16/25] drivers/base/memory: pass a block_id to init_memory_block() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 17/25] mm/memory_hotplug: create memory block devices after arch_add_memory() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 18/25] mm/memory_hotplug: remove memory block devices before arch_remove_memory() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 19/25] mm/memory_hotplug: make unregister_memory_block_under_nodes() never fail David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 20/25] mm/memory_hotplug: remove "zone" parameter from sparse_remove_one_section David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 21/25] mm/hotplug: kill is_dev_zone() usage in __remove_pages() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 22/25] drivers/base/node.c: simplify unregister_memory_block_under_nodes() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 23/25] mm/memunmap: don't access uninitialized memmap in memunmap_pages() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 24/25] mm/memory_hotplug: fix try_offline_node() David Hildenbrand
2020-01-15 15:33 ` [PATCH for 4.19-stable 25/25] mm/memory_hotplug: shrink zones when offlining memory David Hildenbrand
2020-01-15 15:39 ` [PATCH for 4.19-stable 00/25] mm/memory_hotplug: backport of pending stable fixes Greg Kroah-Hartman
2020-01-15 15:54   ` David Hildenbrand
2020-01-16  8:34     ` Greg Kroah-Hartman
2020-01-16  8:42       ` David Hildenbrand
2020-01-16  8:54         ` Greg Kroah-Hartman
2020-01-16  8:59           ` David Hildenbrand
2020-01-16  9:26             ` Greg Kroah-Hartman
2020-01-16  9:35               ` David Hildenbrand
2020-01-16 14:32               ` David Hildenbrand

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.