Re: vectorized CRC on ARM64

From: John Naylor <johncnaylorls(at)gmail(dot)com>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: vectorized CRC on ARM64
Date: 2026-04-02 13:16:27
Message-ID: CANWCAZaRuJC6vb+VKqimeEPLV-d_fUk8AO1-jL1Pwx4STM4J+A@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Apr 1, 2026 at 10:24 PM Nathan Bossart <nathandbossart(at)gmail(dot)com> wrote:
> ... or maybe we should just use __attribute__((target("..."))) for the
> PMULL stuff. That wouldn't work well for clang versions before 16, but it
> at least wouldn't regress anything. They just wouldn't get PMULL support.

Okay, that works as far back as gcc 6.3, so v4 does it that way. The
attribute doesn't seem to be necessary on the inline helpers for
production builds, but they're needed to work with -O0.

Also
- removed the term 'intrinsics' from config variables, since we're not
checking those
- removed the crc intrinsic from the pmull tests
- fixed a failure to restore CFLAGS
- fixed it to work with +crc CFLAGS

For some reason, my CI builds with MacOS are failing on v3 (v2 skipped
the runtime check to get some exposure on CI) with the following, and
running CI from my Github account fails as well, so it's not a
temporary glitch. Adding a __linux__ guard to the runtime check didn't
help, so not yet sure what to make of it.

3/382 setup - postgresql:initdb_cache TIMEOUT 300.51s killed by
signal 15 SIGTERM

--
John Naylor
Amazon Web Services

Attachment Content-Type Size
v4-0001-Compute-CRC32C-on-ARM-using-the-Crypto-Extension-.patch text/x-patch 16.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Japin Li 2026-04-02 13:20:43 Re: pg_get__*_ddl consolidation
Previous Message Fujii Masao 2026-04-02 13:16:16 Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion?