[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071026094833.539a69aa@freepuppy.rosehill>
Date: Fri, 26 Oct 2007 09:48:33 -0700
From: Stephen Hemminger <shemminger@...ux-foundation.org>
To: Ingo Molnar <mingo@...e.hu>, Francois Romieu <romieu@...zoreil.com>
Cc: Romano Giannetti <romanol@...omillas.es>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Edward Hsu <edward_hsu@...ltek.com.tw>,
Jeff Garzik <jeff@...zik.org>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: 2.6.24-rc1 fails with lockup - /sbin/ifconfig / inet_ioctl() /
dev_close() / rtl8169_down()
On Fri, 26 Oct 2007 08:37:33 +0200
Ingo Molnar <mingo@...e.hu> wrote:
>
> * Romano Giannetti <romanol@...omillas.es> wrote:
>
> > > Does this help?
> >
> > I tried this, but although I have the D-state processes, I cannot see
> > any debug trace now. Results are at:
> >
> > http://www.dea.icai.upcomillas.es/romano/linux/info/2624rc1_3/
> >
> > Can I try anything more? This is quite a show-stopper for me... and
> > before trying to bisect 11Mbyte of patches...
>
> hm, from your log it appears that lockdep did not find anything, still
> the hang does trigger.
>
> it's /sbin/ifconfig and inet_ioctl() / dev_close() / rtl8169_down() that
> seems to be hanging. I've extracted the relevant backtrace below. I've
> Cc:-ed people who might have a better idea about what's going on.
>
> Ingo
Are you building with NAPI enabled or not. Looks like the following
might help the non-napi case.
--- a/drivers/net/r8169.c 2007-10-24 21:38:43.000000000 -0700
+++ b/drivers/net/r8169.c 2007-10-26 09:46:07.000000000 -0700
@@ -2989,13 +2989,16 @@ static void rtl8169_down(struct net_devi
{
struct rtl8169_private *tp = netdev_priv(dev);
void __iomem *ioaddr = tp->mmio_addr;
- unsigned int poll_locked = 0;
unsigned int intrmask;
rtl8169_delete_timer(dev);
netif_stop_queue(dev);
+#ifdef CONFIG_R8169_NAPI
+ napi_disable(&tp->napi);
+#endif
+
core_down:
spin_lock_irq(&tp->lock);
@@ -3009,11 +3012,6 @@ core_down:
synchronize_irq(dev->irq);
- if (!poll_locked) {
- napi_disable(&tp->napi);
- poll_locked++;
- }
-
/* Give a racing hard_start_xmit a few cycles to complete. */
synchronize_sched(); /* FIXME: should this be synchronize_irq()? */
--
Stephen Hemminger <shemminger@...ux-foundation.org>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists