Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754685AbYK3M7r (ORCPT ); Sun, 30 Nov 2008 07:59:47 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751394AbYK3M7f (ORCPT ); Sun, 30 Nov 2008 07:59:35 -0500 Received: from ey-out-2122.google.com ([74.125.78.26]:61569 "EHLO ey-out-2122.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751273AbYK3M7e (ORCPT ); Sun, 30 Nov 2008 07:59:34 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=RbH5p9oe+T5fD4doQPbcdSrwCyYrdgsQH2b3ytCheGyjJ0TGS+5OzjVldhNM/ZXu2C X0hfnkP8YfAEYENFmW5ogyQR7ZH60sjbFENoRGwNzMLMMIQVyRijUg61FqaFBflUZyZa 5WL0MvETdXQ96IEufh15lkUWj5cCUKwPI/yFs= Date: Sun, 30 Nov 2008 13:59:20 +0100 From: Marcin Slusarz To: Andrew Morton Cc: LKML , netdev@vger.kernel.org, Arjan van de Ven Subject: Re: networking oops after resume from s2ram (2.6.28-rc6) Message-ID: <20081130125918.GA6192@joi> References: <20081128211538.GA6750@joi> <20081129193656.d8ed435d.akpm@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081129193656.d8ed435d.akpm@linux-foundation.org> User-Agent: Mutt/1.5.16 (2007-06-09) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5041 Lines: 134 On Sat, Nov 29, 2008 at 07:36:56PM -0800, Andrew Morton wrote: > On Fri, 28 Nov 2008 22:15:40 +0100 Marcin Slusarz wrote: > > > Hi > > > > Sometimes after resume from s2ram networking doesn't work, so I restart it by > > /etc/init.d/net.eth1 restart. Recently it started to lock up my box completely, > > but today it oopsed only (and killed my keyboard, so I had to save dmesg with > > mouse :D). > > > > It looks like it tries to use netconsole without working network interface... > > > > [ 1621.013789] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 > > [ 1621.013793] IP: [] skge_xmit_frame+0xb8/0x3ba > > [ 1621.013802] PGD 16880067 PUD 16894067 PMD 0 > > [ 1621.013806] Oops: 0000 [#1] PREEMPT > > [ 1621.013808] last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor > > [ 1621.013812] Dumping ftrace buffer: > > [ 1621.013814] (ftrace buffer empty) > > [ 1621.013816] CPU 0 > > [ 1621.013819] Pid: 6725, comm: ip Not tainted 2.6.28-rc6-stack+mode #51 > > [ 1621.013821] RIP: 0010:[] [] skge_xmit_frame+0xb8/0x3ba > > skge driver went splat, I guess. > > It would be fun to try using this: I had to "add support" for x86_64 oopses. Patch at the end of mail. > > From: Arjan van de Ven > > We're struggling all the time to figure out where the code came from that > oopsed.. The script below (a adaption from a script used by > kerneloops.org) can help developers quite a bit, at least for non-module > cases. > > It works and looks like this: > > [/home/arjan/linux]$ dmesg | perl scripts/markup_oops.pl vmlinux > (...) > diff -puN /dev/null scripts/markup_oops.pl > --- /dev/null > +++ a/scripts/markup_oops.pl > (...) ffffffff803f5db9 u64 map; if (skb_padto(skb, ETH_ZLEN)) return NETDEV_TX_OK; if (unlikely(skge_avail(&skge->tx_ring) < skb_shinfo(skb)->nr_frags + 1)) ffffffff803f5d75: 41 8b 94 24 a8 00 00 mov 0xa8(%r12),%edx ffffffff803f5d7c: 00 ffffffff803f5d7d: 48 2b 41 08 sub 0x8(%rcx),%rax ffffffff803f5d81: 49 03 94 24 b0 00 00 add 0xb0(%r12),%rdx ffffffff803f5d88: 00 ffffffff803f5d89: b9 01 00 00 00 mov $0x1,%ecx ffffffff803f5d8e: 48 c1 f8 03 sar $0x3,%rax ffffffff803f5d92: 0f b7 52 04 movzwl 0x4(%rdx),%edx ffffffff803f5d96: 69 c0 cd cc cc cc imul $0xcccccccd,%eax,%eax ffffffff803f5d9c: 8d 44 30 ff lea -0x1(%rax,%rsi,1),%eax ffffffff803f5da0: ff c2 inc %edx ffffffff803f5da2: 39 d0 cmp %edx,%eax ffffffff803f5da4: 0f 8c 00 03 00 00 jl ffffffff803f60aa return NETDEV_TX_BUSY; e = skge->tx_ring.to_use; ffffffff803f5daa: 48 8b 75 b8 mov -0x48(%rbp),%rsi ffffffff803f5dae: 4c 8b ae 98 00 00 00 mov 0x98(%rsi),%r13 td = e->desc; ffffffff803f5db5: 4d 8b 75 08 mov 0x8(%r13),%r14 BUG_ON(td->control & BMU_OWN); *ffffffff803f5db9: 41 83 3e 00 cmpl $0x0,(%r14) <----- faulting instruction ffffffff803f5dbd: 79 04 jns ffffffff803f5dc3 ffffffff803f5dbf: 0f 0b ud2a ffffffff803f5dc1: eb fe jmp ffffffff803f5dc1 e->skb = skb; ffffffff803f5dc3: 4d 89 65 10 mov %r12,0x10(%r13) return skb->data_len; } static inline unsigned int skb_headlen(const struct sk_buff *skb) { return skb->len - skb->data_len; ffffffff803f5dc7: 41 8b 44 24 68 mov 0x68(%r12),%eax } static inline dma_addr_t --- From: Marcin Slusarz Subject: [PATCH] markup_oops.pl: "add support" for x86_64 Find instruction pointer in x86_64 oopses. -w removed because it spammed with: "Hexadecimal number > 0xffffffff non-portable at scripts/markup_oops.pl line 52, line 383." Signed-off-by: Marcin Slusarz Cc: Arjan van de Ven --- scripts/markup_oops.pl | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/scripts/markup_oops.pl b/scripts/markup_oops.pl index 700a7a6..7038679 100644 --- a/scripts/markup_oops.pl +++ b/scripts/markup_oops.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # Copyright 2008, Intel Corporation # @@ -23,6 +23,9 @@ while () { if ($_ =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) { $target = $1; } + if ($_ =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) { + $target = $1; + } } if ($target =~ /^f8/) { -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/