Re: spin_unlock optimization(i386)

Erich Boleyn (esboleyn@ichips.intel.com)
Thu, 25 Nov 1999 21:18:41 -0800


Oliver Xymoron <oxymoron@waste.org> wrote:

...
> Here's what my PPro manual has to say in the Multiple Processor
> Management section:
>
> Locked operations are serializing. They wait for all previous
> instructions to complete. Locked operations are atomic with respect
> to all other memory operations and all externally visible
> events. Only instruction fetch and page table accesses can pass
> locked instructions.
>
> Combined with my interpretation of the read/write ordering rules,
> serializing for LOCK is the right thing to do - LOCK is primarily useful
> for synchronizing data between processors.

It's clear the LOCK has to be done at retire/commit time, simply
because you can't execute the LOCKed bus cycles speculatively. Hence
the comment about all previous instructions needing to be completed
first. For this to happen, they must all be committed state.

As to the rest... in WB or UC, that is guaranteed by the program
ordering with respect to other memory operations/the observed memory
image.

I think they added the totally serializing so you didn't have to think
about the memory type at all.

Erich Boleyn
PMD IA32 Architecture
Intel

--
Erich Boleyn
PMD Architecture
<esboleyn@ichips.intel.com>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/