[RFC PATCH 06/13] arm64: percpu: Add infrastructure for preemptible this_cpu_*() ops

Peter Zijlstra peterz at infradead.org
Tue Jul 28 09:46:31 PDT 2026


On Tue, Jul 28, 2026 at 04:53:52PM +0100, Mark Rutland wrote:

> I was being lazy here relative to what we do for asm-extable.h. How
> about I match the pattern there, and have:
> 
> | #define PCPU_GPR_PCP_SHIFT              0
> | #define PCPU_GPR_PCP                    GENMASK(4, 0)
> | #define PCPU_GPR_OFF_SHIFT              5
> | #define PCPU_GPR_OFF                    GENMASK(9, 5)
> | #define PCPU_GPR_ADDR_SHIFT             10
> | #define PCPU_GPR_ADDR                   GENMASK(14, 10)
> | 
> | #define __VAL_PCPU_GPRS(pcp, off, addr)                                                 \
> |         "("                                                                             \
> |                 "(.L__gpr_num_" pcp  " << " __stringify(PCPU_GPR_PCP_SHIFT) ") | "      \
> |                 "(.L__gpr_num_" off  " << " __stringify(PCPU_GPR_OFF_SHIFT) ") | "      \
> |                 "(.L__gpr_num_" addr " << " __stringify(PCPU_GPR_ADDR_SHIFT) ")"       \
> |         ")"
> 
> ... if that's any better?

#define PCPU_GPR_BITS			5
#define __PCPU_GPR_MASK(_shift)		GENMASK((_shift+PCPU_GPR_BITS-1), _shift)

#define PCPU_GPR_PCP_SHIFT              (0*PCPU_GPR_BITS)
#define PCPU_GPR_OFF_SHIFT              (1*PCPU_GPR_BITS)
#define PCPU_GPR_ADDR_SHIFT             (2*PCPU_GPR_BITS)

#define PCPU_GPR_PCP 			__PCPU_GPR_MASK(PCPU_GPR_PCP_SHIFT)
#define PCPU_GPR_OFF 			__PCPU_GPR_MASK(PCPU_GPR_OFF_SHIFT)
#define PCPU_GPR_ADDR 			__PCPU_GPR_MASK(PCPU_GPR_ADDR_SHIFT)

?



More information about the linux-arm-kernel mailing list