On Wed, Sep 10, 2025 at 08:46:50PM -0700, Ankur Arora wrote: > This series adds waited variants of the smp_cond_load() primitives: > smp_cond_load_relaxed_timeout(), and smp_cond_load_acquire_timeout(). > > As the name suggests, the new interfaces are meant for contexts where > you want to wait on a condition variable for a finite duration. This > is easy enough to do with a loop around cpu_relax() and a periodic > timeout check (pretty much what we do in poll_idle(). However, some > architectures (ex. arm64) also allow waiting on a cacheline. So, > > smp_cond_load_relaxed_timeout(ptr, cond_expr, time_check_expr) > smp_cond_load_acquire_timeout(ptr, cond_expr, time_check_expr) > > do a mixture of spin/wait with a smp_cond_load() thrown in. > > The added parameter, time_check_expr, determines the bail out condition. > > There are two current users for these interfaces. poll_idle() with > the change: > > poll_idle() { > ... > time_end = local_clock_noinstr() + cpuidle_poll_time(drv, dev); > > raw_local_irq_enable(); > if (!current_set_polling_and_test()) > flags = smp_cond_load_relaxed_timeout(¤t_thread_info()->flags, > (VAL & _TIF_NEED_RESCHED), > ((local_clock_noinstr() >= time_end))); > dev->poll_time_limit = !(flags & _TIF_NEED_RESCHED); > raw_local_irq_disable(); > ... > } You should have added this as a patch in the series than include the implementation in the cover letter. -- Catalin