Subject: Re: inter-cpu coherency and kernel data structures
To: None <firstname.lastname@example.org>
From: Chris G. Demetriou <email@example.com>
Date: 08/14/2000 09:55:27
firstname.lastname@example.org (Jason R Thorpe) writes:
> Well, after disassembling OSF/1's simple lock routines, they clearly
> are using MBs after stl_c, and Brown Book (newer version of Green Book :-)
> doesn't say anything about stl_c performing a barrier. stl_c merely
> interacts with the "locked" register in the memory controller, as far
> as I can tell.
"Why bother disassembling when they've been so kind as to _document_
things for you?"
Take a look at e.g. green book 5.5.3 "Atomic Updates to Data
Structures" (I 5-7). I doubt they've changed this substantially,
especially removed it, in later editions, but my brown book is at
in a nutshell, either you're doing the accesses themselves with
LDx_L/STx_C, which are atomic, or you're using LDx_T/STx_C to frob a
mutex in which case you need additional protection in the form of
memory barriers for the accesses to the data structures.
while you probably don't _have_ to include those in the modex
instructions, it's fairly obvious that that's a good idea (and is even
suggested by the grouping of instructions in that section's example