Re: [PATCH 09/10] mm/mremap: permit mremap() move of multiple VMAs

2025-07-09 Thread Liam R. Howlett
* Lorenzo Stoakes [250707 01:28]: > Historically we've made it a uAPI requirement that mremap() may only > operate on a single VMA at a time. > > For instances where VMAs need to be resized, this makes sense, as it > becomes very difficult to determine what a user actually wants should they > ind

Re: [PATCH v6 7/8] fs/proc/task_mmu: read proc/pid/maps under per-vma lock

2025-07-09 Thread Liam R. Howlett
* Suren Baghdasaryan [250709 11:06]: > On Wed, Jul 9, 2025 at 3:03 PM Vlastimil Babka wrote: > > > > On 7/9/25 16:43, Suren Baghdasaryan wrote: > > > On Wed, Jul 9, 2025 at 1:57 AM Vlastimil Babka wrote: > > >> > > >> On 7/8/25 01:10, Suren Baghdasaryan wrote: > > >> >>> + rcu_read_unlock();

Re: [PATCH v6 7/8] fs/proc/task_mmu: read proc/pid/maps under per-vma lock

2025-07-07 Thread Liam R. Howlett
earing could happen only between pages of generated output > data. Since current userspace considers data tearing between pages to be > acceptable, we assume is will be able to handle sub-page data tearing > as well. > > Signed-off-by: Suren Baghdasaryan Reviewed-by: Liam R. Ho

Re: [PATCH v6 8/8] fs/proc/task_mmu: execute PROCMAP_QUERY ioctl under per-vma locks

2025-07-07 Thread Liam R. Howlett
is designed to reduce mmap_lock contention and prevent > PROCMAP_QUERY ioctl calls from blocking address space updates. > > Signed-off-by: Suren Baghdasaryan > Acked-by: Andrii Nakryiko Reviewed-by: Liam R. Howlett > --- > fs/proc/task_mmu.c | 60 +++

Re: [PATCH 00/16] MAINTAINERS: Include GDB scripts under their relevant subsystems

