[comp.arch] 386 & snoopy caching

yuval@taux01.UUCP (Gideon Yuval) (01/21/88)

The XCHG op-code of the 386 has three properties, which seem to guarantee
deadlocks (or worse) if it is used in a snoopy-cache multi-CPU system:

(1) it is locked.
(2) it is available to unprivileged user code.
(3) it can be misaligned (and can thus straddle cache-line boundaries).

To see why this is dodgy, consider a case where cache lines 0 and 2 are owned
by CPU #0, cache lin 1 is owned by CPU #1, and now CPU #1 tries to XCHG on the
line1-line2 boundary, just after CPU #0 starts an XCHG that straddles the
boundary between line 0 & line 1.

How does Sequent fix this problem in their multi-386 (Symmetry) systems?

Gideon Yuval, +972-52-522255 (work), -2-690992 (home), yuval@taux01.nsc.com

-- 
Gideon Yuval, +972-52-522255 (work), -2-690992 (home), yuval@taux01.nsc.com