Re: [PATCH v3] xfs: Use try_cmpxchg() in xlog_cil_insert_pcp_aggregate()
From: Dave Chinner
Date: Mon Sep 23 2024 - 18:53:17 EST
On Mon, Sep 23, 2024 at 02:22:17PM +0200, Uros Bizjak wrote:
> Use !try_cmpxchg instead of cmpxchg (*ptr, old, new) != old in
> xlog_cil_insert_pcp_aggregate(). x86 CMPXCHG instruction returns
> success in ZF flag, so this change saves a compare after cmpxchg.
>
> Also, try_cmpxchg implicitly assigns old *ptr value to "old" when
> cmpxchg fails. There is no need to re-read the value in the loop.
>
> Note that the value from *ptr should be read using READ_ONCE to
> prevent the compiler from merging, refetching or reordering the read.
>
> No functional change intended.
>
> Signed-off-by: Uros Bizjak <ubizjak@xxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Cc: Chandan Babu R <chandan.babu@xxxxxxxxxx>
> Cc: "Darrick J. Wong" <djwong@xxxxxxxxxx>
Looks fine.
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
--
Dave Chinner
david@xxxxxxxxxxxxx