↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

把原子操作搬到 C11 stdatomic 的第四版补丁 RSS

Greg Burd 提交第四版补丁,把 port/atomics.h 重新实现在 C11 <stdatomic.h> 之上,由 -Duse_stdatomic 选项启用,默认关闭。关键发现是读操作必须用 seq_cst 而不是 relaxed,因为传统 volatile 读隐含的编译器排序需要等价保证,这由 RISC-V 上并行哈希连接的失败测试验证。写操作用 relaxed,避开 aarch64 上约 5 倍的争用开销。

发布于 2026-09-10T10:59:46.053345Z · Greg Burd · PostgreSQL hackers
原子操作 可移植性

Greg Burd 提交第四版补丁,把 port/atomics.h 重新实现在 C11 <stdatomic.h> 之上,由 -Duse_stdatomic 选项启用,默认关闭。关键发现是读操作必须用 seq_cst 而不是 relaxed,因为传统 volatile 读隐含的编译器排序需要等价保证,这由 RISC-V 上并行哈希连接的失败测试验证。写操作用 relaxed,避开 aarch64 上约 5 倍的争用开销。

Greg Burd 提交第四版补丁,把 port/atomics.h 重新实现在 C11 <stdatomic.h> 之上,由 -Duse_stdatomic 选项启用,默认关闭。关键发现是读操作必须用 seq_cst 而不是 relaxed,因为传统 volatile 读隐含的编译器排序需要等价保证,这由 RISC-V 上并行哈希连接的失败测试验证。写操作用 relaxed,避开 aarch64 上约 5 倍的争用开销。

原始来源 ↗

来源记录
  • center.info_item · 3a766d898e44f7bd · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 3a766d898e44f7bd · 2026-10-03T04:08:55.967155Z