Re: [PATCH] perf bench futex: Define SYS_futex on 32-bit arches with 64-bit time_t
From: Arnaldo Carvalho de Melo
Date: Tue Sep 08 2026 - 17:01:06 EST
On Wed, Sep 02, 2026 at 10:04:14PM -0700, Ian Rogers wrote:
> On Wed, Sep 2, 2026 at 2:32 AM Nylon Chen <nylon.chen@xxxxxxxxxx> wrote:
> >
> > The kernel does not provide sys_futex() on 32-bit architectures that lack
> > a 32-bit time representation, such as riscv32. Consequently glibc does not
> > define SYS_futex there, only SYS_futex_time64, and perf bench's futex
> > benchmarks fail to build:
> >
> > bench/futex.h: In function 'futex_syscall':
> > bench/futex.h:77:18: error: 'SYS_futex' undeclared (first use in this function)
> >
> > Define SYS_futex as SYS_futex_time64 when only the latter is available.
> > The guard and its comment are taken verbatim from
> > tools/testing/selftests/futex/include/futextest.h, where they were added by
> > commit 04850819c65c ("selftests/futex: Define SYS_futex on 32-bit
> > architectures with 64-bit time_t"), keeping the two futex userspace headers
> > in sync.
> >
> > No timespec conversion helper is needed on top of this. glibc lays out
> > struct timespec on 32-bit architectures with 64-bit time_t as
> > { int64 tv_sec; int32 tv_nsec; 32-bit pad }, which is compatible with
> > struct __kernel_timespec, and every futex_wait()/futex_lock_pi()/
> > futex_wait_requeue_pi() call site in perf bench passes a NULL timeout
> > anyway, so no timespec ever crosses the syscall boundary here.
> >
> > Note that an earlier and more ambitious attempt at this was
> > commit c1ff12dac465 ("perf bench futex: Add support for 32-bit systems
> > with 64-bit time_t"), reverted by
> > commit ba4026b09d83 ("Revert "perf bench futex: Add support for 32-bit
> > systems with 64-bit time_t"") because it included linux/time_types.h,
> > which is unavailable on older distributions. This change deliberately
> > avoids that dependency and adds only the one guard needed to fix
> > compilation.
> >
> > Signed-off-by: Nylon Chen <nylon.chen@xxxxxxxxxx>
>
> Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Thanks, applied to perf-tools-next, for v7.4.
- Arnaldo