Re: [BUGS] BUG #14897: Segfault on statitics SQL request
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Andres Freund <andres@anarazel.de>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Vincent Lachenal <vincent.lachenal@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@postgresql.org>
Date: 2017-11-14T05:20:25Z
Lists: pgsql-bugs
On Tue, Nov 14, 2017 at 12:31 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > I wrote: >> So what I am now thinking is that the only practical answer is to stop >> gcc from believing that it is safe to use 16-aligned instructions on >> int128's. (Some reading on the net suggests that the actual performance >> penalty for that is minimal anyway on modern Intel chips.) > > Concretely, the attached patch fixes it for me. I've verified by > examining the assembly code that this stops gcc from using movdqa or > movaps in numeric.c, except for one place where it apparently can > prove that it's dealing with a sufficiently-aligned local variable. I am not seeing any difference in the assembly code generated by gcc -S with and without your patch. Perhaps I am missing something? What are you actually seeing? > As I said before, I don't like moving the int128 typedefs into a section > where they don't belong, but that's just cosmetic --- this is good enough > for testing.numeric.s.HEAD Section 3 could be moved after the section 4 listing the alignment macros. It seems that it won't hurt to back-patch the refactoring as well. -- Michael
Commits
-
Prevent int128 from requiring more than MAXALIGN alignment.
- d4e38489f98a 9.5.11 landed
- 619a8c47da72 10.2 landed
- 4a15f87d2277 9.6.7 landed
- 7518049980be 11.0 landed
-
Rearrange c.h to create a "compiler characteristics" section.
- cfc157078f2e 9.5.11 landed
- a8910506757c 10.2 landed
- 6c35b3aa465e 9.6.7 landed
- 91aec93e6089 11.0 landed