Declare PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY for aarch64

Lists: pgsql-hackers
From: Yura Sokolov <y(dot)sokolov(at)postgrespro(dot)ru>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org, Andres Freund <andres(at)anarazel(dot)de>
Subject: Declare PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY for aarch64
Date: 2022-03-16 12:32:35
Message-ID: [email protected]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Good day, hackers.

Architecture Reference Manual for ARMv8 B2.2.1 [1] states:

For explicit memory effects generated from an Exception level the
following rules apply:
- A read that is generated by a load instruction that loads a single
general-purpose register and is aligned to the size of the read in the
instruction is single-copy atomic.
- A write that is generated by a store instruction that stores a single
general-purpose register and is aligned to the size of the write in the
instruction is single-copy atomic.

So I believe it is safe to define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
for aarch64

[1] https://documentation-service.arm.com/static/61fbe8f4fa8173727a1b734e
https://developer.arm.com/documentation/ddi0487/latest

-------

regards

Yura Sokolov
Postgres Professional
y(dot)sokolov(at)postgrespro(dot)ru
funny(dot)falcon(at)gmail(dot)com

Attachment Content-Type Size
v0-0001-Declare-aarch64-has-single-copy-atomicity-for-8-b.patch text/x-patch 1.5 KB

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Yura Sokolov <y(dot)sokolov(at)postgrespro(dot)ru>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Declare PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY for aarch64
Date: 2022-03-18 00:50:49
Message-ID: CA+hUKGK=eeHw42wXak-zEYhWdcbwtedTAGt4rR-0i=AU+YUisg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Mar 17, 2022 at 1:32 AM Yura Sokolov <y(dot)sokolov(at)postgrespro(dot)ru> wrote:
> So I believe it is safe to define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
> for aarch64

Agreed, and pushed. There was another thread that stalled, so I added
a reference and a reviewer from that to your commit message.

This should probably also be set for RISCV64.