All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hector Palacios <hector.palacios@digi.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Tim Sander <tim.sander@hbm.com>,
	"linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>,
	"lclaudio@uudg.org" <lclaudio@uudg.org>,
	"rostedt@goodmis.org" <rostedt@goodmis.org>,
	"efault@gmx.de" <efault@gmx.de>
Subject: Re: infinite spin in RT when booting with DHCP on
Date: Fri, 3 Feb 2012 17:14:38 +0100	[thread overview]
Message-ID: <4F2C07EE.10408@digi.com> (raw)
In-Reply-To: <20120203103520.GI25594@pengutronix.de>

Hi Uwe,

On 02/03/2012 11:35 AM, Uwe Kleine-König wrote:
>> On my ARM iMX51 platform the problem occurs on every boot. Basically
>> I'm launching udhcpc on the /etc/network/if-up.d/ifup script, to get
>> a dynamic IP for the FEC.
> Maybe your environment is special then (pick one or more from: board,
> cable, phy, hub/switch, sun erruption, ice cream on your board or your
> favourite hardware designer :-).

No ice cream this time, promised!

> As the problem occurs for you on every boot you seem to be the one who
> can debug that easily. Can you check if mainline is affected, too, after
> boosting ksoftirqd? I.e. either use
>
> 	chrt -f -p 99 $(pidof ksoftirqd)
>
> or add
 > diff --git a/kernel/softirq.c b/kernel/softirq.c
 > index 4eb3a0f..d08c046 100644
 > --- a/kernel/softirq.c
 > +++ b/kernel/softirq.c
 > @@ -861,6 +861,10 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
 >   			printk("ksoftirqd for %i failed\n", hotcpu);
 >   			return notifier_from_errno(PTR_ERR(p));
 >   		}
 > +		sched_setscheduler_nocheck(p, SCHED_FIFO,&(struct sched_param){
 > +				.sched_priority = MAX_RT_PRIO-1,
 > +				});
 > +
 >   		kthread_bind(p, hotcpu);
 >     		per_cpu(ksoftirqd, hotcpu) = p;
 >    		break;

I added this patch and the problem was reproducible in 2.6.31.14. with Freescale's 
2.6.31 BSP, but not on 2.6.35.15 with Freescale's 2.6.35 BSP.

So I revised the differences in the driver and 'git blame' showed me this commit 
(Freescale's BSP for 2.6.35), which solves the problem:

commit bac5b435af4656802d3555aaeee983ae8fe5c96a
Author: Frank Li <Frank.Li@freescale.com>
Date:   Fri Dec 10 18:59:07 2010 +0800

     ENGR00136218 FEC: Fix dhcp fail when enable preempt at mx28

     DHCP fail when enable NO_HZ and preempt at mx28evk

     Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
     Signed-off-by: Frank Li <Frank.Li@freescale.com>

diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index e3ce064..f581960 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -253,6 +253,7 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)

         if (!fep->link) {
                 /* Link is down or autonegotiation is in progress. */
+               netif_stop_queue(dev);
                 return NETDEV_TX_BUSY;
         }

@@ -681,6 +682,7 @@ static void fec_enet_adjust_link(struct net_device *dev)
         if (phy_dev->link) {
                 if (fep->full_duplex != phy_dev->duplex) {
                         fec_restart(dev, phy_dev->duplex);
+                       netif_wake_queue(dev);
                         status_change = 1;
                 }
         }
@@ -1418,6 +1420,8 @@ fec_stop(struct net_device *dev)
         if (fep->ptimer_present)
                 fec_ptp_stop(fep->ptp_priv);
         writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
+
+       fep->link = 0;
  }

  static int __devinit


This commit was not merged to mainline kernel. So I tried again with 2.6.35.14 with 
Freescale's BSP and Uwe's patch and reverted commit bac5b435 for verification. The 
problem was reproducible so the above patch solves it.
Do you see any caveat with this commit? If not maybe it should make its way to mainline.

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

  reply	other threads:[~2012-02-03 16:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-01 12:28 infinite spin in RT when booting with DHCP on Hector Palacios
2012-02-02 12:38 ` Tim Sander
2012-02-02 12:57   ` Hector Palacios
2012-02-02 14:25     ` Tim Sander
2012-02-02 15:32       ` Tim Sander
2012-02-02 15:53         ` Hector Palacios
2012-02-02 18:10       ` Steven Rostedt
2012-02-03 10:09         ` Hector Palacios
2012-02-03 10:54           ` John Ogness
2012-02-03 14:26           ` Steven Rostedt
2012-02-02 17:33   ` Steven Rostedt
2012-02-02 18:21     ` Steven Rostedt
2012-02-02 20:13   ` Uwe Kleine-König
2012-02-02 21:34     ` Steven Rostedt
2012-02-02 23:44       ` Tim Sander
2012-02-03  9:45         ` Tim Sander
2012-02-06 14:49       ` Tim Sander
2012-02-03 10:23     ` Hector Palacios
2012-02-03 10:35       ` Uwe Kleine-König
2012-02-03 16:14         ` Hector Palacios [this message]
2012-02-03 16:43           ` Steven Rostedt
2012-02-03 17:25             ` Hector Palacios
2012-02-03 17:39               ` Steven Rostedt
2012-02-03 19:25                 ` Uwe Kleine-König
2012-02-03 20:04                   ` Steven Rostedt
2012-02-06  8:51                 ` Hector Palacios
2012-02-06 13:27                   ` Steven Rostedt
2012-02-08 20:41                     ` Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F2C07EE.10408@digi.com \
    --to=hector.palacios@digi.com \
    --cc=efault@gmx.de \
    --cc=lclaudio@uudg.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tim.sander@hbm.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.