| From: | Andres Freund <andres(at)anarazel(dot)de> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Vincent Lachenal <vincent(dot)lachenal(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org> |
| Subject: | Re: BUG #14897: Segfault on statitics SQL request |
| Date: | 2017-11-11 17:45:12 |
| Message-ID: | 20171111174512.ikd3zrx2i5ssxpww@alap3.anarazel.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On 2017-11-11 12:41:40 -0500, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > That's using SSE, which requires 16byte alignment IIRC. I think we need
> > a function that properly allocate int128 vars with the right alignment -
> > don't think we want to go for full 16byte alignment for everything.
>
> Yeah, changing MAXALIGN is out of the question. I'm thinking about
> another flag bit for MemoryContextAllocExtended. Do we need to think
> about other use-cases besides int128? Should we just force 16-byte
> alignment on all architectures, or does it need to be platform-specific?
I'm not sure we want to
a) Rely on one alignment being enough for everybody.
b) Additionally burden already hot code paths with a growing number of
alignment flag tests, and the necessary math.
How about a MemoryContextAllocAligned(context, size, alignto, flags)
that passes on most flags but adds the necessary overhead to size, and
padds the result appropriately?
Greetings,
Andres Freund
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2017-11-11 17:54:29 | Re: BUG #14897: Segfault on statitics SQL request |
| Previous Message | Tom Lane | 2017-11-11 17:41:40 | Re: BUG #14897: Segfault on statitics SQL request |