On 2016-03-29 13:09:05 -0400, Robert Haas wrote: > On Mon, Mar 28, 2016 at 9:09 AM, Andres Freund <and...@anarazel.de> wrote: > > On 2016-03-28 11:48:46 +0530, Dilip Kumar wrote: > >> On Sun, Mar 27, 2016 at 5:48 PM, Andres Freund <and...@anarazel.de> wrote: > >> > What's sizeof(BufferDesc) after applying these patches? It should better > >> > be <= 64... > >> > > >> > >> It is 72. > > > > Ah yes, miscalculated the required alignment. Hm. So we got to get this > > smaller. I see three approaches: > > > > 1) Reduce the spinlock size on ppc. That actually might just work by > > replacing "unsigned int" by "unsigned char" > > 2) Replace the lwlock spinlock by a bit in LWLock->state. That'd avoid > > embedding the spinlock, and actually might allow to avoid one atomic > > op in a number of cases. > > 3) Shrink the size of BufferDesc by removing buf_id; that'd bring it to > > 64byte. > > > > I'm a bit hesitant to go for 3), because it'd likely end up adding a bit > > of arithmetic to a number of places in bufmgr.c. Robert, what do you > > think? > > I don't have a clear idea what's going to be better here.
My gut feeling is that we should do both 1) and 2). Dilip, could you test performance of reducing ppc's spinlock to 1 byte? Cross-compiling suggest that doing so "just works". I.e. replace the #if defined(__ppc__) typedef from an int to a char. Regards, Andres -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers