lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 22 Jul 2009 14:44:38 +0200
From:	Jesper Dangaard Brouer <hawk@...x.dk>
To:	"Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@...el.com>
Cc:	"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: ixgbe: panic in ixgbe_clean_rx_irq()

Hi Peter,

Got a panic from the ixgbe driver on my 82599 based NICs, while running
two pktgen tests (1500 bytes packets) against the machine.

Kernel: 2.6.31-rc1-net-2.6-00122-ge594e96 with preemption

The panic occurs in ixgbe_clean_rx_irq+0x319/0x53b

Using objdump I can see that it seems to occur in an inlined function
ixgbe_transform_rsc_queue() in objdump "line" "2811:"
(ixgbe_clean_rx_irq starts 0x24f8 + 0x319 = 0x2811)

static inline struct sk_buff *ixgbe_transform_rsc_queue(struct sk_buff *skb)
{
        unsigned int frag_list_size = 0;

        while (skb->prev) {
    2811:       48 8b 7b 08             mov    0x8(%rbx),%rdi
    2815:       48 85 ff                test   %rdi,%rdi
    2818:       75 e9                   jne    2803 <ixgbe_clean_rx_irq+0x30b>
                frag_list_size += skb->len;
                skb->prev = NULL;
                skb = prev;
        }

        skb_shinfo(skb)->frag_list = skb->next;
    281a:       48 8b 03                mov    (%rbx),%rax
    281d:       8b 8b c8 00 00 00       mov    0xc8(%rbx),%ecx
    2823:       48 8b 93 d0 00 00 00    mov    0xd0(%rbx),%rdx
    282a:       48 89 44 0a 20          mov    %rax,0x20(%rdx,%rcx,1)
        skb->next = NULL;
    282f:       48 c7 03 00 00 00 00    movq   $0x0,(%rbx)
        skb->len += frag_list_size;
    2836:       01 73 60                add    %esi,0x60(%rbx)
        skb->data_len += frag_list_size;
    2839:       01 73 64                add    %esi,0x64(%rbx)
        skb->truesize += frag_list_size;
    283c:       01 b3 e0 00 00 00       add    %esi,0xe0(%rbx)
                }


Let me know if you want the objdump, its quite large.
-- 
Med venlig hilsen / Best regards
  Jesper Brouer
  ComX Networks A/S
  Linux Network developer
  Cand. Scient Datalog / MSc.
  Author of http://adsl-optimizer.dk
  LinkedIn: http://www.linkedin.com/in/brouer



root@...esoul:~# 
[ 9437.550709] general protection fault: 0000 [#1] PREEMPT SMP 
[ 9437.567818] last sysfs file: /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor
[ 9437.590784] CPU 6 
[ 9437.596933] Modules linked in: asus_atk0110 ixgbe hwmon mdio r8169
[ 9437.615601] Pid: 0, comm: swapper Not tainted 2.6.31-rc1-net-2.6-00122-ge594e96 #8 System Product Name
[ 9437.643775] RIP: 0010:[<ffffffffa001a811>]  [<ffffffffa001a811>] ixgbe_clean_rx_irq+0x319/0x53b [ixgbe]
[ 9437.672232] RSP: 0018:ffff880001925dc0  EFLAGS: 00010202
[ 9437.688275] RAX: 0000000000000000 RBX: 0100000000000000 RCX: ffff8800b2974000
[ 9437.709794] RDX: ffffc90011db7d20 RSI: 00000000000005dc RDI: 0100000000000000
[ 9437.731310] RBP: ffff880001925e50 R08: ffff8800af797c00 R09: ffff880080000000
[ 9437.752825] R10: ffff8800af797548 R11: ffff880001925da0 R12: ffffc90011db7cf8
[ 9437.774341] R13: ffff88003766c640 R14: ffff8800ba8ea580 R15: 0000000040000073
[ 9437.795856] FS:  0000000000000000(0000) GS:ffff880001922000(0000) knlGS:0000000000000000
[ 9437.820385] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 9437.837724] CR2: 00007f54f87a1315 CR3: 0000000001001000 CR4: 00000000000006a0
[ 9437.859244] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 9437.880759] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 9437.902276] Process swapper (pid: 0, threadinfo ffff8800bef02000, task ffff8800beef1e00)
[ 9437.926803] Stack:
[ 9437.932942]  0000004001925de0 ffff880001925e6c ffff8800bb2cf500 ffff8800be572000
[ 9437.954743] <0> ffff8800b2976530 ffff8800b2976540 00000254ad917000 0000002a00000000
[ 9437.978016] <0> 000005dc00000002 000005b200000001 ffff8800bb2cf510 0000000000000254
[ 9438.001963] Call Trace:
[ 9438.009411]  <IRQ> 
[ 9438.015833]  [<ffffffffa001aa81>] ixgbe_clean_rxonly+0x4e/0xd2 [ixgbe]
[ 9438.035534]  [<ffffffff8138a7b5>] net_rx_action+0xb2/0x234
[ 9438.052099]  [<ffffffff8103fb35>] __do_softirq+0x10c/0x211
[ 9438.068668]  [<ffffffff8100cc2c>] call_softirq+0x1c/0x28
[ 9438.084717]  [<ffffffff8100de84>] do_softirq+0x34/0x72
[ 9438.100243]  [<ffffffff8103f83f>] irq_exit+0x36/0x85
[ 9438.115250]  [<ffffffff8100d75f>] do_IRQ+0xa6/0xbd
[ 9438.129738]  [<ffffffff8100c493>] ret_from_intr+0x0/0xa
[ 9438.145524]  <EOI> 
[ 9438.151946]  [<ffffffff81012355>] ? mwait_idle+0x89/0x9f
[ 9438.167991]  [<ffffffff81012348>] ? mwait_idle+0x7c/0x9f
[ 9438.187996]  [<ffffffff8142c948>] ? atomic_notifier_call_chain+0xf/0x11
[ 9438.207953]  [<ffffffff8100aedb>] ? cpu_idle+0x4f/0xb3
[ 9438.223479]  [<ffffffff81424478>] ? start_secondary+0x17f/0x184
[ 9438.241350] Code: 48 eb 09 48 6b 55 c8 28 49 03 55 08 41 f6 c7 02 74 60 31 f6 48 83 7b 08 00 75 10 eb 3f 03 73 60 48 c7 43 08 00
 00 00 00 48 89 fb <48> 8b 7b 08 48 85 ff 75 e9 48 8b 03 8b 8b c8 00 00 00 48 8b 93 
