Date: Thu, 13 Sep 2007 23:15:46 -0700 (PDT) From: Dave Frantz <imperial_courier@yahoo.com> To: Kip Macy <kip.macy@gmail.com> Cc: freebsd-current@freebsd.org Subject: Re: Kernel Locks During Device Probe on 7.0 Current Message-ID: <327147.21692.qm@web53911.mail.re2.yahoo.com> In-Reply-To: <b1fa29170709132252w65fec6fetf8c5310dbda167ee@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <kip.macy@gmail.com> 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 <kip.macy@gmail.com> wrote: > > > > > Try taking out firewire. And just to confirm - > you > > > have bootverbose set? > > > > > > -Kip > > > > > > On 9/13/07, Dave Frantz > <imperial_courier@yahoo.com> > > > 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. > > > > <snip> ____________________________________________________________________________________ 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?327147.21692.qm>