All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Ankur Arora" <ankur.a.arora@oracle.com>
Cc: bpf@vger.kernel.org
Subject: Re: [PATCH v12 13/15] arm64/delay: enable testing smp_cond_load_relaxed_timeout()
Date: Mon, 08 Jun 2026 08:32:06 +0000	[thread overview]
Message-ID: <20260608083206.CA8001F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260608080440.127491-14-ankur.a.arora@oracle.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The new generic smp_cond_load_relaxed_timeout() and atomic timeout APIs fail to link in loadable modules on ARM64 when KUnit is disabled due to conditionally exported backend functions.
--

commit b5a10ff859d6e282c17d5ed23e24d2c5703beb7a
Author: Ankur Arora <ankur.a.arora@oracle.com>

arm64/delay: enable testing smp_cond_load_relaxed_timeout()

This commit enables the barrier tests to be built as a module by exporting
__delay_cycles and arch_timer_evtstrm_available specifically for KUnit
environments.

> diff --git a/arch/arm64/lib/delay.c b/arch/arm64/lib/delay.c
> --- a/arch/arm64/lib/delay.c
> +++ b/arch/arm64/lib/delay.c
[ ... ]
> @@ -30,6 +31,7 @@ u64 notrace __delay_cycles(void)
>  	guard(preempt_notrace)();
>  	return __arch_counter_get_cntvct_stable();
>  }
> +EXPORT_SYMBOL_IF_KUNIT(__delay_cycles);

[Severity: Medium]
Does exporting this only for KUnit prevent normal kernel modules from using
the generic smp_cond_load_relaxed_timeout() macro?

Since smp_cond_load_relaxed_timeout() expands into inline code that calls
__delay_cycles(), a loadable module using this generic API will fail to link
due to an undefined symbol in production kernels where KUnit is disabled.
Should this be unconditionally exported, perhaps via EXPORT_SYMBOL_GPL?

[ ... ]
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
[ ... ]
> @@ -896,6 +897,7 @@ bool arch_timer_evtstrm_available(void)
>  	 */
>  	return cpumask_test_cpu(raw_smp_processor_id(), &evtstrm_available);
>  }
> +EXPORT_SYMBOL_IF_KUNIT(arch_timer_evtstrm_available);

[Severity: Medium]
Similarly, does conditionally exporting this feature-check break the generic
barrier timeout primitives for modules?

Like __delay_cycles(), arch_timer_evtstrm_available() is called by the
inline implementations of the atomic timeout APIs. Leaving this unexported
for standard kernel configurations could cause link errors for any driver
that uses atomic_cond_read_acquire_timeout() or similar macros.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260608080440.127491-1-ankur.a.arora@oracle.com?part=13

  reply	other threads:[~2026-06-08  8:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-08  8:04 [PATCH v12 00/15] barrier: Add smp_cond_load_{relaxed,acquire}_timeout() Ankur Arora
2026-06-08  8:04 ` [PATCH v12 01/15] asm-generic: barrier: Add smp_cond_load_relaxed_timeout() Ankur Arora
2026-06-08  8:25   ` sashiko-bot
2026-06-08  8:53   ` bot+bpf-ci
2026-06-08  8:04 ` [PATCH v12 02/15] arm64: barrier: Support smp_cond_load_relaxed_timeout() Ankur Arora
2026-06-08  8:31   ` sashiko-bot
2026-06-08  8:53   ` bot+bpf-ci
2026-06-08  8:04 ` [PATCH v12 03/15] arm64/delay: move some constants out to a separate header Ankur Arora
2026-06-08  8:22   ` sashiko-bot
2026-06-08  8:04 ` [PATCH v12 04/15] arm64: support WFET in smp_cond_load_relaxed_timeout() Ankur Arora
2026-06-08  8:27   ` sashiko-bot
2026-06-08  8:04 ` [PATCH v12 05/15] arm64: rqspinlock: Remove private copy of smp_cond_load_acquire_timewait() Ankur Arora
2026-06-08  8:19   ` sashiko-bot
2026-06-08  8:53   ` bot+bpf-ci
2026-06-08  8:04 ` [PATCH v12 06/15] asm-generic: barrier: Add smp_cond_load_acquire_timeout() Ankur Arora
2026-06-08  8:27   ` sashiko-bot
2026-06-08  8:04 ` [PATCH v12 07/15] atomic: Add atomic_cond_read_*_timeout() Ankur Arora
2026-06-08  8:23   ` sashiko-bot
2026-06-08  8:04 ` [PATCH v12 08/15] locking/atomic: scripts: build atomic_long_cond_read_*_timeout() Ankur Arora
2026-06-08  8:04 ` [PATCH v12 09/15] bpf/rqspinlock: switch check_timeout() to a clock interface Ankur Arora
2026-06-08  8:04 ` [PATCH v12 10/15] bpf/rqspinlock: Use smp_cond_load_acquire_timeout() Ankur Arora
2026-06-08  9:04   ` bot+bpf-ci
2026-06-08  8:04 ` [PATCH v12 11/15] sched: add need-resched timed wait interface Ankur Arora
2026-06-08  8:04 ` [PATCH v12 12/15] cpuidle/poll_state: Wait for need-resched via tif_need_resched_relaxed_wait() Ankur Arora
2026-06-08  8:31   ` sashiko-bot
2026-06-08  8:04 ` [PATCH v12 13/15] arm64/delay: enable testing smp_cond_load_relaxed_timeout() Ankur Arora
2026-06-08  8:32   ` sashiko-bot [this message]
2026-06-08  8:04 ` [PATCH v12 14/15] barrier: add tests for smp_cond_load_*_timeout() Ankur Arora
2026-06-08  8:04 ` [PATCH v12 15/15] barrier: add clock tests for smp_cond_load_relaxed_timeout() Ankur Arora
2026-06-08  8:34   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260608083206.CA8001F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=ankur.a.arora@oracle.com \
    --cc=bpf@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.