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-11-03T07:08:14Z
Lists: pgsql-hackers
On 2020-09-29 11:26, David Rowley wrote:
> On Wed, 23 Sep 2020 at 08:42, David Rowley <dgrowleyml@gmail.com> 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've marked this patch back as waiting for review. It would be good if
> someone could run some tests on some intel hardware and see if they
> can see any speedup.

What is the way forward here?  What exactly would you like to have tested?

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Stop gap fix for __attribute__((cold)) compiler bug in MinGW 8.1

  2. Tidy up definitions of pg_attribute_hot and pg_attribute_cold

  3. Fix unportable usage of __has_attribute

  4. Improve compiler code layout in elog/ereport ERROR calls

  5. Define pg_attribute_cold and pg_attribute_hot macros