2025-06-26 Thread Liam R. Howlett
* Florian Fainelli [250625 19:13]: > Linux has a number of very useful GDB scripts under scripts/gdb/linux/* > that provide OS awareness for debuggers and allows for debugging of a > variety of data structures (lists, timers, radix tree, mapletree, etc.) > as well as subsystems (clocks, devices, c

Re: [PATCH 2/6] selftest/mm: Fix ksm_funtional_test failures

2025-06-16 Thread Liam R. Howlett
* Aboorva Devarajan [250616 12:07]: > From: Donet Tom > > This patch fixed 2 issues. > > 1)After fork() in test_prctl_fork, the child process uses the file > descriptors from the parent process to read ksm_stat and > ksm_merging_pages. This results in incorrect values being read (parent > proce

Re: [RFC PATCH v1 3/6] mm: Avoid calling page allocator from apply_to_page_range()

2025-05-30 Thread Liam R. Howlett
* Ryan Roberts [250530 12:50]: ... > > > > > > These wrappers are terrible for readability and annoying for argument > > lists too. > > Agreed. > > > > > Could we do something like the pgtbl_mod_mask or zap_details and pass > > through a struct or one unsigned int for create and lazy_mmu? >

Re: [RFC PATCH v1 3/6] mm: Avoid calling page allocator from apply_to_page_range()

2025-05-30 Thread Liam R. Howlett
* Ryan Roberts [250530 10:05]: > Lazy mmu mode applies to the current task and permits pte modifications > to be deferred and updated at a later time in a batch to improve > performance. apply_to_page_range() calls its callback in lazy mmu mode > and some of those callbacks call into the page allo

Re: [PATCH] selftests/mm: Deduplicate test names in madv_populate

2025-05-22 Thread Liam R. Howlett
een runs and distinguish between multiple tests within > the same run. Fix this by tweaking the messages with duplication to be more > specific about the contexts they're in. > > Signed-off-by: Mark Brown Reviewed-by: Liam R. Howlett > --- > tools/testin

Re: [PATCH v3 7/8] mm/maps: read proc/pid/maps under RCU

2025-04-24 Thread Liam R. Howlett
* Andrii Nakryiko [250424 12:04]: > On Thu, Apr 24, 2025 at 8:20 AM Suren Baghdasaryan wrote: > > > > On Wed, Apr 23, 2025 at 5:24 PM Liam R. Howlett > > wrote: > > > > > > * Andrii Nakryiko [250423 18:06]: > > > > On Wed, Apr 23,

Re: [PATCH v3 7/8] mm/maps: read proc/pid/maps under RCU

2025-04-23 Thread Liam R. Howlett
* Andrii Nakryiko [250423 18:06]: > On Wed, Apr 23, 2025 at 2:49 PM Suren Baghdasaryan wrote: > > > > On Tue, Apr 22, 2025 at 3:49 PM Andrii Nakryiko > > wrote: > > > > > > On Fri, Apr 18, 2025 at 10:50 AM Suren Baghdasaryan > > > wrote: > > > > > > > > With maple_tree supporting vma tree trav

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-07 Thread Liam R. Howlett
* Nikita Kalyazin [250407 10:05]: > ... > > > > All of this is extremely confusing because the onus of figuring out what > > the final code will look like is put on the reviewer. As it is, we have > > issues with people not doing enough review of the code (due to limited > > time). One way t

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-07 Thread Liam R. Howlett
* Nikita Kalyazin [250407 07:04]: > > > On 04/04/2025 18:12, Liam R. Howlett wrote: > > +To authors of v7 series referenced in [1] > > > > * Nikita Kalyazin [250404 11:44]: > > > This series is built on top of the Fuad's v7 "mapping guest_memfd ba

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-04 Thread Liam R. Howlett
+To authors of v7 series referenced in [1] * Nikita Kalyazin [250404 11:44]: > This series is built on top of the Fuad's v7 "mapping guest_memfd backed > memory at the host" [1]. I didn't see their addresses in the to/cc, so I added them to my response as I reference the v7 patch set below. >

Re: [PATCH RFC v2 00/10] SLUB percpu sheaves

2025-03-04 Thread Liam R. Howlett
* Vlastimil Babka [250304 05:55]: > On 2/25/25 21:26, Suren Baghdasaryan wrote: > > On Mon, Feb 24, 2025 at 1:12 PM Suren Baghdasaryan > > wrote: > >> > >> > > >> > > The values represent the total time it took to perform mmap syscalls, > >> > > less is > >> > > better. > >> > > > >> > > (1)

Re: [PATCH 0/4] mm: permit guard regions for file-backed/shmem mappings

2025-02-19 Thread Liam R. Howlett
* Kalesh Singh [250219 03:35]: > On Wed, Feb 19, 2025 at 12:25 AM Kalesh Singh wrote: > > > > On Thu, Feb 13, 2025 at 10:18 AM Lorenzo Stoakes > > wrote: > > > > > > The guard regions feature was initially implemented to support anonymous > > > mappings only, excluding shmem. > > > > > > This wa

Re: [PATCH] selftests/mm: add fork CoW guard page test

2024-12-05 Thread Liam R. Howlett
me time. > > Signed-off-by: Lorenzo Stoakes Nice to see some more testing going in. Reviewed-by: Liam R. Howlett > --- > tools/testing/selftests/mm/guard-pages.c | 73 +++- > 1 file changed, 72 insertions(+), 1 deletion(-) > > diff --git a/tools/testin

Re: [PATCH net-next v2 3/3] connector/cn_proc: Selftest for threads

2024-10-15 Thread Liam R. Howlett
* Anjali Kulkarni [241015 17:28]: > > > > On Oct 15, 2024, at 12:27 PM, Liam Howlett wrote: > > > > * Anjali Kulkarni [241015 13:30]: > >> Test to check if setting PROC_CN_MCAST_NOTIFY in proc connector API, allows > >> a thread's non-zero exit status to be returned to proc_filter. > >> > >>

Re: [PATCH net-next v2 2/3] connector/cn_proc: Kunit tests for threads hash table

2024-10-15 Thread Liam R. Howlett
* Anjali Kulkarni [241015 17:11]: ... > >> +MODULE_DESCRIPTION("KUnit test for the connector threads hashtable code"); > >> +MODULE_LICENSE("GPL"); > >> diff --git a/lib/cn_hash_test.h b/lib/cn_hash_test.h > >> new file mode 100644 > >> index ..46fcda31b25c > >> --- /dev/null > >> ++

Re: [PATCH net-next v2 3/3] connector/cn_proc: Selftest for threads

2024-10-15 Thread Liam R. Howlett
* Anjali Kulkarni [241015 13:30]: > Test to check if setting PROC_CN_MCAST_NOTIFY in proc connector API, allows > a thread's non-zero exit status to be returned to proc_filter. > > The threads.c program creates 2 child threads. 1st thread handles signal > SIGSEGV, and 2nd thread needs to indicate

Re: [PATCH net-next v2 2/3] connector/cn_proc: Kunit tests for threads hash table

2024-10-15 Thread Liam R. Howlett
* Anjali Kulkarni [241015 13:30]: > Kunit tests to test hash table add, delete, duplicate add and delete. > Add following configs and compile kernel code: > > CONFIG_CONNECTOR=y > CONFIG_PROC_EVENTS=y > CONFIG_NET=y > CONFIG_KUNIT=m > CONFIG_CN_HASH_KUNIT_TEST=m > > To run kunit tests: > sudo mo

Re: [PATCH net-next v2 1/3] connector/cn_proc: Add hash table for threads

2024-10-15 Thread Liam R. Howlett
* Anjali Kulkarni [241015 13:30]: > Add a new type PROC_CN_MCAST_NOTIFY to proc connector API, which allows a > thread to notify the kernel that is going to exit with a non-zero exit > code and specify the exit code in it. When thread exits in the kernel, > it will send this exit code as a proc fi

Re: [PATCH] selftests: mm: Fix build errors on armhf

2024-09-10 Thread Liam R. Howlett
* Jeff Xu [240910 10:15]: > Hi Muhammad > > On Mon, Aug 19, 2024 at 3:05 AM Muhammad Usama Anjum > wrote: > > > > On 8/14/24 3:29 AM, Jeff Xu wrote: > > > Hi Muhammad > > > > > > On Fri, Aug 9, 2024 at 1:25 AM Muhammad Usama Anjum > > > wrote: > > >> > > >> The __NR_mmap isn't found on armhf. T

Re: [PATCH v2] mm/damon/tests/vaddr-kunit: init maple tree without MT_FLAGS_LOCK_EXTERN

2024-09-04 Thread Liam R. Howlett
: > > > https://lore.kernel.org/1453b2b2-6119-4082-ad9e-f3c5239bf...@roeck-us.net > > > Fixes: d0cf3dd47f0d ("damon: convert __damon_va_three_regions to use the > > > VMA iterator") > > > Suggested-by: Liam R. Howlett > > > Signed-off-by: SeongJae

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-04 Thread Liam R. Howlett
* Guenter Roeck [240904 00:27]: > On 9/3/24 20:36, Liam R. Howlett wrote: > > * Guenter Roeck [240903 22:38]: > > > On 9/3/24 19:31, Liam R. Howlett wrote: > > > > * SeongJae Park [240903 21:18]: > > > > > On Tue, 3 Sep 2024 1

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-03 Thread Liam R. Howlett
* Guenter Roeck [240903 22:38]: > On 9/3/24 19:31, Liam R. Howlett wrote: > > * SeongJae Park [240903 21:18]: > > > On Tue, 3 Sep 2024 17:58:15 -0700 SeongJae Park wrote: > > > > > > > On Tue, 3 Sep 2024 20:48:53 -0400 "Liam R. Howlett" &

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-03 Thread Liam R. Howlett
* Guenter Roeck [240903 22:38]: > On 9/3/24 19:31, Liam R. Howlett wrote: > > * SeongJae Park [240903 21:18]: > > > On Tue, 3 Sep 2024 17:58:15 -0700 SeongJae Park wrote: > > > > > > > On Tue, 3 Sep 2024 20:48:53 -0400 "Liam R. Howlett" &

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-03 Thread Liam R. Howlett
* Guenter Roeck [240903 21:54]: > On 9/3/24 18:18, SeongJae Park wrote: > > On Tue, 3 Sep 2024 17:58:15 -0700 SeongJae Park wrote: > > > > > On Tue, 3 Sep 2024 20:48:53 -0400 "Liam R. Howlett" > > > wrote: &g

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-03 Thread Liam R. Howlett
* SeongJae Park [240903 21:18]: > On Tue, 3 Sep 2024 17:58:15 -0700 SeongJae Park wrote: > > > On Tue, 3 Sep 2024 20:48:53 -0400 "Liam R. Howlett" > > wrote: > > > > > * SeongJae Park [240903 20:45]: > > > > damon_tes

Re: [PATCH] mm/damon/tests/vaddr-kunit: don't use mas_lock for MM_MT_FLAGS-initialized maple tree

2024-09-03 Thread Liam R. Howlett
* SeongJae Park [240903 20:45]: > damon_test_three_regions_in_vmas() initializes a maple tree with > MM_MT_FLAGS. The flags contains MT_FLAGS_LOCK_EXTERN, which means > mt_lock of the maple tree will not be used. And therefore the maple > tree initialization code skips initialization of the mt_l

Re: [PATCH] tools/testing/radix-tree/idr-test: add missing MODULE_DESCRIPTION define

2024-06-26 Thread Liam R. Howlett
dd the > proper defines to tools/testing/radix-tree/idr-test.c so > MODULE_DESCRIPTION has a definition. This allows the build to succeed. > > Fixes: 303474913271("KUnit: add missing MODULE_DESCRIPTION() macros for > lib/test_*.ko") > Signed-off-by: Sidhartha Ku

Re: [PATCH] mm: Remove mm argument from mm_get_unmapped_area()

2024-05-07 Thread Liam R. Howlett
* Edgecombe, Rick P [240507 09:51]: > On Mon, 2024-05-06 at 12:32 -0400, Liam R. Howlett wrote: > > > > I like this patch. > > Thanks for taking a look. > > > > > I think the context of current->mm is implied. IOW, could we call it > > get_unmapp

Re: [PATCH] mm: Remove mm argument from mm_get_unmapped_area()

2024-05-06 Thread Liam R. Howlett
probably should have responded to Dan's suggestion with my comment. Either way, this is a minor thing so feel free to add: Reviewed-by: Liam R. Howlett > > Fixes: 529ce23a764f ("mm: switch mm->get_unmapped_area() to a flag") > Suggested-by: Dan Willi

Re: [PATCH v20 2/5] ring-buffer: Introducing ring-buffer mapping functions

2024-04-23 Thread Liam R. Howlett
* Steven Rostedt [240410 13:41]: > On Sat, 6 Apr 2024 18:36:46 +0100 > Vincent Donnefort wrote: > > > +int ring_buffer_map(struct trace_buffer *buffer, int cpu, > > + struct vm_area_struct *vma) > > +{ > > + struct ring_buffer_per_cpu *cpu_buffer; > > + unsigned long flags, *s

Re: [PATCH v2 14/70] mm/mmap: Change do_brk_flags() to expand existing VMA and add do_brk_munmap()

2021-01-13 Thread Liam R. Howlett
* Randy Dunlap [210112 16:23]: > Hi-- > > On 1/12/21 8:11 AM, Liam R. Howlett wrote: > > Avoid allocating a new VMA when it is not necessary. Expand or contract > > the existing VMA instead. This avoids unnecessary tree manipulations > > and allocations. > >

[PATCH v2 07/70] mm/mmap: Introduce unlock_range() for code cleanup

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mmap.c | 37 ++--- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index bf0de273161e1..65789b188c380 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2983,6 +2983,20 @@ int split_vma(struct

[PATCH v2 16/70] mm: Move find_vma_intersection to mmap.c and change implementation to maple tree.

2021-01-12 Thread Liam R. Howlett
When searching for a vma within a range, it is easier to use the maple tree interface. This means the find_vma() call changes to a special case of the find_vma_intersection(). Exported for kvm module. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 10 ++ mm/mmap.c

[PATCH v2 29/70] arch/parsic: Remove mmap linked list from kernel/cache

2021-01-12 Thread Liam R. Howlett
Start using the maple tree Signed-off-by: Liam R. Howlett --- arch/parisc/kernel/cache.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 86a1a63563fd5..288a25e1b1c29 100644 --- a/arch/parisc/kernel/cache.c

[PATCH v2 01/70] radix tree test suite: Enhancements for Maple Tree

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett Signed-off-by: Matthew Wilcox (Oracle) --- tools/testing/radix-tree/linux.c| 16 +++- tools/testing/radix-tree/linux/kernel.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/testing/radix-tree/linux.c b/tools

[PATCH v2 52/70] mm/gup: Use maple tree navigation instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/gup.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/gup.c b/mm/gup.c index b06e2a6d90187..20392efb2d9ba 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1465,6 +1465,7 @@ int __mm_populate(unsigned long start, unsigned long len, int

[PATCH v2 38/70] drivers/oprofile: Lookup address in tree instead of linked list.

2021-01-12 Thread Liam R. Howlett
Use the vma interface to find the vma if one exists instead of the linked list Signed-off-by: Liam R. Howlett --- drivers/oprofile/buffer_sync.c | 14 -- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c

[PATCH v2 39/70] drivers/tee/optee: Use maple tree iterators for __check_mem_type()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- drivers/tee/optee/call.c | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index c981757ba0d40..94acf379eaeeb 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee

[PATCH v2 47/70] kernel/acct: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- kernel/acct.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/acct.c b/kernel/acct.c index f175df8f6aa4a..bcfe2cf7c7c0f 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -537,16 +537,14 @@ void acct_collect(long exitcode, int

[PATCH v2 44/70] fs/proc/task_mmu: Stop using linked list and highest_vm_end

2021-01-12 Thread Liam R. Howlett
Remove references to mm_struct linked list and highest_vm_end for when they are removed Signed-off-by: Liam R. Howlett --- fs/proc/task_mmu.c | 42 -- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c

[PATCH v2 48/70] kernel/events/core: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- kernel/events/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index dc568ca295bdc..767bec30c395f 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -9888,8 +9888,9 @@ static

[PATCH v2 56/70] mm/madvise: Use vma_next instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/madvise.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/madvise.c b/mm/madvise.c index 13f5677b93222..0da3c9a5f5b82 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1151,7 +1151,7 @@ int do_madvise(struct mm_struct *mm, unsigned long

[PATCH v2 49/70] kernel/events/uprobes: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- kernel/events/uprobes.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 00b0358739ab3..b0aa05be2a61d 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c

[PATCH v2 32/70] arch/powerpc: Optimize cell spu task sync.

2021-01-12 Thread Liam R. Howlett
Use the vma api to look up the spu reference instead of walking the linked list. Signed-off-by: Liam R. Howlett --- arch/powerpc/oprofile/cell/spu_task_sync.c | 22 ++ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/oprofile/cell/spu_task_sync.c

[PATCH v2 25/70] mm/mmap: Change do_brk_munmap() to use do_mas_align_munmap()

2021-01-12 Thread Liam R. Howlett
do_brk_munmap() already has aligned addresses. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 9be91b47db6b4..f750e85d4dc2c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -3004,12 +3004,13 @@ static int

[PATCH v2 37/70] drivers/misc/cxl: Use maple tree iterators for cxl_prefault_vma()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- drivers/misc/cxl/fault.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/misc/cxl/fault.c b/drivers/misc/cxl/fault.c index 01153b74334a1..47951b84f2cda 100644 --- a/drivers/misc/cxl/fault.c +++ b/drivers/misc/cxl/fault.c @@ -313,6

[PATCH v2 54/70] mm/khugepaged: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/khugepaged.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 4e3dff13eb70c..fbfcee552da6c 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2049,6 +2049,7 @@ static unsigned int

[PATCH v2 40/70] fs/binfmt_elf: Use maple tree iterators for fill_files_note()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- fs/binfmt_elf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index fa50e8936f5fc..92b67b914bf96 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -1609,6 +1609,7 @@ static int fill_files_note(struct

[PATCH v2 23/70] mmap: Use find_vma_intersection in do_mmap() for overlap

2021-01-12 Thread Liam R. Howlett
When detecting a conflict with MAP_FIXED_NOREPLACE, using the new interface avoids the need for a temp variable Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8bc4ee7cc2fff..c0a64c4726b67 100644

[PATCH v2 03/70] radix tree test suite: Add support for kmem_cache_free_bulk

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- tools/testing/radix-tree/linux.c | 9 + tools/testing/radix-tree/linux/slab.h | 1 + 2 files changed, 10 insertions(+) diff --git a/tools/testing/radix-tree/linux.c b/tools/testing/radix-tree/linux.c index 93f7de81fbe87..380bbc0a48d6f 100644 --- a

[PATCH v2 09/70] mm/mmap: Change find_vma_prev() to use maple tree

2021-01-12 Thread Liam R. Howlett
Change the implementation of find_vma_prev to use the new maple tree data structure. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 27 +-- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index ab1cb0efc4c65..f123f9c97dfe8 100644

[PATCH v2 46/70] ipc/shm: Stop using the vma linked list

2021-01-12 Thread Liam R. Howlett
When searching for a VMA, a maple state can be used instead of the linked list in the mm_struct Signed-off-by: Liam R. Howlett --- ipc/shm.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ipc/shm.c b/ipc/shm.c index e25c7c6106bcf..4ad8788352099 100644 --- a

[PATCH v2 24/70] mmap: Remove __do_munmap() in favour of do_mas_munmap()

2021-01-12 Thread Liam R. Howlett
Export new interface and use it in place of old interface. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 4 ++-- mm/mmap.c | 16 mm/mremap.c| 7 --- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/include/linux/mm.h b/include

[PATCH v2 28/70] arch/arm64: Remove mmap linked list from vdso.

2021-01-12 Thread Liam R. Howlett
Start using the maple tree Signed-off-by: Liam R. Howlett --- arch/arm64/kernel/vdso.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index debb8995d57fb..caa7d8f6b99db 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch

[PATCH v2 58/70] mm/mempolicy: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mempolicy.c | 33 - 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 3ca4898f3f249..e0b8e658f18eb 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -404,9 +404,10 @@ void

[PATCH v2 22/70] mm/mmap: Add do_mas_munmap() and wraper for __do_munmap()

2021-01-12 Thread Liam R. Howlett
To avoid extra tree work, it is necessary to support passing in a maple state to key functions. Start this work with __do_munmap(). Signed-off-by: Liam R. Howlett --- mm/mmap.c | 102 ++ 1 file changed, 72 insertions(+), 30 deletions(-) diff

[PATCH v2 53/70] mm/huge_memory: Use vma_next() instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/huge_memory.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index ec2bb93f74314..4005beb23daf9 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2304,12 +2304,12 @@ void

[PATCH v2 55/70] mm/ksm: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/ksm.c | 18 +++--- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index 0960750bb316d..9aa579cef7614 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -975,10 +975,12 @@ static int unmerge_and_remove_all_rmap_items(void

[PATCH v2 64/70] mm/oom_kill: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/oom_kill.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 8b84661a64109..a5e2045ec2763 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -514,6 +514,7 @@ bool __oom_reap_task_mm(struct mm_struct *mm

[PATCH v2 67/70] mm/nommu: Stop inserting into the vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/nommu.c | 4 1 file changed, 4 deletions(-) diff --git a/mm/nommu.c b/mm/nommu.c index 4e5cc63728b65..a3f97a612f16a 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -617,8 +617,6 @@ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma

[PATCH v2 65/70] mm/pagewalk: Use vma_next() instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/pagewalk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/pagewalk.c b/mm/pagewalk.c index e81640d9f1770..20bd8d14d0425 100644 --- a/mm/pagewalk.c +++ b/mm/pagewalk.c @@ -408,7 +408,7 @@ int walk_page_range(struct mm_struct *mm

[PATCH v2 61/70] mm/mremap: Use vma_next() instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mremap.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/mremap.c b/mm/mremap.c index a7526a8c1fe5a..3b6e7f0324635 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -465,7 +465,7 @@ static unsigned long move_vma(struct vm_area_struct

[PATCH v2 60/70] mm/mprotect: Use maple tree navigation instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mprotect.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mm/mprotect.c b/mm/mprotect.c index 56c02beb60414..a6208b872336e 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -518,6 +518,7 @@ static int do_mprotect_pkey(unsigned

[PATCH v2 59/70] mm/mlock: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mlock.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mm/mlock.c b/mm/mlock.c index 884b1216da6a6..2c27597ebcf6b 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -591,6 +591,7 @@ static int apply_vma_lock_flags

[PATCH v2 50/70] kernel/sched/fair: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- kernel/sched/fair.c | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ae7ceba8fd4f2..1cb3a245ffd85 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2723,6 +2723,7

[PATCH v2 41/70] fs/coredump: Use maple tree iterators in place of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- fs/coredump.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/fs/coredump.c b/fs/coredump.c index c6acfc694f658..a69f281a08afb 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1040,10 +1040,10 @@ static unsigned long

[PATCH v2 35/70] arch/x86: Use maple tree iterators for vdso/vma

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- arch/x86/entry/vdso/vma.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index 9185cb1d13b9b..f531efb00ba35 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c

[PATCH v2 34/70] arch/um: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- arch/um/kernel/tlb.c | 14 ++ 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c index 61776790cd678..e40dd6deb1d21 100644 --- a/arch/um/kernel/tlb.c +++ b/arch/um/kernel/tlb.c @@ -590,21

[PATCH v2 69/70] mm: Remove vma linked list.

2021-01-12 Thread Liam R. Howlett
The vma linked list has been replaced by the maple tree iterators and vma_next() vma_prev() functions. A part of this change is also the iterators free_pgd_range(), zap_page_range(), and unmap_single_vma() Signed-off-by: Liam R. Howlett --- include/linux/mm_types.h | 8 +- kernel/fork.c

[PATCH v2 26/70] mmap: make remove_vma_list() inline

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index f750e85d4dc2c..964582c0f16ee 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2294,7 +2294,8 @@ EXPORT_SYMBOL_GPL(find_extend_vma); * * Called with the mm

[PATCH v2 30/70] arch/powerpc: Remove mmap linked list from mm/book2s32/tlb

2021-01-12 Thread Liam R. Howlett
Start using the maple tree Signed-off-by: Liam R. Howlett --- arch/powerpc/mm/book3s32/tlb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/mm/book3s32/tlb.c b/arch/powerpc/mm/book3s32/tlb.c index b6c7427daa6fe..be595b36dc4cd 100644 --- a/arch/powerpc/mm

[PATCH v2 18/70] mm/mmap: Drop munmap_vma_range()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/mmap.c | 23 --- 1 file changed, 23 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index d3dfea031c0d5..1cef158c31909 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -483,29 +483,6 @@ static inline struct vm_area_struct *vma_next(struct

[PATCH v2 43/70] fs/proc/base: Use maple tree iterators in place of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- fs/proc/base.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index b362523a9829a..0a7d4d3d6ae9b 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2316,6 +2316,7 @@ proc_map_files_readdir(struct file

[PATCH v2 08/70] mm/mmap: Change find_vma() to use the maple tree

2021-01-12 Thread Liam R. Howlett
Start using the maple tree to find VMA entries in an mm_struct. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 29 +++-- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 65789b188c380..ab1cb0efc4c65 100644 --- a/mm/mmap.c +++ b

[PATCH v2 04/70] radix tree test suite: Add keme_cache_alloc_bulk() support

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- tools/testing/radix-tree/linux.c | 51 +++ tools/testing/radix-tree/linux/slab.h | 1 + 2 files changed, 52 insertions(+) diff --git a/tools/testing/radix-tree/linux.c b/tools/testing/radix-tree/linux.c index 380bbc0a48d6f

[PATCH v2 70/70] mm/mmap: Convert __insert_vm_struct to use mas, convert vma_link to use vma_mas_link()

2021-01-12 Thread Liam R. Howlett
Drop unused vma_store() Signed-off-by: Liam R. Howlett --- mm/mmap.c | 24 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index ce8857b9abd89..b4ed8be4899b8 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -514,21 +514,9 @@ static void

[PATCH v2 45/70] fs/userfaultfd: Stop using vma linked list.

2021-01-12 Thread Liam R. Howlett
Don't use the mm_struct linked list or the vma->vm_next in prep for removal Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 24 +--- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 000b457ad0876..b0eac

[PATCH v2 68/70] mm/util: Remove __vma_link_list() and __vma_unlink_list()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/util.c | 40 1 file changed, 40 deletions(-) diff --git a/mm/util.c b/mm/util.c index 48c79f2784eca..74888472a0848 100644 --- a/mm/util.c +++ b/mm/util.c @@ -271,46 +271,6 @@ void *memdup_user_nul(const void __user

[PATCH v2 57/70] mm/memcontrol: Stop using mm->highest_vm_end

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/memcontrol.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 29459a6ce1c7a..7fe753d6a81f1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5892,7 +5892,7 @@ static unsigned long

[PATCH v2 63/70] mm/nommu: Use maple tree iterators instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/nommu.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mm/nommu.c b/mm/nommu.c index 0faf39b32cdb9..4e5cc63728b65 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -677,6 +677,7 @@ static void delete_vma(struct mm_struct *mm, struct

[PATCH v2 66/70] mm/swapfile: Use maple tree iterator instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/swapfile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index d58361109066d..10e1d60ff6f89 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2104,9 +2104,10 @@ static int unuse_mm(struct mm_struct *mm

[PATCH v2 62/70] mm/msync: Use vma_next() instead of vma linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- mm/msync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/msync.c b/mm/msync.c index 69c6d20295318..8100ad5b12eb8 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -100,7 +100,7 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int

[PATCH v2 42/70] fs/exec: Use vma_next() instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index aa466921d6a97..6eb585ea1b841 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -712,7 +712,7 @@ static int shift_arg_pages(struct vm_area_struct *vma

[PATCH v2 36/70] arch/xtensa: Use maple tree iterators for unmapped area

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- arch/xtensa/kernel/syscall.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c index 2c415fce6801a..26ec2e67879ad 100644 --- a/arch/xtensa/kernel/syscall.c +++ b/arch/xtensa/kernel

[PATCH v2 51/70] kernel/sys: Use maple tree iterators instead of linked list

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- kernel/sys.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sys.c b/kernel/sys.c index a730c03ee607c..fe061c54a5a46 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1858,9 +1858,10 @@ static int prctl_set_mm_exe_file(struct

[PATCH v2 33/70] arch/s390: Use maple tree iterators instead of linked list.

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- arch/s390/mm/gmap.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c index 64795d0349263..8f7ed79583b29 100644 --- a/arch/s390/mm/gmap.c +++ b/arch/s390/mm/gmap.c @@ -2502,8 +2502,9 @@ static

[PATCH v2 19/70] mm: Remove vmacache

2021-01-12 Thread Liam R. Howlett
The maple tree is able to find a VMA quick enough to no longer need the vma cache. Remove the vmacache to reduce work in keeping it up to date and code complexity. Signed-off-by: Liam R. Howlett --- fs/exec.c | 3 - fs/proc/task_mmu.c| 1 - include/linux

[PATCH v2 20/70] mm/mmap: Change __do_munmap() to avoid unnecessary lookups.

2021-01-12 Thread Liam R. Howlett
As there is no longer a vmacache, find_vma() is more expensive and so avoid doing them Signed-off-by: Liam R. Howlett --- mm/mmap.c | 115 -- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index

[PATCH v2 21/70] mm/mmap: Move mmap_region() below do_munmap()

2021-01-12 Thread Liam R. Howlett
Relocation of code for the next commit. There should be no changes here. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 490 ++ 1 file changed, 240 insertions(+), 250 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index af426972c9dd2

[PATCH v2 31/70] arch/powerpc: Remove mmap linked list from mm/book2s32/subpage_prot

2021-01-12 Thread Liam R. Howlett
Start using the maple tree Signed-off-by: Liam R. Howlett --- arch/powerpc/mm/book3s64/subpage_prot.c | 13 ++--- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c index 60c6ea16a972a

[PATCH v2 17/70] mm/mmap: Change mmap_region to use maple tree state

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 1 + mm/mmap.c| 227 --- 2 files changed, 195 insertions(+), 33 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index c24c6f154c857..522f5fdfe5078 100644 --- a/lib

[PATCH v2 12/70] mm: Remove rb tree.

2021-01-12 Thread Liam R. Howlett
Remove the RB tree and start using the maple tree for vm_area_struct tracking. Signed-off-by: Liam R. Howlett --- arch/x86/kernel/tboot.c| 1 - drivers/firmware/efi/efi.c | 1 - include/linux/mm.h | 4 - include/linux/mm_types.h | 27 +- kernel/fork.c | 8

[PATCH v2 27/70] mm: Introduce vma_next() and vma_prev()

2021-01-12 Thread Liam R. Howlett
Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 35 ++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 680dcfe07dbb6..99b1dec97495a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h

[PATCH v2 14/70] mm/mmap: Change do_brk_flags() to expand existing VMA and add do_brk_munmap()

2021-01-12 Thread Liam R. Howlett
Avoid allocating a new VMA when it is not necessary. Expand or contract the existing VMA instead. This avoids unnecessary tree manipulations and allocations. Once the VMA is known, use it directly when populating to avoid unnecessary lookup work. Signed-off-by: Liam R. Howlett --- mm/mmap.c

[PATCH v2 15/70] mm/mmap: Change vm_brk_flags() to use mm_populate_vma()

2021-01-12 Thread Liam R. Howlett
Skip searching for the vma to populate after creating it by passing in a pointer. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f500d5e490f1c..cab665a6daa05 100644 --- a/mm/mmap.c +++ b/mm/mmap.c

[PATCH v2 00/70] RFC mm: Introducing the Maple Tree

2021-01-12 Thread Liam R. Howlett
0.00 * 0.00%* Amean System 8.07 ( 0.00%)7.92 * 1.83%* Amean Elapsed 23.46 ( 0.00%) 22.91 * 2.35%* Amean CPU 91.87 ( 0.00%) 92.33 * -0.51%* Liam R. Howlett (70): radix tree test suite: Enhancements for Maple Tree rad

  1   2   >