tools-add-skeleton-code-for-userland-testing-of-vma-logic.patch removed from -mm tree
The quilt patch titled
Subject: tools: add skeleton code for userland testing of VMA logic
has been removed from the -mm tree. Its filename was
tools-add-skeleton-code-for-userland-testing-of-vma-logic.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Lorenzo Stoakes <[email protected]>
Subject: tools: add skeleton code for userland testing of VMA logic
Date: Mon, 29 Jul 2024 12:50:41 +0100
Establish a new userland VMA unit testing implementation under tools/testing which utilises existing logic providing maple tree support in userland utilising the now-shared code previously exclusive to radix tree testing.
This provides fundamental VMA operations whose API is defined in mm/vma.h, while stubbing out superfluous functionality.
This exists as a proof-of-concept, with the test implementation functional and sufficient to allow userland compilation of vma.c, but containing only cursory tests to demonstrate basic functionality.
---
MAINTAINERS | 1 tools/testing/vma/.gitignore | 7 tools/testing/vma/Makefile | 16 tools/testing/vma/linux/atomic.h | 12 tools/testing/vma/linux/mmzone.h | 38 + tools/testing/vma/vma.c | 207 ++++++ tools/testing/vma/vma_internal.h | 882 +++++++++++++++++++++++++++++ 7 files changed, 1163 insertions(+)
MAINTAINERS renamed from MAINTAINERS~tools-add-skeleton-code-for-userland-testing-of-vma-logic +1 -0
@@ -24423,6 +24423,7 @@ T: git git://git.kernel.org/pub/scm/linu F: mm/vma.c F: mm/vma.h F: mm/vma_internal.h +F: tools/testing/vma/ VMALLOC M: Andrew Morton <[email protected]>
tools/testing/vma/.gitignore new file +7 -0
@@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only +generated/bit-length.h +generated/map-shift.h +generated/autoconf.h +idr.c +radix-tree.c +vma
tools/testing/vma/linux/atomic.h new file +12 -0
@@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef _LINUX_ATOMIC_H +#define _LINUX_ATOMIC_H + +#define atomic_t int32_t +#define atomic_inc (x) uatomic_inc(x) +#define atomic_read (x) uatomic_read(x) +#define atomic_set (x, y) do {} while (0) +#define U8_MAX UCHAR_MAX + +#endif /* _LINUX_ATOMIC_H */
tools/testing/vma/linux/mmzone.h new file +38 -0
@@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef _LINUX_MMZONE_H +#define _LINUX_MMZONE_H + +#include <linux/atomic.h> + +struct pglist_data *first_online_pgdat (void ); +struct pglist_data *next_online_pgdat (struct pglist_data *pgdat); + +#define for_each_online_pgdat (pgdat) \ + for (pgdat = first_online_pgdat(); \ + pgdat; \ + pgdat = next_online_pgdat(pgdat)) + +enum zone_type { + __MAX_NR_ZONES +}; + +#define MAX_NR_ZONES __MAX_NR_ZONES +#define MAX_PAGE_ORDER 10 +#define MAX_ORDER_NR_PAGES (1 << MAX_PAGE_ORDER) + +#define pageblock_order MAX_PAGE_ORDER +#define pageblock_nr_pages BIT(pageblock_order) +#define pageblock_align (pfn) ALIGN((pfn), pageblock_nr_pages) +#define pageblock_start_pfn (pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) + +struct zone { +atomic_long_t managed_pages; +}; + +typedef struct pglist_data { +struct zone node_zones[MAX_NR_ZONES ]; + +}pg_data_t ; + +#endif /* _LINUX_MMZONE_H */
tools/testing/vma/Makefile new file +16 -0
@@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +.PHONY: default + +default: vma + +include ../shared/shared.mk + +OFILES = $(SHARED_OFILES) vma.o maple-shim.o +TARGETS = vma + +vma: $(OFILES) vma_internal.h ../../../mm/vma.c ../../../mm/vma.h + $(CC) $(CFLAGS) -o $@ $(OFILES) $(LDLIBS) + +clean: + $(RM) $(TARGETS) *.o radix-tree.c idr.c generated/map-shift.h generated/bit-length.h generated/autoconf.h
tools/testing/vma/vma.c new file +207 -0
207 lines not on this page · raw message
tools/testing/vma/vma_internal.h new file +882 -0
882 lines not on this page · raw message
_
Patches currently in -mm which might be from [email protected] are
tools-improve-vma-test-makefile.patch tools-add-vma-merge-tests.patch mm-introduce-vma_merge_struct-and-abstract-vma_mergevma_modify.patch mm-remove-duplicated-open-coded-vma-policy-check.patch mm-abstract-vma_expand-to-use-vma_merge_struct.patch mm-avoid-using-vma_merge-for-new-vmas.patch mm-make-vma_prepare-and-friends-static-and-internal-to-vmac.patch mm-introduce-commit_merge-abstracting-final-commit-of-merge.patch mm-refactor-vma_merge-into-modify-only-vma_merge_existing_range.patch mm-rework-vm_ops-close-handling-on-vma-merge.patch