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>