Date: Sun, 27 Apr 1997 22:59:55 -0700 From: David Greenman <dg@root.com> To: Ben Black <black@zen.cypher.net> Cc: Chuck Robey <chuckr@mat.net>, FreeBSD-SMP@FreeBSD.org Subject: Re: SMP Message-ID: <199704280559.WAA02904@root.com> In-Reply-To: Your message of "Mon, 28 Apr 1997 01:51:20 EDT." <Pine.LNX.3.91.970428014800.32065R-100000@zen.cypher.net>
next in thread | previous in thread | raw e-mail | index | archive | help
>> >> I'm confused, then. If there's only one kernel, then only one cpu can >> run it, so only one cpu can field the system calls. If both cpu's can >> field system calls, then unless they contact the other one to get the >> work done, then there must be two copies of the kernel ruinning, right? >> >> I'm probably misunderstanding something. Maybe you meant only one piece >> of software called "kernel" but two cpus running it? >> > >hence my saying one kernel. there is a single kernel image in memory and >both CPUs execute different (or the same) parts of it at the same time. >the single lock is to keep the CPUs from stepping on each other. when >one CPU wants to access a shared resource (and pretty much everything in >the kernel is considered shared) then it acquires the mplock, does its >business, releases the lock and continues. if the other CPU has the lock >when one wants to acquire it, the second CPU waits. > >one kernel, one lock. Uh, that's not what happens. There's a single copy of the kernel, but only one CPU may execute the kernel at a time. The lock is at the outer-most boundry of the kernel. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704280559.WAA02904>