On 11/23/2017 11:04 PM, Tom Lane wrote:
Andres Freund <[email protected]> writes:
On 2017-11-23 22:34:57 +0100, Tomas Vondra wrote:
Hmmm, I see. Presumably adding this to GenerationChunk (similarly to what we
do in AllocChunkData) would address the issue:

#if MAXIMUM_ALIGNOF > 4 && SIZEOF_VOID_P == 4
Size            padding;
#endif

but I have no way to verify that (no access to such machine). I wonder why
SlabChunk doesn't need to do that (perhaps a comment explaining that would
be appropriate?).

Can't you just compile pg on a 32bit system and manually define MAXALIGN
to 8 bytes?

I pushed a patch that computes how much padding to add and adds it.
(It might not really work if size_t and void * are different sizes,
because then there could be additional padding in the struct; but
that seems very unlikely.)


Thanks. Do we need to do something similar to the other memory contexts? I see Slab does not do this at all (assuming it's not necessary), and AllocSet does this in a different way (which seems a bit strange).

regards
Tomas

Reply via email to