From: Marcin Slusarz <marcin.slusarz@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
netdev@vger.kernel.org, Arjan van de Ven <arjan@infradead.org>
Subject: Re: networking oops after resume from s2ram (2.6.28-rc6)
Date: Sun, 30 Nov 2008 13:59:20 +0100 [thread overview]
Message-ID: <20081130125918.GA6192@joi> (raw)
In-Reply-To: <20081129193656.d8ed435d.akpm@linux-foundation.org>
On Sat, Nov 29, 2008 at 07:36:56PM -0800, Andrew Morton wrote:
> On Fri, 28 Nov 2008 22:15:40 +0100 Marcin Slusarz <marcin.slusarz@gmail.com> 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: [<ffffffff803f5db9>] 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:[<ffffffff803f5db9>] [<ffffffff803f5db9>] 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 <arjan@infradead.org>
>
> 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 <skge_xmit_frame+0x3a9>
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 <skge_xmit_frame+0xc2>
ffffffff803f5dbf: 0f 0b ud2a
ffffffff803f5dc1: eb fe jmp ffffffff803f5dc1 <skge_xmit_frame+0xc0>
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 <marcin.slusarz@gmail.com>
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, <FILE> line 383."
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Arjan van de Ven <arjan@infradead.org>
---
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 (<STDIN>) {
if ($_ =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) {
$target = $1;
}
+ if ($_ =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) {
+ $target = $1;
+ }
}
if ($target =~ /^f8/) {
--
prev parent reply other threads:[~2008-11-30 12:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-28 21:15 networking oops after resume from s2ram (2.6.28-rc6) Marcin Slusarz
2008-11-30 3:36 ` Andrew Morton
2008-11-30 12:59 ` Marcin Slusarz [this message]
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=20081130125918.GA6192@joi \
--to=marcin.slusarz@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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.