From owner-freebsd-current@FreeBSD.ORG Fri Sep 14 06:15:47 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DEF116A417 for ; Fri, 14 Sep 2007 06:15:47 +0000 (UTC) (envelope-from imperial_courier@yahoo.com) Received: from web53911.mail.re2.yahoo.com (web53911.mail.re2.yahoo.com [206.190.38.160]) by mx1.freebsd.org (Postfix) with SMTP id 24F0413C45E for ; Fri, 14 Sep 2007 06:15:46 +0000 (UTC) (envelope-from imperial_courier@yahoo.com) Received: (qmail 22070 invoked by uid 60001); 14 Sep 2007 06:15:46 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=FMuRovM+lcsA34ykPaJc2ms22iQUORE366YE7PxN8/F9JS4kA4aYc7kLL/j84v6wIFDHxCRP9jH680wCeQyr4bnM3nc+SLlh0YEFoZ0k8nfCkdZBEvbMZJxlYycCJAUKZmXdU9c7ONlMgXPOWmeC4tT4yGOByJcpN+VdHtbVuuo=; X-YMail-OSG: vKLx0p8VM1mV1c9yx8YFnYeO01NGuq5WuZ1XnKh1..l_yGSDB5MRUlPRbLV_LuP9SDcxTphg5uhH296WxWbvpmhpHtJ25Z99ZY7n7XDTetcTxWMnLUEEizMYxhB8Eju4mWT91gXM3WOFMvjdUbLxJg-- Received: from [209.166.103.197] by web53911.mail.re2.yahoo.com via HTTP; Thu, 13 Sep 2007 23:15:46 PDT Date: Thu, 13 Sep 2007 23:15:46 -0700 (PDT) From: Dave Frantz To: Kip Macy In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <327147.21692.qm@web53911.mail.re2.yahoo.com> Cc: freebsd-current@freebsd.org Subject: Re: Kernel Locks During Device Probe on 7.0 Current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Sep 2007 06:15:47 -0000 I just finished searching the files in /usr/src/sys for run_interrupt_driven_config_hooks. The only references I get for this are in kern/subr_autoconf.c. Unfortunately, my C-fu is a little weak. I've reproduced the run_interrupt_driven_config_hooks function below. Any ideas on where I should put the printf? Is this the right function? /* ARGSUSED */ static void run_interrupt_driven_config_hooks(void *dummy); static void run_interrupt_driven_config_hooks(dummy) void *dummy; { struct intr_config_hook *hook_entry, *next_entry; mtx_lock(&intr_config_hook_lock); TAILQ_FOREACH_SAFE(hook_entry, &intr_config_hook_list, ich_links, next_entry) { next_entry = TAILQ_NEXT(hook_entry, ich_links); mtx_unlock(&intr_config_hook_lock); (*hook_entry->ich_func)(hook_entry->ich_arg); mtx_lock(&intr_config_hook_lock); } while (!TAILQ_EMPTY(&intr_config_hook_list)) { msleep(&intr_config_hook_list, &intr_config_hook_lock, PCONFIG, "conifhk", 0); } mtx_unlock(&intr_config_hook_lock); } SYSINIT(intr_config_hooks, SI_SUB_INT_CONFIG_HOOKS, SI_ORDER_FIRST, run_interrupt_driven_config_hooks, NULL) --- Kip Macy wrote: > > run_interrupt_driven_config_hooks(0)... rr232x: > no > > controllers detected. > > put a printf in run_interrupt_driven_config_hooks > printing out the > addresses of the functions, > with something like: > printf("calling %p ...", fun); > (*fun)(); > printf("done\n"); > > The most likely scenario is one of the drivers > taking you off into the weeds. > > -Kip > > > > > > > and then it hangs. > > > > I don't think Firewire is causing this, > unfortunately. > > At least not directly. > > > > Thank you very much for your help, by the way. > > > > --- Kip Macy wrote: > > > > > Try taking out firewire. And just to confirm - > you > > > have bootverbose set? > > > > > > -Kip > > > > > > On 9/13/07, Dave Frantz > > > > wrote: > > > > Okay, I've recompiled the GENERIC 7.0-current > > > kernel > > > > with VERBOSE_SYSINIT. ddb is in the kernel > too. > > > > > > > > Booting with the GENERIC kernel built with > those > > > > options and with ACPI enabled, I get: > > > > > > > > subsystem 9000000 > > > > tcov_init(0)... done. > > > > subsystem a000000 > > > > synch_setup(0)... done. > > > > subsystem a800000 > > > > run_interrupt_driven_config_hooks(0)... > > > > > > > > And then the system hangs. I cannot break into > ddb > > > > with Ctrl+Alt+Esc at this point. > > > > > > > > If I disable ACPI and boot with the same > kernel, I > > > > get: > > > > > > > > > > > > subsystem 9000000 > > > > tcov_init(0)... done. > > > > subsystem a000000 > > > > synch_setup(0)... done. > > > > subsystem a800000 > > > > run_interrupt_driven_config_hooks(0)... > > > firewire0: > > > > 2 nodes, maxhop <=1, cable IRM=1 (me) > > > > firewire0: bus manager 1 (me) > > > > > > > > And it hangs there. > > > > > > > > Any ideas on what I should do next? Thanks in > > > advance. > > > > ____________________________________________________________________________________ Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545433