Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c)

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: Peter Smith <smithpb2250(at)gmail(dot)com>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c)
Date: 2022-08-02 11:55:59
Message-ID: CAEudQAqn6XDMh+cQ=j0ZuG4sJt-DXbdmDciUejzS3Ve_ghSn7A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Em seg., 1 de ago. de 2022 às 22:19, Peter Smith <smithpb2250(at)gmail(dot)com>
escreveu:

> On Tue, Aug 2, 2022 at 3:09 AM Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
> >
> > Em sáb., 16 de jul. de 2022 às 16:54, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
> escreveu:
> >>
> >>
> >>
> >> Em sáb, 16 de jul de 2022 2:58 AM, Peter Eisentraut <
> peter(dot)eisentraut(at)enterprisedb(dot)com> escreveu:
> >>>
> >>> On 11.07.22 21:06, Ranier Vilela wrote:
> >>> > Em qui., 7 de jul. de 2022 às 14:01, Ranier Vilela <
> ranier(dot)vf(at)gmail(dot)com
> >>> > <mailto:ranier(dot)vf(at)gmail(dot)com>> escreveu:
> >>> >
> >>> > Attached the v1 of your patch.
> >>> > I think that all is safe to switch MemSet by {0}.
> >>> >
> >>> > Here the rebased patch v2, against latest head.
> >>>
> >>> I have committed my patch with Álvaro's comments addressed
> >>
> >> I see.
> >> It's annoing that old compiler (gcc 4.7.2) don't handle this style.
> >>
> >>>
> >>> Your patch appears to add in changes that are either arguably out of
> >>> scope or would need further review (e.g., changing memset() calls,
> >>> changing the scope of some variables, changing places that need to
> worry
> >>> about padding bits). Please submit separate patches for those, and we
> >>> can continue the analysis.
> >>
> >> Sure.
> >
> > Hi, sorry for the delay.
> > Like how
> https://github.com/postgres/postgres/commit/9fd45870c1436b477264c0c82eb195df52bc0919
> > New attempt to remove more MemSet calls, that are safe.
> >
> > Attached v3 patch.
> >
> > regards,
> > Ranier Vilela
>
> Hi, I have not been closely following this thread, but it's starting
> to sound very deja-vu with something I proposed 3 years ago. See [1]
> "Make use of C99 designated initialisers for nulls/values arrays".
> That started off with lots of support, but then there was a suggestion
> that the {0} should be implemented as a macro, and the subsequent
> discussions about that macro eventually bikeshedded the patch to
> death.
>
> It might be a good idea if you check that old thread so you can avoid
> the same pitfalls. I hope you have more luck than I did ;-)
>
I see, thanks.
We are using only {0}, just to avoid these pitfalls.
All changes here are safe, because, the tradeoff is

MemSet with 0 to {0}

Any else is ignored.

The rest of the calls with MemSet are alignment and padding dependent, and
for now, will not be played.

regards,
Ranier Vilela

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2022-08-02 11:59:36 Re: Handle infinite recursion in logical replication setup
Previous Message houzj.fnst@fujitsu.com 2022-08-02 11:46:21 RE: Perform streaming logical transactions by background workers and parallel apply