Re: Consistently use palloc_object() and palloc_array()
| От | Peter Eisentraut |
|---|---|
| Тема | Re: Consistently use palloc_object() and palloc_array() |
| Дата | |
| Msg-id | b480c84a-cfe3-453c-b882-ed45518d90f2@eisentraut.org обсуждение исходный текст |
| Ответ на | Re: Consistently use palloc_object() and palloc_array() (Thomas Munro <thomas.munro@gmail.com>) |
| Список | pgsql-hackers |
On 27.11.25 03:53, Thomas Munro wrote: > I wondered about this in the context of special alignment > requirements[1]. palloc() aligns to MAXALIGN, which we artificially > constrain for various reasons that we can't easily change (at least > not without splitting on-disk MAXALIGN from allocation MAXALIGN, and > if we do that we'll waste more memory). That's less than > alignof(max_align_t) on common systems, so then we have to do some > weird stuff to handle __int128 that doesn't fit too well into modern > <stdalign.h> thinking and also disables optimal codegen. On macOS ARM, I have MAXALIGN == alignof(max_align_t) == 8, but alignof(__int128) == 16. (macOS Intel has 16/16.) Also, as a consequence of that, the result of malloc() is not guaranteed to be aligned sufficiently for __int128 (need to use aligned_alloc()). So it seems to me that the current behavior of palloc() is pretty consistent with that.
В списке pgsql-hackers по дате отправления: