Re: infinite spin in RT when booting with DHCP on

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2012-02-03 at 11:09 +0100, Hector Palacios wrote:
> Hi Steve,
> 
> On 02/02/2012 07:10 PM, Steven Rostedt wrote:
> > That said, as I think I know the problem, can you try this patch to see
> > if it fixes things. This patch is a TOTAL HACK! Not for inclusion. It's
> > racy and buggy. I didn't even compile it because I couldn't get the
> > configs to enable FEC, and I was too lazy to set up my cross compiler to
> > test it. ;-)
> 
> Yes, this hack fixes things as long as I boot with the Ethernet cable plugged in. In 
> this case the autonegotiation is launched and fec_enet_start_xmit() waits until it 
> completes. From then on, the hack never triggers again (comp_set is 0) and 
> disconnecting-reconnecting the cable or asking for a new DHCP address seems to work 
> normally.
> 
> If I boot with the cable disconnected the driver seems to be trapped at the 
> wait_for_completion() and connecting the cable later simply doesn't allow the 
> autonegotiation to complete.

I said it was buggy ;-)


Well the good news is that we know where the problem is. The bad news
is, I have no idea how to fix it, as it seems specific to this driver.
And this bug may be a bug in mainline. If we can prove that, then we can
push the driver writers to fix it.

If you can add the patch that Uwe sent you and see if you can cause
mainline to lock up with it, then we can show that this is a mainline
bug.

Basically, if you have CONFIG_PREEMPT enabled, and set ksoftirqd to an
RT task, then it may exhibit the same behavior.

Oh! What happens if you boot the board with a mainline kernel without
connecting the cable? Can you see if ksoftirqd is running 100% of CPU?
If you say that when the cable is out, it can not complete the
autonegotiate, which means that it should go into the loop I shown
before. But as ksoftirqd is a normal task (non RT) you may not have
noticed the issue.

-- Steve



--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux