Re: [PATCH] riscv: add ntl_hints.h for non-temporal locality hints

Vivian Wang <[email protected]> Tue, 4 Aug 2026 07:31:33 +0800
Newsgroups org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 8/4/26 06:55, Omer El Idrissi wrote:
> Provides asm volatile wrappers for all NTL hint variants
> (P1, PALL, S1, ALL) defined by the Zihintntl extension.

Doesn't seem to be used anywhere? That's a NAK from me.

> These hints request non-temporal caching behaviour for subsequent
> loads and stores.
>
> The new header falls under the existing riscv arch maintainers
> in MAINTAINERS, so no separate entry needed.
>
> Signed-off-by: Omer El Idrissi <[email protected]>
> ---
>  arch/riscv/include/asm/ntl_hints.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>  create mode 100644 arch/riscv/include/asm/ntl_hints.h
>
> diff --git a/arch/riscv/include/asm/ntl_hints.h b/arch/riscv/include/asm/ntl_hints.h
> new file mode 100644
> index 000000000000..0c51cb8b49c2
> --- /dev/null
> +++ b/arch/riscv/include/asm/ntl_hints.h
> @@ -0,0 +1,11 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef _ASM_RISCV_NTL_HINTS_H
> +#define _ASM_RISCV_NTL_HINTS_H
> +
> +#define ntl_all()	({ __asm__ __volatile__("add x0, x0, x5" ::: ); })
> +#define ntl_p1()	({ __asm__ __volatile__("add x0, x0, x2" ::: ); })
> +#define ntl_pall()	({ __asm__ __volatile__("add x0, x0, x3" ::: ); })
> +#define ntl_s1()	({ __asm__ __volatile__("add x0, x0, x4" ::: ); })

And there's no way these would correctly do anything anyway. The
non-temporal hints must come exactly before a load instruction, which
your asm blocks don't provide.

> +
> +#endif /* _ASM_RISCV_NTL_HINTS_H */

If you need this anywhere, roll this into the same patch series where
you use these hints. And you want to be sure to use them *correctly*.

Vivian "dramforever" Wang



_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv