From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161378AbWAMIKB (ORCPT ); Fri, 13 Jan 2006 03:10:01 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161455AbWAMIKB (ORCPT ); Fri, 13 Jan 2006 03:10:01 -0500 Received: from adsl-69-232-92-238.dsl.sndg02.pacbell.net ([69.232.92.238]:16359 "EHLO gnuppy.monkey.org") by vger.kernel.org with ESMTP id S1161378AbWAMIKA (ORCPT ); Fri, 13 Jan 2006 03:10:00 -0500 Date: Fri, 13 Jan 2006 00:07:34 -0800 To: Esben Nielsen Cc: Ingo Molnar , Steven Rostedt , david singleton , linux-kernel@vger.kernel.org Subject: Re: RT Mutex patch and tester [PREEMPT_RT] Message-ID: <20060113080734.GA22091@gnuppy.monkey.org> References: <20060112113316.GA14416@gnuppy.monkey.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.11 From: Bill Huey (hui) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 12, 2006 at 01:54:23PM +0100, Esben Nielsen wrote: > turnstiles? What is that? http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/subr_turnstile.c Please, read. Now tell me or not if that looks familiar ? :) Moving closer an implementation is arguable, but it is something that should be considered somewhat since folks in both the Solaris (and FreeBSD) communities have given a lot more consideration to these issues. The stack allocated objects are fine for now. Priority inheritance chains should never get long with a fine grained kernel, so the use of a stack allocated object and migrating pi-ed waiters should not be a major real world issue in Linux yet. Folks should also consider using an adaptive spin in the __grab_lock() (sp?) related loops as a possible way of optimizing away the immediate blocks. FreeBSD actually checks the owner of a lock aacross another processor to see if it's actively running, "current", and will block or wait if it's running or not respectively. It's pretty trivial code, so it's not a big issue to implement. This is ignoring the CPU local storage issues. bill