Re: removing volatile qualifiers from lwlock.c

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: removing volatile qualifiers from lwlock.c
Date: 2014-09-19 17:58:17
Message-ID: CA+TgmoYmrmhOwZVBqpq9YLKKExRks4EOk_aFjP1UvgD7EE_fDw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Sep 17, 2014 at 7:45 AM, Andres Freund <andres(at)2ndquadrant(dot)com> wrote:
> I just tried this on my normal x86 workstation. I applied your lwlock
> patch and ontop I removed most volatiles (there's a couple still
> required) from xlog.c. Works for 100 seconds. Then I reverted the above
> commits. Breaks within seconds:
> master:
> LOG: request to flush past end of generated WAL; request 2/E5EC3DE0, currpos 2/E5EC1E60
> standby:
> LOG: record with incorrect prev-link 4/684C3108 at 4/684C3108
> and similar.
>
> So at least for x86 the compiler barriers are obviously required and
> seemingly working.

Oh, that's great. In that case I think I should go ahead and apply
that patch in the hopes of turning up any systems where the barriers
aren't working properly yet. Although it would be nice to know
whether it breaks with *only* the lwlock.c patch.

> I've attached the very quickly written xlog.c de-volatizing patch.

I don't have time to go through this in detail, but I don't object to
you applying it if you're confident you've done it carefully enough.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Gierth 2014-09-19 18:04:11 Re: Final Patch for GROUPING SETS
Previous Message Michael Paquier 2014-09-19 17:57:44 Re: CreateEventTrigStmt copy fix