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
next prev parent 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.