Subject: Re: inter-cpu coherency and kernel data structures
To: Matthew Jacob <mjacob@feral.com>
From: Jason R Thorpe <thorpej@zembu.com>
List: tech-smp
Date: 08/14/2000 07:53:16
On Sun, Aug 13, 2000 at 10:52:17PM -0700, Matthew Jacob wrote:

 > I don't think you need to issue an MB if the stl_c is being used. This was the
 > conclusion the FreeBSD list came to after pondering whether you could use a
 > stl_c to avoid partial word race conditions with something like the EEPRO (it
 > was decided that this was okay, and that an MB after a stX_c was not needed).

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.

In any case, my question was mostly about things which are not using
ldl_l/stl_c, but rather other global data structures.  Like linked
lists, PTEs, VM objects, etc. which are generally protected with
locks, which would then have to ensure coherency of THOSE structures
by issuing an MB.

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>