From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755174Ab2BPEeO (ORCPT ); Wed, 15 Feb 2012 23:34:14 -0500 Received: from mail-wi0-f174.google.com ([209.85.212.174]:48787 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753457Ab2BPEeL (ORCPT ); Wed, 15 Feb 2012 23:34:11 -0500 Message-ID: <1329366846.5646.1.camel@edumazet-laptop> Subject: Re: NETDEV WATCHDOG: eth0 (atl1c): transmit queue 0 timed out From: Eric Dumazet To: Thomas Meyer Cc: Linux Kernel Mailing List , jcliburn@gmail.com, chris.snook@gmail.com, netdev , Josh Boyer Date: Thu, 16 Feb 2012 05:34:06 +0100 In-Reply-To: <1329204997.24837.15.camel@edumazet-laptop> References: <1329063403.1449.14.camel@localhost.localdomain> <1329204997.24837.15.camel@edumazet-laptop> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.2- Content-Transfer-Encoding: 8bit Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le mardi 14 février 2012 à 08:36 +0100, Eric Dumazet a écrit : > Le lundi 13 février 2012 à 16:00 -0500, Josh Boyer a écrit : > > On Sun, Feb 12, 2012 at 11:16 AM, Thomas Meyer wrote: > > > abrt_version: 2.0.7 > > > cmdline: BOOT_IMAGE=/vmlinuz-3.2.3 root=/dev/sda2 rootfstype=ext4 rootflags=data=writeback ro quiet rhgb > > > kernel: 3.2.3 > > > reason: WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x1e7/0x1f0() > > > time: Sa 04 Feb 2012 15:31:22 CET > > > > > > backtrace: > > > :WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x1e7/0x1f0() > > > :Hardware name: Aspire 1810T > > > :NETDEV WATCHDOG: eth0 (atl1c): transmit queue 0 timed out > > > :Modules linked in: vfat fat fuse bluetooth nf_conntrack_ipv6 nf_defrag_ipv6 ip6t_REJECT ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep uvcvideo snd_seq arc4 videodev usb_storage snd_seq_device v4l2_compat_ioctl32 snd_pcm snd_timer acer_wmi iwlwifi snd mac80211 sparse_keymap cfg80211 rfkill soundcore snd_page_alloc joydev wmi acerhdf pcspkr virtio_net virtio atl1c virtio_ring kvm_intel kvm uinput ipv6 [last unloaded: scsi_wait_scan] > > > :Pid: 0, comm: swapper Not tainted 3.2.3 #5 > > > :Call Trace: > > > : [] warn_slowpath_common+0x7a/0xb0 > > > : [] ? lapic_next_event+0x18/0x20 > > > : [] warn_slowpath_fmt+0x41/0x50 > > > : [] ? hrtimer_interrupt+0xfe/0x1f0 > > > : [] ? wake_up_process+0x10/0x20 > > > : [] dev_watchdog+0x1e7/0x1f0 > > > : [] run_timer_softirq+0xef/0x210 > > > : [] ? qdisc_reset+0x50/0x50 > > > : [] __do_softirq+0x87/0x110 > > > : [] call_softirq+0x1a/0x30 > > > : [] do_softirq+0x4d/0x80 > > > : [] irq_exit+0x7e/0xa0 > > > : [] do_IRQ+0x5b/0xd0 > > > : [] common_interrupt+0x69/0x69 > > > : [] ? acpi_idle_enter_bm+0x1c0/0x1ff > > > : [] ? acpi_idle_enter_bm+0x1bb/0x1ff > > > : [] ? menu_select+0xd4/0x390 > > > : [] cpuidle_idle_call+0x8b/0xe0 > > > : [] cpu_idle+0x9d/0xe0 > > > : [] rest_init+0x62/0x64 > > > : [] start_kernel+0x358/0x363 > > > : [] x86_64_start_reservations+0x132/0x136 > > > : [] x86_64_start_kernel+0xf0/0xf7 > > > : [] ? acpi_suspend_lowlevel+0x1b0/0x1b0 > > > > We've seen this in Fedora for a long time now. As far as I know, nobody > > really knows what is going on. > > > > https://bugzilla.redhat.com/show_bug.cgi?id=717211 > > > > (Also, you probably should have sent this to netdev.) > > CC netdev, Jay Cliburn , > > It seems this driver has partial support for two TX rings. > > (TX completion only drains the first ring) > > Please try following patch. > > diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c > index b859124..1ff3c6d 100644 > --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c > +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c > @@ -2244,10 +2244,6 @@ static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb, > dev_info(&adapter->pdev->dev, "tx locked\n"); > return NETDEV_TX_LOCKED; > } > - if (skb->mark == 0x01) > - type = atl1c_trans_high; > - else > - type = atl1c_trans_normal; > > if (atl1c_tpd_avail(adapter, type) < tpd_req) { > /* no enough descriptor, just stop queue */ > Thomas, have you had the chance to test this patch ? Thanks !