* 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
* 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();
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
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 +++
* 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
* 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
* 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?
>
* 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
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
* 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,
* 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
* 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
* 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
+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.
>
* 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)
* 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
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
* 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.
> >>
> >>
* 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
> >> ++
* 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
* 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
* 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
* 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
:
> > > 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
* 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
* 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"
&
* 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"
&
* 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
* 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
* 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
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
* 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
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
* 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
* 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.
> >
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 - 100 of 151 matches
Mail list logo