[PATCH] Native spinlock support on RISC-V

Marek Szuba <marecki@gentoo.org>

From: Marek Szuba <marecki@gentoo.org>
To: pgsql-hackers@postgresql.org
Date: 2021-08-13T11:54:52Z
Lists: pgsql-hackers

Attachments

Hello,

The attached patch adds native spinlock support to PostgreSQL on RISC-V 
systems. As suspected by Richard W.M. Jones of Red Hat back in 2016, the 
__sync_lock_test_and_set() approach applied on arm and arm64 works here 
as well.

Tested against PostgreSQL 13.3 on a physical rv64gc system (BeagleV 
Starlight beta board) - builds and installs fine, all tests pass. From 
what I can see in gcc documentation this should in theory work on rv32 
(and possibly rv128) as well, therefore the patch as it stands covers 
all RISC-V systems (i.e. doesn't check the value of __risc_xlen) - but I 
haven't confirmed this experimentally.

-- 
MS

Commits

  1. Add RISC-V spinlock support in s_lock.h.