Re: [PATCHES] update i386 spinlock for hyperthreading

Поиск
Список
Период
Сортировка
От Manfred Spraul
Тема Re: [PATCHES] update i386 spinlock for hyperthreading
Дата
Msg-id 3FEDD76E.6080304@colorfullife.com
обсуждение исходный текст
Ответ на Re: [PATCHES] update i386 spinlock for hyperthreading  (ohp@pyrenet.fr)
Список pgsql-hackers
ohp@pyrenet.fr wrote:

>Hi Manfred,
>
>I'm using unixware 7 but couldn't compile your source with native cc, I
>had to compile it with gcc.
>
>here are the results:
>  
>
Thanks. The test app compares the time needed for three different short 
loops: a loop with six empty function calls, a loop with six function 
calls and one nop in the middle, and a loop with a "rep;nop;" in the middle.

Result:
- nop needs 0 cycles - executed in parallel.
- rep;nop between 24 and 60 cycles - long enough that the pipeline is 
emptied.

I've searched around for further info regarding the recommended spinlock 
algorithm:
- The optimization manual (google for "Intel 248966") contains a section 
about pause instructions: The memory ordering violation is from the 
multiple simultaneous reads that are executed due to pipelining the busy 
loop.
- It references the Application Note AP-949 "Using Spin-Loops on Intel 
Pentium 4 Processor and Intel Xeon Processor" for further details. 
Unfortunately the app notes are stored on cedar.intel.com, and that 
server appears to be down :-(

--   Manfred



В списке pgsql-hackers по дате отправления:

Предыдущее
От: ivan
Дата:
Сообщение: Re: new-line
Следующее
От: Nailah Ogeer
Дата:
Сообщение: Connecting to Postgres