[ 9438.298386] RIP  [<ffffffffa001a811>] ixgbe_clean_rx_irq+0x319/0x53b [ixgbe]
[ 9438.319652]  RSP <ffff880001925dc0>
[ 9438.330593] ---[ end trace f60de63a65a43085 ]---
[ 9438.344593] Kernel panic - not syncing: Fatal exception in interrupt
[ 9438.363810] Pid: 0, comm: swapper Tainted: G      D    2.6.31-rc1-net-2.6-00122-ge594e96 #8
[ 9438.389159] Call Trace:
[ 9438.396655]  <IRQ>  [<ffffffff81427c6b>] panic+0xaa/0x155
[ 9438.413056]  [<ffffffff8103f88c>] ? irq_exit+0x83/0x85
[ 9438.428627]  [<ffffffff8100c493>] ? ret_from_intr+0x0/0xa
[ 9438.444975]  [<ffffffff8142b039>] ? oops_end+0x6b/0xba
[ 9438.460543]  [<ffffffff8142b078>] oops_end+0xaa/0xba
[ 9438.475589]  [<ffffffff8100f0d1>] die+0x55/0x5e
[ 9438.489332]  [<ffffffff8142ac8e>] do_general_protection+0x123/0x12b
[ 9438.508288]  [<ffffffff813b39ad>] ? ip_rcv+0x2a7/0x2de
[ 9438.523853]  [<ffffffff8142a5df>] general_protection+0x1f/0x30
[ 9438.541509]  [<ffffffffa001a811>] ? ixgbe_clean_rx_irq+0x319/0x53b [ixgbe]
[ 9438.562298]  [<ffffffffa001aa81>] ixgbe_clean_rxonly+0x4e/0xd2 [ixgbe]
[ 9438.582036]  [<ffffffff8138a7b5>] net_rx_action+0xb2/0x234
[ 9438.598641]  [<ffffffff8103fb35>] __do_softirq+0x10c/0x211
[ 9438.615250]  [<ffffffff8100cc2c>] call_softirq+0x1c/0x28
[ 9438.631337]  [<ffffffff8100de84>] do_softirq+0x34/0x72
[ 9438.646904]  [<ffffffff8103f83f>] irq_exit+0x36/0x85
[ 9438.661949]  [<ffffffff8100d75f>] do_IRQ+0xa6/0xbd
[ 9438.676476]  [<ffffffff8100c493>] ret_from_intr+0x0/0xa
[ 9438.692303]  <EOI>  [<ffffffff81012355>] ? mwait_idle+0x89/0x9f
[ 9438.710264]  [<ffffffff81012348>] ? mwait_idle+0x7c/0x9f
[ 9438.726354]  [<ffffffff8142c948>] ? atomic_notifier_call_chain+0xf/0x11
[ 9438.746348]  [<ffffffff8100aedb>] ? cpu_idle+0x4f/0xb3
[ 9438.761914]  [<ffffffff81424478>] ? start_secondary+0x17f/0x184


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists