Thread

Commits

  1. Declare aarch64 has single copy atomicity for 8 byte values.

  1. Declare PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY for aarch64

    Yura Sokolov <y.sokolov@postgrespro.ru> — 2022-03-16T12:32:35Z

    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.sokolov@postgrespro.ru
    funny.falcon@gmail.com
    
  2. Re: Declare PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY for aarch64

    Thomas Munro <thomas.munro@gmail.com> — 2022-03-18T00:50:49Z

    On Thu, Mar 17, 2022 at 1:32 AM Yura Sokolov <y.sokolov@postgrespro.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.