Date: Tue, 29 Jun 1999 21:41:40 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Kevin Van maren <vanmaren@cs.utah.edu> Cc: freebsd-smp@FreeBSD.ORG Subject: Re: high-efficiency SMP locks - submission for review Message-ID: <199906300441.VAA34206@apollo.backplane.com> References: <199906291705.LAA20627@zane.cs.utah.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
:I'm really glad to see that there is so much activity on the list! : :Just a quick summary (from my point of view): :1) Multi-threading the kernel will require locking, not just spl(). :2) Locking will likely slow down uni-processor systems. :3) Removing the BGL will allow more parallelism in the kernel :for multiple system-bound applications under SMP. :4) It will be a LOT of work to re-write the kernel to be thread-safe. :Changing the execution environment will violate a lot of assumptions. :5) Very few people both know enough about the kernel internals and :multiprocessor/multi-threaded locking to do the job "right". :6) The method most likely to succeed will be evolutionary; there is :simply too much code to change everything at once and get it all working. : :SMP will scale with a BGL as long as we minimize the system time. :If system time with 4 CPUs is under 10%, the kernel is not the problem. :... :Kevin Van Maren I think we have a real good chance of moving the kernel onto an SMP track. BGL creates serious limitations on performance. Linux is able to outperform FreeBSD in critical areas because they have moved their tcp stack and buffer copying code outside their BGL. We can do much better. The work done by the BSDi folks has shown that moving interrupts into kernel threads is considerably less difficult then we had previously thought. John Dyson has shown that it is possible to release the BGL in certain areas of the code, such as in uiomove(), though at the moment it doesn't help performance. Warner Losh intends to integrate a kernel thread implementation from NetBSD, which will give us the basis to build upon. FreeBSD's VM subsystem is already very close to being able to operate in kernel thread environment. VFS/BIO is a big stumbling block but there is hope there too. A lot of things are starting to come together. I think by the end of the year the most critical pieces of the kernel will be threaded. -Matt Matthew Dillon <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906300441.VAA34206>