[PATCH] riscv: hwprobe: Register unaligned probes before usermode

Nam Cao namcao at linutronix.de
Wed Jul 22 00:52:32 PDT 2026


"Rui Qi" <qirui.001 at bytedance.com> writes:
> The hwprobe vDSO data is populated by the first riscv_hwprobe syscall.
> Some values, such as MISALIGNED_VECTOR_PERF, may depend on the async
> vector unaligned access speed probe registered by
> check_unaligned_access_all_cpus().
>
> That initcall currently runs at late_initcall level. However,
> rootfs_initcall enables usermode helpers before late initcalls run, so an
> early helper can execute userspace and call riscv_hwprobe first.
>
> In that case complete_hwprobe_vdso_data() consumes the initial
> pending_boot_probes reference, populates the vDSO cache, and marks it
> ready before the later async probe is registered. The eventual probe
> result then cannot update the already-ready cache.
>
> Move check_unaligned_access_all_cpus() to fs_initcall_sync. This still
> runs after clocksource_done_booting(), so the ktime_get_mono_fast_ns()
> benchmark uses a stable clocksource, but it runs before rootfs_initcall
> enables usermode helpers.
>
> Any async hwprobe probe is therefore registered before userspace can
> trigger the one-time vDSO cache population.
>
> Fixes: 6455c6c11827 ("riscv: Clean up & optimize unaligned scalar access probe")
> Signed-off-by: Rui Qi <qirui.001 at bytedance.com>

Sounds reasonable.

Reviewed-by: Nam Cao <namcao at linutronix.de>



More information about the linux-riscv mailing list