Re: Keep elog(ERROR) and ereport(ERROR) calls in the cold path
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Andres Freund <andres@anarazel.de>,
PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2020-09-23T06:07:10Z
Lists: pgsql-hackers
On 2020-09-22 22:42, David Rowley wrote: > On Tue, 22 Sep 2020 at 19:08, David Rowley <dgrowleyml@gmail.com> wrote: >> I ran another scale=5 TPCH benchmark on v4 against f859c2ffa using gcc >> 9.3. I'm unable to see any gains with this, however, the results were >> pretty noisy. I only ran pgbench for 60 seconds per query. I'll likely >> need to run that a bit longer. I'll do that tonight. > > I've attached the results of a TPCH scale=5 run master (f859c2ffa) vs > master + elog_ereport_attribute_cold_v4.patch > > It does not look great. The patched version seems to have done about > 1.17% less work than master did. I wonder how much benefit you'd get from a) compiling with -O3 instead of -O2, or b) compiling with profile-driven optimization I think that would indicate a target and/or a ceiling of what we should be expecting from hot/cold/likely/unlikely optimization techniques like this. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Stop gap fix for __attribute__((cold)) compiler bug in MinGW 8.1
- 687f61634475 14.0 landed
-
Tidy up definitions of pg_attribute_hot and pg_attribute_cold
- b0727ae99b70 14.0 landed
-
Fix unportable usage of __has_attribute
- 1fa22a43a56e 14.0 landed
-
Improve compiler code layout in elog/ereport ERROR calls
- 913ec71d682e 14.0 landed
-
Define pg_attribute_cold and pg_attribute_hot macros
- 697e1d02f53f 14.0 landed