Tom Lane wrote:

Manfred Spraul <[EMAIL PROTECTED]> writes:


... Initially I tried to increase MAX_ALIGNOF to 16, but the result didn't work:



You would need to do a full recompile and initdb to alter MAX_ALIGNOF.


I think I did that, but it still failed. 7.4cvs works, I'll ignore it.
MAX_ALIGNOF affects the on-disk format, correct? Then I agree that it's the wrong to change it.


However, if you are wanting to raise it past about 8, that's probably
not the way to go anyway; it would create padding wastage in too many
places.  It would make more sense to allocate the buffers using a
variant ShmemAlloc that could be told to align this particular object
on an N-byte boundary.  Then it costs you no more than N bytes in the
one place.

I agree, I'll write a patch.

(BTW, I wonder whether there would be any win in allocating the buffers
on a 4K or 8K page boundary... do any kernels use virtual memory mapping
tricks to replace data copying in such cases?)

Linux doesn't. Page table games are considered as evil, because tlb flushing is expensive, especially on SMP.

--
   Manfred


---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster

Reply via email to