From owner-freebsd-smp Mon Dec 16 10:43:27 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id KAA23722 for smp-outgoing; Mon, 16 Dec 1996 10:43:27 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id KAA23717 for ; Mon, 16 Dec 1996 10:43:24 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id LAA01687; Mon, 16 Dec 1996 11:41:52 -0700 From: Terry Lambert Message-Id: <199612161841.LAA01687@phaeton.artisoft.com> Subject: Re: General SMP Design To: michaelh@cet.co.jp Date: Mon, 16 Dec 1996 11:41:52 -0700 (MST) Cc: chuckr@Glue.umd.edu, smp@freebsd.org In-Reply-To: from "Michael Hancock" at Dec 16, 96 12:28:26 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > > I read that, but I don't clearly see why TSM was required. Not talking > > about the benefits, but why it's required by NBS. Are you clearer, and > > could you explain it without too much verbage (I don't want to make > > everyone read a thesis here 8-> ). > > I'm still reading it myself, but I think it is because you don't want a > data structure to change "underneath" you while other higher priority > processes take over your lock and you retry later on. Type-stable memory > simplifies implementation. But it's not a magic bullet, itself. I like the "delay work hoping it will go away" approach to NBS... I've advocated locking most resources in CPU specific pools, and using the migration of resource between processors, and high and low water marks on the pools to allow them to refill from, or drain to, global pools which are only used for resource balancing. NBS is an alternate approach. I kind of dislike resource preemption as a means of solving priority inversion. I may have meta-state which I need to hold. I suppose if the preemption were read-only and TSM'ed at the meta-state level, I could live with it. Otherwise, I prefer priority lending, even though there are some obvious loopholes in fairness that it can open up. Bottom line is that lending only works well if the resource is only held at most for the duration of the kernel entrancy. If this is obeyed, and kernel preemption exists (so that when the resource is released, the priority is immediately unlent and the process lent is descheduled), then there is really no advantage to NBS over a CPU centric hierarchical locking method and global pooling. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.