Xref: utzoo comp.arch:3179 comp.sys.sequent:12 comp.sys.intel:385 Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!amdahl!nsc!taux01!yuval From: yuval@taux01.UUCP (Gideon Yuval) Newsgroups: comp.arch,comp.sys.sequent,comp.sys.intel Subject: 386 & snoopy caching Keywords: XCHG, misalignment Message-ID: <459@taux01.UUCP> Date: 20 Jan 88 20:08:58 GMT Reply-To: yuval@taux01.UUCP (Gideon Yuval) Organization: National Semiconductor (Israel) Ltd. Lines: 18 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