Re: Kernel Locks During Device Probe on 7.0 Current

From: Kip Macy <kip.macy_at_gmail.com>
Date: Thu, 13 Sep 2007 23:19:40 -0700
On 9/13/07, Dave Frantz <imperial_courier_at_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_at_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_at_gmail.com> wrote:
> > >
> > > > Try taking out firewire. And just to confirm  -
> > you
> > > > have bootverbose set?
> > > >
> > > >  -Kip
> > > >
> > > > On 9/13/07, Dave Frantz
> > <imperial_courier_at_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
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Fri Sep 14 2007 - 04:19:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:17 UTC