Re: Misaligned BufferDescriptors causing major performance problems on AMD - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Misaligned BufferDescriptors causing major performance problems on AMD
Date
Msg-id 20150128114719.GA6325@awork2.anarazel.de
Whole thread Raw
In response to Re: Misaligned BufferDescriptors causing major performance problems on AMD  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Misaligned BufferDescriptors causing major performance problems on AMD
List pgsql-hackers
On 2015-01-26 21:13:31 -0500, Robert Haas wrote:
> On Mon, Jan 26, 2015 at 9:08 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> >> Contrary opinions? Robert?
> >
> > I'm totally OK with further aligning just that one allocation.
> 
> Of course, now that I think about it, aligning it probably works
> mostly because the size is almost exactly one cache line.

Not just almost - it's precisely 64 byte on x86-64 linux. And I think
it'll also be that on other 64bit platforms. The only architecture
dependant thing in there is the spinlock and that already can be between
1 and 4 bytes without changing the size of the struct.

> If it were any bigger or smaller, aligning it more wouldn't help.

Yea.

> So maybe we should also do something like what LWLocks do, and make a
> union between the actual structure and an appropriate array of padding
> bytes - say either 64 or 128 of them.

Hm. That's a bit bigger patch. I'm inclined to just let it slide for the
moment. I still have plans to downsize some of sbufdesc's content (move
the io lock out) and move the content lwlock inline. Then we're not
going to have much choice but do this...

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



pgsql-hackers by date:

Previous
From: Petr Jelinek
Date:
Subject: Re: TABLESAMPLE patch
Next
From: Stephen Frost
Date:
Subject: Re: pg_upgrade and rsync