On Tue, 10 May 2022 10:44:28 +0000 SeongJae Park <sj@xxxxxxxxxx> wrote: > On Wed, 4 May 2022 01:12:26 +0000 Liam Howlett <liam.howlett@xxxxxxxxxx> wrote: > > > From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx> > > > > This rather specialised walk can use the VMA iterator. If this proves to > > be too slow, we can write a custom routine to find the two largest gaps, > > but it will be somewhat complicated, so let's see if we need it first. > > > > Update the kunit test case to use the maple tree. This also fixes an > > issue with the kunit testcase not adding the last VMA to the list. > > > > Fixes: 17ccae8bb5c9 (mm/damon: add kunit tests) > > Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > Reviewed-by: SeongJae Park <sj@xxxxxxxxxx> > > --- > > mm/damon/vaddr-test.h | 37 +++++++++++------------------- > > mm/damon/vaddr.c | 53 ++++++++++++++++++++++--------------------- > > 2 files changed, 40 insertions(+), 50 deletions(-) > > > > diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h > > index 5431da4fe9d4..dbf2b8759607 100644 > > --- a/mm/damon/vaddr-test.h > > +++ b/mm/damon/vaddr-test.h > > @@ -13,34 +13,21 @@ > > #define _DAMON_VADDR_TEST_H > > > > #include <kunit/test.h> > > +#include "../../mm/internal.h" > > V9 maple tree patchset has moved the definition of vma_mas_store() from > internal.h to mmap.c, so inclusion of internal.h wouldn't needed here, right? > > If we end up moving the definitions back to internal.h, because this file is > under mm/damon/, we can also use shorter include path, "../internal.h". I put the vma_mas_store() and vma_mas_remove() declarations into include/linux/mm.h so yes, internal.h is no longer required. I queued a fixlet against damon-convert-__damon_va_three_regions-to-use-the-vma-iterator.patch --- a/mm/damon/vaddr-test.h~damon-convert-__damon_va_three_regions-to-use-the-vma-iterator-fix +++ a/mm/damon/vaddr-test.h @@ -13,7 +13,6 @@ #define _DAMON_VADDR_TEST_H #include <kunit/test.h> -#include "../../mm/internal.h" static void __link_vmas(struct maple_tree *mt, struct vm_area_struct *vmas, ssize_t nr_vmas) _