[PATCH v16 00/16] barrier: Add smp_cond_load_{relaxed,acquire}_timeout()

Sahil Chandna sahilchandna at linux.microsoft.com
Thu Oct 29 21:37:54 PDT 2026


On Thu, Oct 29, 2026 at 12:31:09AM -0700, Ankur Arora wrote:
>
> Sahil Chandna <sahilchandna at linux.microsoft.com> writes:
>
> > On Fri, Oct 16, 2026 at 12:08:21AM -0700, Ankur Arora wrote:
> >> Hi,
> >>
> >> Changes in this version address sashiko comments [17]. The major change
> >> is the change in the exit path in __smp_cond_load_relaxed_timeout()
> >> which allows us to simplify providing ACQUIRE semantics in
> >> smp_cond_load_acquire_timeout():
> >>
> [ ... ]
> >>
> > Hi Ankur,
> >
> > I tested this patch series on an Azure Cobalt 100
> > (neoverse-n2 on 64-vCPU Hyper-V guest (Standard_D64ps_v6),
> > on v7.2.12 + this series + arm64 cpuidle-haltpoll enablement[1]
> >
> > cpuidle-haltpoll loaded with force=1, guest_halt_poll_ns=200000.
> >
> > Baseline: no cpuidle driver(only WFI).
> >
> > Workload: PostgreSQL 16.15/pgbench scale 100, client and server in
> > the same VM over a unix socket, with single run:
> >
> >             with (-S)                         TPC-B-like r/w
> > clients  base TPS  haltpoll lat avg   base TPS   haltpoll  lat avg
> >    2       38658     +89%   52->27us     5299     +86%    378->203us
> >    4       72987     +99%   55->28      10305     +87%    388->208
> >   16      300895     +91%   53->28      42035     +83%    381->208
> >   32      590987     +93%   55->28      78319     +85%    410->221
> >   64      987749      +0%   65->65     130675      +3%    490->474
> >
> > Tested-by: Sahil Chandna <sahilchandna at linux.microsoft.com>
>
> Thanks Sahil. That's very helpful. Btw what's the (-S) option with
> in your first heading?
>
Hi Ankur,

This is the -Select Only option running one statement per transaction,
more info captured in [1] [2].

TPC_B like runs small bank transfer transaction.
> Just to double check: was the VM  created with any special option
> such as kvm-arm.wfe_trap_policy?
>
No, the host in my case is Hyper-V. The cmdline does not have any idle
related parameters.
console=tty1 console=ttyAMA0 earlycon=pl011,0xeffec000 panic=-1
> --
> ankur
>
Regards,
Sahil

[1] https://www.postgresql.org/docs/16/pgbench.html#PGBENCH-OPTION-SELECT-ONLY
[2] https://www.postgresql.org/docs/16/pgbench.html#TRANSACTIONS-AND-SCRIPTS



More information about the linux-arm-kernel mailing list