Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-29 Thread Bruce Momjian
Manfred Spraul wrote: > The scary part from the system perspective are the 35 million context > switches that were generated by the BufMgrLock and the LockMgrLock. I > remember there were patches that tried other algorithms instead of the > simple LRU for the buffer manager. Has anyone tried to

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-29 Thread Manfred Spraul
Tom Lane wrote: Is there an easy way find out which LWLock is contended? Not from oprofile output, as far as I can think. I've suspected for some time that the BufMgrLock is a major bottleneck, but have no proof. Mark ran a DBT-2 testrun with the attached statistics patch applied: It col

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-27 Thread Manfred Spraul
Tom Lane wrote: Anyway, I've committed your patch with some changes. Thanks. BTW, I noticed a lot of concern in the Intel app notes about reserving 64 or even 128 bytes for each spinlock to avoid cache line conflicts. That seems excessive to me (we use a lot of spinlocks for buffers), but perh

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-27 Thread Tom Lane
Manfred Spraul <[EMAIL PROTECTED]> writes: > My guess: Pentium 4 cpu support something like 250 uops in flight - it > will have a dozend of the spinlock loops in it's pipeline. When the > spinlock is released, it must figure out which of the loops should get > it, and gets lost. My guess is that

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-27 Thread ohp
L PROTECTED]> > Subject: Re: [PATCHES] update i386 spinlock for hyperthreading > > Tom Lane wrote: > > >Manfred Spraul <[EMAIL PROTECTED]> writes: > > > > > >>Tom Lane wrote: > >> > >> > >>>Don't you have to put it in a spec

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-27 Thread Manfred Spraul
Tom Lane wrote: Manfred Spraul <[EMAIL PROTECTED]> writes: Tom Lane wrote: Don't you have to put it in a specific place in the loop to make that work? If not, why not? Rep;nop is just a short delay - that's all. That view seems to me to be directly contradicted by this stateme

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-26 Thread Tom Lane
Manfred Spraul <[EMAIL PROTECTED]> writes: > Tom Lane wrote: >> Don't you have to put it in a specific place in the loop to make that >> work? If not, why not? >> > Rep;nop is just a short delay - that's all. That view seems to me to be directly contradicted by this statement: > The PAUSE instr

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-26 Thread Manfred Spraul
Tom Lane wrote: Manfred Spraul <[EMAIL PROTECTED]> writes: Intel recommends to add a special pause instruction into spinlock busy loops. It's necessary for hyperthreading - without it, the cpu can't figure out that a logical thread does no useful work and incorrectly awards lots of execution

Re: [PATCHES] update i386 spinlock for hyperthreading

2003-12-26 Thread Tom Lane
Manfred Spraul <[EMAIL PROTECTED]> writes: > Intel recommends to add a special pause instruction into spinlock busy > loops. It's necessary for hyperthreading - without it, the cpu can't > figure out that a logical thread does no useful work and incorrectly > awards lots of execution resources t

[PATCHES] update i386 spinlock for hyperthreading

2003-12-26 Thread Manfred Spraul
Hi, Intel recommends to add a special pause instruction into spinlock busy loops. It's necessary for hyperthreading - without it, the cpu can't figure out that a logical thread does no useful work and incorrectly awards lots of execution resources to that thread. Additionally, it's supposed to