Re: AIX support
Heikki Linnakangas <hlinnaka@iki.fi>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Restore AIX support.
- 4a1b05caa55d 19 (unreleased) landed
-
pg_createsubscriber: Improve error messages.
- 898c131b58a0 18.0 cited
-
Use <stdint.h> and <inttypes.h> for c.h integers.
- 962da900ac8f 18.0 cited
-
Stabilize jsonb_path_query test case.
- af2115226831 18.0 cited
-
Fix C23 compiler warning
- d2b4b4c2259e 18.0 cited
-
pg_stat_statements: Add tests for nested queries with level tracking
- 45e0ba30fc40 18.0 cited
-
Add missing newline at the end of index_including.sql
- 54b69f1bd730 17.0 cited
-
Remove AIX support
- 0b16bb8776bb 17.0 cited
-
Fix s_lock.h PPC assembly code to be compatible with native AIX assembler.
- c41a1215f049 9.6.0 cited
-
Use a non-locking initial test in TAS_SPIN on PPC.
- bc2a050d4097 9.2.0 cited
-
Use LWSYNC in place of SYNC/ISYNC in PPC spinlocks, where possible.
- 631beeac3598 9.2.0 cited
-
Use mutex hint bit in PPC LWARX instructions, where possible.
- 5cfa8dd3007d 9.2.0 cited
-
Adjust TAS assembly as per recent discussions: use "+m"(*lock) everywhere
- 109867748259 8.0.0 cited
-
Apple's assembler likes the inlined TAS syntax too, so no reason to
- f9ba0a7fe563 7.4.1 cited
-
Tighten up register usage for inline PPC version of tas().
- eb5e4c58d137 7.4.1 cited
-
Put the isync where it's supposed to be.
- cd35d601b859 7.4.1 cited
-
> > I'll re-check that with the ppc architecture guy here.
- ceb4f5ea9c2c 7.4.1 cited
-
Fix PPC s_lock operations to work correctly on multi-CPU machines.
- 7233aae50bea 7.3.1 cited
-
I tried to build PostgreSQL with the following step to see backends hung
- 50938576d482 7.3.1 cited
-
Complete merge of all old man page information.
- f2f43efbe1d5 7.1.1 cited
-
s_lock aix patch.
- e3b06a871b63 7.1.1 cited
On 11/09/2024 15:38, Srirama Kucherlapati wrote: >> I still don't understand. We have Linux powerpc systems running >> happily in the buildfarm. They are happy with the current spinlock >> implementation. Why is this needed? What happens without it? > > Not sure, by the time the below commits were made if there was a > consideration to use the gcc routines. The PPC asm code was originally written in 2002, and the first use of __sync_lock_test_and_set(), for ARM, appeared in 2012. The commit that made __sync_lock_test_and_set() be chosen automatically for platforms that don't specify anything else was added in 2022. > I tried to replace the AIX asm (under__ppc__ macro) with the gcc > routine __sync_lock_test_and_set(), and all the buildfarm tests > passed. Attached patch and the buildfarm output. Please let me know > your feedback. Ok, if we don't need the assembler code at all, that's good. A patch to introduce AIX support should not change it for non-AIX powerpc systems though. That might be a good change, but would need to be justified separately, e.g. by some performance testing, and should be a separate patch. If you make no changes to s_lock.h at all, will it work? Why not? You said earlier: > I mean this part of the code is needed as this is specific to AIX kernel memory > operation which is different from __sync_lock_test_and_set(). > > I would like to mention that the changes made in src/include/storage/s_lock.h > are pretty much required and need to be operated in assemble specific to IBM > Power architecture. Was that earlier statement incorrect? Is the manual wrong or outdated or not applicable to us? Moving on.. Do you still need mkldexport.sh? Surely there's a better way to do that in year 2024. Some quick googling says there's a '-bexpall' option to 'ld', which kind of sounds like what we want. Will that work? How do other programs do this? -- Heikki Linnakangas Neon (https://neon.tech)