Re: riscv: abi/pointer_masking kselftest fails on ZPM-capable platforms (test expects PMLEN round-up without PR_TAGGED_ADDR_ENABLE)

Samuel Holland <[email protected]>
Newsgroups org.infradead.lists.linux-riscv
Message-ID <[email protected]>
Hi,

On 2026-08-22 1:08 AM, x jys wrote:
> Hi all,
> 
> I am an intern at KUBUDS Tech, a RISC-V International member
> organization. While building a local KernelCI-style testing pipeline
> for RISC-V (QEMU virt -cpu max, kernel v7.2.0-rc7, riscv defconfig),
> the tools/testing/selftests/riscv/abi/pointer_masking test fails every
> "constraint" assertion for PMLEN=1..16:
> 
>     not ok 5 PMLEN=1 constraint
>     ...
>     not ok 23 PMLEN=7 constraint
> 
> while the "validity" assertions pass. PR_SET_TAGGED_ADDR_CTRL returns 0
> for every requested PMLEN, but PR_GET_TAGGED_ADDR_CTRL always reports
> an effective PMLEN of 0.
> 
> Root cause appears to be a mismatch between the test's expectation and
> the kernel's semantics, both present in v7.2.0-rc7 and current master:
> 
> - test (test_pmlen): sets only the PMLEN field (without
>   PR_TAGGED_ADDR_ENABLE) and asserts the effective PMLEN is rounded up
>   to >= the requested value;
> 
> - kernel (arch/riscv/kernel/process.c, set_tagged_addr_ctrl): when
>   PR_TAGGED_ADDR_ENABLE is not set, resets pmlen to PMLEN_0 and returns
>   success. This comes from commit 3033b2b1e3 ("riscv: Reset pmm when
>   PR_TAGGED_ADDR_ENABLE is not set").
> 
> Why upstream CI does not see this: on platforms without the ZPM
> extension the kernel rejects the prctl, so the test takes the skip
> path. QEMU -cpu max emulates Smnpm/Ssnpm, which exposes the mismatch;
> most real hardware lacks ZPM.
> 
> Questions:
> 1. Is the intended semantics of PR_SET_TAGGED_ADDR_CTRL with only PMLEN
>    set (no ENABLE) to remember the rounded PMLEN, or to reset it to 0?
> 2. Depending on the answer, either the test should pass
>    PR_TAGGED_ADDR_ENABLE, or the kernel should keep the rounded PMLEN.

The test is correct here, and matches the original kernel semantics. The kernel
should be fixed by https://git.kernel.org/riscv/c/e2715cca37c2.

Regards,
Samuel


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.