[PATCH 2/2] kselftest/arm64: mte: Skip the hugetlb tests if MTE not supported on such mappings
Yang Shi
yang at os.amperecomputing.com
Fri Feb 21 09:22:35 PST 2025
On 2/21/25 1:33 AM, Catalin Marinas wrote:
> While the kselftest was added at the same time with the kernel support
> for MTE on hugetlb mappings, the tests may be run on older kernels. Skip
> the tests if PROT_MTE is not supported on MAP_HUGETLB mappings.
>
> Fixes: 27879e8cb6b0 ("selftests: arm64: add hugetlb mte tests")
> Cc: Yang Shi <yang at os.amperecomputing.com>
> Reported-by: Naresh Kamboju <naresh.kamboju at linaro.org>
> Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
> ---
> .../selftests/arm64/mte/check_hugetlb_options.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
Reviewed-by: Yang Shi <yang at os.amperecomputing.com>
>
> diff --git a/tools/testing/selftests/arm64/mte/check_hugetlb_options.c b/tools/testing/selftests/arm64/mte/check_hugetlb_options.c
> index 11f812635b51..3bfcd3848432 100644
> --- a/tools/testing/selftests/arm64/mte/check_hugetlb_options.c
> +++ b/tools/testing/selftests/arm64/mte/check_hugetlb_options.c
> @@ -227,6 +227,8 @@ static int check_child_hugetlb_memory_mapping(int mem_type, int mode, int mappin
> int main(int argc, char *argv[])
> {
> int err;
> + void *map_ptr;
> + unsigned long map_size;
>
> err = mte_default_setup();
> if (err)
> @@ -243,6 +245,15 @@ int main(int argc, char *argv[])
> return KSFT_FAIL;
> }
>
> + /* Check if MTE supports hugetlb mappings */
> + map_size = default_huge_page_size();
> + map_ptr = mmap(NULL, map_size, PROT_READ | PROT_MTE,
> + MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
> + if (map_ptr == MAP_FAILED)
> + ksft_exit_skip("PROT_MTE not supported with MAP_HUGETLB mappings\n");
> + else
> + munmap(map_ptr, map_size);
> +
> /* Set test plan */
> ksft_set_plan(12);
>
More information about the linux-arm-kernel
mailing list