Messages in this thread | | | Subject | Re: spin_unlock optimization(i386) | Date | Thu, 25 Nov 1999 21:18:41 -0800 | From | Erich Boleyn <> |
| |
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/
| |