Date: Sun, 27 Apr 1997 23:30:32 -0600 From: Steve Passe <smp@csn.net> To: Chuck Robey <chuckr@mat.net> Cc: FreeBSD-SMP@FreeBSD.org Subject: Re: SMP Message-ID: <199704280530.XAA24002@Ilsa.StevesCafe.com> In-Reply-To: Your message of "Sun, 27 Apr 1997 23:03:38 EDT." <Pine.BSF.3.91.970427230130.22821G-100000@Journey2.mat.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, > One per CPU? One lock total? How many copies of the kernel are running > at once? How is caching handled, per cpu, or globally (forcing the two > cpu's to look like one?) When a system call executes, what handles it, > one cpu? We use the giant lock model at present. This is our biggest performance bottleneck, and it will soon change. More specifically there is one lock for the entire (SMP aspect of the) system. There is one copy of the kernel, which both CPUs can execute. The lock prevents more than one from running it at the same time. It is a spin lock, and is a counting lock, ie the possessor can get it mutiple times. cacheing is done by hardware enforcing the MESI model. I believe a system call will be handled by the CPU on which the calling process is running. An interrupt could be handled by any available CPU (simple answer, details are more complex). Caching is almost invisible to the software, we still have to handle TLB invalidations with inter-CPU interrupts. -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704280530.XAA24002>