Date: Fri, 14 Sep 2007 00:24:35 -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: <566461.13079.qm@web53907.mail.re2.yahoo.com> In-Reply-To: <b1fa29170709132319m112ced64n5162be0e514f8314@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Okay, I just finished rebuilding the GENERIC kernel with this patch. All Firewire devices are still compiled out of the kernel at this point. When I boot with ACPI on, I get: subsystem 9000000 tcov_init(0)... done. subsystem a000000 synch_setup(0)... done. subsystem a800000 run_interrupt_driven_config_hooks(0)... Calling 0xc09bf490 ... rr232x: no controller detected. done. Calling 0xc04695d0 ... done. Calling 0xc04f29d0 ... acpi_acad0: acline initialization start acpi_acad0: On Line acpi_acad0: acline initialization done, tried 1 times battery0: battery initialization start battery0: battery initialization done, tried 1 times and hangs. If I boot with ACPI off, I get: subsystem 9000000 tcov_init(0)... done. subsystem a000000 synch_setup(0)... done. subsystem a800000 run_interrupt_driven_config_hooks(0)... Calling 0xc09bf490 ... rr232x: no controller detected. done. Calling 0xc04695d0 ... done. Calling 0xc04f29d0 ... and it stops. --- Kip Macy <kip.macy@gmail.com> wrote: > On 9/13/07, Dave Frantz <imperial_courier@yahoo.com> > wrote: > > 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? > > see inline > > > > > /* 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); > > > printf("calling %p ... ", > hook_entry->ich_func); > > > > > mtx_unlock(&intr_config_hook_lock); > > > (*hook_entry->ich_func)(hook_entry->ich_arg); > > mtx_lock(&intr_config_hook_lock); > > printf("done\n"); > > > > } > > > > 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. > > > > <snip> ____________________________________________________________________________________ Got a little couch potato? Check out fun summer activities for kids. http://search.yahoo.com/search?fr=oni_on_mail&p=summer+activities+for+kids&cs=bz
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?566461.13079.qm>