On Sun, Jun 26, 2022 at 1:25 PM Gregory Nutt <spudan...@gmail.com> wrote:
>
> Sounds like nothing is calling netinit_bringup().  Normally this is part
> of the console initialization:
>
> nsh_altconsole.c:  netinit_bringup();
> nsh_consolemain.c:  netinit_bringup();
> nsh_telnetd.c:      netinit_bringup();
> nsh_usbconsole.c:  netinit_bringup();
>
> So perhaps it is not called in this configuration?
>
> netinit_bringup() starts the monitor thread that brings up the network,
> including the DHCP interactions.  Is the netinit pthread running?
>
> There are lots of other possibilities: Does the driver have a MAC address?

Thanks for the reply.

Update: I now believe CONFIG_NETINIT_THREAD_PRIORITY was too low.

By default it is set to 80.

In the debugger, in netinit_bringup(), I manually bumped
sparam.sched_priority all the way up to 250 and now the network
configuration seems to run.

I tried such a high value just for testing but I think it should be
lower than that for real usage. I wonder what task with a priority
higher than 80 was preventing netinit_thread() from running?

Seems like a deadlock situation where something else is waiting for
the network to come up, but it doesn't because netinit_thread() never
gets a chance to run.

This also explains why I had trouble hitting a breakpoint in
netinit_thread(). There was nothing wrong with the debugger; rather
that function never got a chance to run due to priorities...

Thoughts?

Cheers,
Nathan

Reply via email to