Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Sep 1996 19:52:32 -0700 (PDT)
From:      "Jonathan M. Bresler" <jmb>
To:        terry@lambert.org (Terry Lambert)
Cc:        terry@lambert.org, bad@owl.WPI.EDU, freebsd-smp@freebsd.org
Subject:   Re: multithreading in the kernel and applications.
Message-ID:  <199609220252.TAA04067@freefall.freebsd.org>
In-Reply-To: <199609202311.QAA03194@phaeton.artisoft.com> from "Terry Lambert" at Sep 20, 96 04:11:02 pm

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> 
> Mutexes is meant to refer to "mutual exclusion locks which function
> between processors".
> 
> Semaphores is meant to refer to "mutual exclusion locks which do
> not use memory shared between CPU's for their implementation".
> 
> If you lock with a semaphore, you don't lock out other CPU's from
> accessing the same object (ie: they may have stale cache data),
> but mutexes invoke a bus abritration cycle to make sure there are
> no stale caches on other processors.
> 

	isnt that an implementation issue, whatever form of mutex is 
	used a data structure must be shared among the processors
	and if cached must be either flushed or invalidated (hopefully
	via a hardware protocol such as MESI)

	what method are you referring to that does not require
	shared data? are there any papers available about it?  or
	am i misunderstanding you?

> Yes.  A processor can "enter" an execution context.  If the execution
> contexts are arbitrated in the kernel via inter-CPU mutexes, then
> multipl CPU's can enter execution contexts in kernel space at the
> same time.
> 

	i have not yet read the smp source in FreeBSD.  what
	granulaarity of laocking are we using?  what structures
	are currently protected?  do both cpus have the same
	"privilege" or "priority" ( i am missing the correct term
	here)  can both field interrupts for instance?

jmb



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199609220252.TAA04067>