Re: [HACKERS] Deadlock in XLogInsert at AIX
Bernd Helmle <mailings@oopsware.de>
From: Bernd Helmle <mailings@oopsware.de>
To: "REIX, Tony" <tony.reix@atos.net>, Michael Paquier <michael.paquier@gmail.com>, Noah Misch <noah@leadboat.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Konstantin Knizhnik
<k.knizhnik@postgrespro.ru>, PostgreSQL Hackers
<pgsql-hackers@postgresql.org>, "OLIVA, PASCAL" <pascal.oliva@atos.net>,
"EMPEREUR-MOT, SYLVIE" <sylvie.empereur-mot@atos.net>
Date: 2018-01-17T11:32:29Z
Lists: pgsql-hackers
Attachments
- AIX_vs_LINUX_fastest.png (image/png)
- run_bench.sh (application/x-shellscript)
Am Dienstag, den 16.01.2018, 08:25 +0000 schrieb REIX, Tony: > I've been able to compare PostgreSQL compiled with XLC vs GCC 7.1 > and, using times outputs provided by PostgreSQL tests, XLC seems to > provide at least 8% more speed. We also plan to run professional > performance tests in order to compare PostgreSQL 10.1 on AIX vs > Linux/Power. I saw some 2017 performance slides, made with older > versions of PostgreSQL and XLC, that show bad PostgreSQL performance > on AIX vs Linux/Power, and I cannot believe it. We plan to > investigate this. I assume you are referring to the attached graph i've showed on PGConf.US 2017 ? The numbers we've got on that E850 machine (pgbench SELECT-only, scale 1000) weren't really good in comparison to Linux on the same machine. We tried many options to make the performance better, overall the graph shows the best performance from Linux *and* AIX with gcc. XL C We used some knobs to get the best out on AIX: export OBJECT_MODE=64; gcc -m64 ldedit -b forkpolicy:cor -b textpsize:64K -b datapsize:64K -b stackpsize:64K postgres export MALLOCOPTIONS=multiheap:16,considersize,pool,no_mallinfo schedo -p -o vpm_fold_policy=4 There are many other things you can tune on AIX, but they didn't seem to give the improvement we'd like to see.
Commits
-
For all ppc compilers, implement compare_exchange and fetch_add with asm.
- 30ee5d17c20d 13.0 landed
-
For PowerPC instruction "addi", use constraint "b".
- 930787c7fab9 9.4.25 landed
- af4477b00cf9 11.6 landed
- 62e881946c4d 9.5.20 landed
- 09d74aef33de 9.6.16 landed
- 083929372e04 10.11 landed
- ef13f914e6c2 12.1 landed
- 89b4d7744c80 13.0 landed
-
For all ppc compilers, implement pg_atomic_fetch_add_ with inline asm.
- e7ff59686eac 13.0 landed
-
Replace xlc __fetch_and_add() with inline asm.
- a1df9a015dac 9.6.16 landed
- 8972ac696665 10.11 landed
- 75941f257aac 9.5.20 landed
- 40ad4202513c 11.6 landed
- 1c6b62a7d0e5 12.0 landed
- dd50f1a43290 13.0 landed
-
Test pg_atomic_fetch_add_ with variable addend and 16-bit edge cases.
- e6a90ded5a6c 10.11 landed
- 8d32f82cbbbb 9.6.16 landed
- 4737d3a75b72 9.5.20 landed
- 5b5b0f721d9c 12.0 landed
- 585fc561f824 11.6 landed
- f380c5190134 13.0 landed