--- v1
+++ v2
@@ -1,3 +1,5 @@
+Based on latest linux/master
+
powernv/memtrace is the only in-kernel user that rips out random memory
it never added (doesn't own) in order to allocate memory without a
linear mapping. Let's stop abusing memory hot(un)plug infrastructure for
@@ -7,22 +9,52 @@
The original idea was discussed in:
https://lkml.kernel.org/r/48340e96-7e6b-736f-9e23-d3111b915b6e@redhat.com
-I only tested allocations briefly via QEMU TCG - see patch #4 for more
+I only tested via QEMU TCG with a single NUMA node- see patch #8 for more
details.
-David Hildenbrand (4):
+Error handling and cleanup handling in memtrace code is a mess - that
+should definitely get cleaned up sooner or later. Once we have __GFP_ZERO
+support for alloc_contig_pages(), we can drop manual clearing. I added
+a TODO for now, so this series can go via the powerpc tree - the __GFP_ZERO
+change is then better suited via the mm tree, along with support for
+__GFP_ZERO.
+
+v1 -> v2:
+- Tweaks to patch descriptions
+- "powernv/memtrace: don't leak kernel memory to user space"
+-- Added. Reported by Michael.
+- "powernv/memtrace: fix crashing the kernel when enabling concurrently"
+-- Added, discovered while testing.
+- "powerpc/mm: protect linear mapping modifications by a mutex"
+-- Added. Although we currently won't have concurrency, this is cleaner and
+ future-proof.
+- "powerepc/book3s64/hash: drop WARN_ON in hash__remove_section_mapping"
+-- Added. Suggested by Oscar
+- "powernv/memtrace: don't abuse memory hot(un)plug infrastructure for
+ memory allocations"
+-- Reshuffle the code to make review easier.
+-- Add a TODO regarding __GFP_ZERO. Adapt to changed page clearing code.
+-- Use GFP_KERNEL | __GFP_THISNODE | __GFP_NOWARN for allocations.
+
+
+David Hildenbrand (8):
+ powernv/memtrace: don't leak kernel memory to user space
+ powernv/memtrace: fix crashing the kernel when enabling concurrently
powerpc/mm: factor out creating/removing linear mapping
+ powerpc/mm: protect linear mapping modifications by a mutex
powerpc/mm: print warning in arch_remove_linear_mapping()
+ powerepc/book3s64/hash: drop WARN_ON in hash__remove_section_mapping
powerpc/mm: remove linear mapping if __add_pages() fails in
arch_add_memory()
powernv/memtrace: don't abuse memory hot(un)plug infrastructure for
memory allocations
- arch/powerpc/mm/mem.c | 48 +++++---
+ arch/powerpc/mm/book3s64/hash_utils.c | 1 -
+ arch/powerpc/mm/mem.c | 53 +++++--
arch/powerpc/platforms/powernv/Kconfig | 8 +-
- arch/powerpc/platforms/powernv/memtrace.c | 134 ++++++++--------------
+ arch/powerpc/platforms/powernv/memtrace.c | 175 ++++++++++------------
include/linux/memory_hotplug.h | 3 +
- 4 files changed, 86 insertions(+), 107 deletions(-)
+ 5 files changed, 125 insertions(+), 115 deletions(-)
--
2.26.2