Re: pgsql: Generational memory allocator
От | Tomas Vondra |
---|---|
Тема | Re: pgsql: Generational memory allocator |
Дата | |
Msg-id | ce281fac-b6f5-2d86-a9eb-4cc04d5d4bce@fuzzy.cz обсуждение исходный текст |
Ответ на | Re: pgsql: Generational memory allocator (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: pgsql: Generational memory allocator
|
Список | pgsql-committers |
On 11/23/2017 11:04 PM, Tom Lane wrote: > Andres Freund <andres@anarazel.de> 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
В списке pgsql-committers по дате отправления: