Naresh, Thanks for your patience and working with me. I have done testing with 82540EM and 82546GB Intel Ethernet gigabit controller and found no issues. To be sure, I have cloned linux-stable kernel and checkout v2.6.32.41. Apply kgdboe patches that you sent. Revert e1000 changes made (i.e. remove [PATCH] e1000: test/debug patch for things like netconsole).
FYI, these cards are very old and EOL. I am not saying that I won't support your issue with this card however it may possible that the issue may only occur with the card that you own. If you have any other Intel NIC would you give it a try? Below is my command line interaction from host. I don't see any errors and everything just works fine. [tushar@tlinux-devel linux-stable]$ gdb vmlinux GNU gdb (GDB) Fedora (7.2-52.fc14) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /var/shared/git_work/external_tree/linux-stable/vmlinux...done. (gdb) target remote udp:192.168.1.5:6443 warning: The remote protocol may be unreliable over UDP. Some events may be lost, rendering further debugging impossible. Remote debugging using udp:192.168.1.5:6443 kgdb_breakpoint () at kernel/kgdb.c:1745 1745 wmb(); /* Sync point after breakpoint */ (gdb) n 1746 atomic_set(&kgdb_setting_breakpoint, 0); (gdb) n 1747 } (gdb) n kgdb_tasklet_bpt (ing=<value optimized out>) at kernel/kgdb.c:1634 1634 atomic_set(&kgdb_break_tasklet_var, 0); (gdb) n 1635 } (gdb) n tasklet_action (a=<value optimized out>) at kernel/softirq.c:442 442 tasklet_unlock(t); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff81042f97: Unknown error 4294967295. tasklet_unlock (t=0xffffffff817ca840) at include/linux/interrupt.h:454 454 { (gdb) n 456 clear_bit(TASKLET_STATE_RUN, &(t)->state); (gdb) n 457 } (gdb) n tasklet_action (a=<value optimized out>) at kernel/softirq.c:443 443 continue; (gdb) n 423 { (gdb) n 432 while (list) { (gdb) n 455 } (gdb) n __do_softirq () at kernel/softirq.c:237 237 trace_softirq_exit(h, softirq_vec); (gdb) n 238 if (unlikely(prev_count != preempt_count())) { (gdb) n 247 rcu_bh_qs(cpu); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff8104447a: Unknown error 4294967295. rcu_bh_qs (cpu=0) at kernel/rcutree.c:111 111 rdp = &per_cpu(rcu_bh_data, cpu); (gdb) n 108 { (gdb) n 111 rdp = &per_cpu(rcu_bh_data, cpu); (gdb) n 108 { (gdb) n 112 rdp->passed_quiesc_completed = rdp->completed; (gdb) n 114 rdp->passed_quiesc = 1; (gdb) n 115 } (gdb) n __do_softirq () at kernel/softirq.c:251 251 } while (pending); (gdb) n 253 local_irq_disable(); (gdb) n 255 pending = local_softirq_pending(); (gdb) n 256 if (pending && --max_restart) (gdb) n 224 set_softirq_pending(0); (gdb) n 226 local_irq_enable(); (gdb) n 231 if (pending & 1) { (gdb) n 251 } while (pending); (gdb) n 249 h++; (gdb) info r rax 0xffff88002820e770 -131940722088080 rbx 0xffffffff817bc080 -2122596224 rcx 0xdead000000200200 -2401263026316508672 rdx 0x0 0 rsi 0xffffffff817ca848 -2122536888 rdi 0x0 0 rbp 0xffff880028203f30 0xffff880028203f30 rsp 0xffff880028203ed0 0xffff880028203ed0 r8 0x2 2 r9 0x0 0 r10 0xffff88017fac9880 -131934958348160 r11 0xffff88017d9e35c0 -131934992845376 r12 0x6 6 r13 0xffffffff817bbfd8 -2122596392 r14 0x100 256 r15 0x107 263 rip 0xffffffff8104447f 0xffffffff8104447f <__do_softirq+331> eflags 0x302 [ TF IF ] cs 0x10 16 ss 0x18 24 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 (gdb) where #0 __do_softirq () at kernel/softirq.c:249 #1 0xffffffff8100cadc in ?? () at arch/x86/kernel/entry_64.S:1261 #2 0xffff880028203f48 in ?? () #3 0xffff880028203f68 in ?? () #4 0xffffffff8100e0da in do_softirq () at arch/x86/kernel/irq_64.c:138 Backtrace stopped: frame did not save the PC (gdb) n 231 if (pending & 1) { (gdb) n 232 int prev_count = preempt_count(); (gdb) n 233 kstat_incr_softirqs_this_cpu(h - softirq_vec); (gdb) n 232 int prev_count = preempt_count(); (gdb) n 233 kstat_incr_softirqs_this_cpu(h - softirq_vec); (gdb) n 235 trace_softirq_entry(h, softirq_vec); (gdb) n 236 h->action(h); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff81044409: Unknown error 4294967295. run_timer_softirq (h=0xffffffff817bc088) at kernel/timer.c:1217 1217 { (gdb) n 1218 struct tvec_base *base = __get_cpu_var(tvec_bases); (gdb) n 1217 { (gdb) n 1218 struct tvec_base *base = __get_cpu_var(tvec_bases); (gdb) n 1220 perf_event_do_pending(); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff8104afec: Unknown error 4294967295. perf_event_do_pending () at kernel/perf_event.c:2611 2611 { (gdb) n 2612 __perf_pending_run(); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff810a09a4: Unknown error 4294967295. __perf_pending_run () at kernel/perf_event.c:2560 2560 { (gdb) n 2564 list = xchg(&__get_cpu_var(perf_pending_head), PENDING_TAIL); (gdb) n 2560 { (gdb) n 2564 list = xchg(&__get_cpu_var(perf_pending_head), PENDING_TAIL); (gdb) n 2560 { (gdb) n 2564 list = xchg(&__get_cpu_var(perf_pending_head), PENDING_TAIL); (gdb) n 2562 int nr = 0; (gdb) n 2564 list = xchg(&__get_cpu_var(perf_pending_head), PENDING_TAIL); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff8109e1bf: Unknown error 4294967295. __xchg (x=18446744073709551615, ptr=0xffff88002820fa90, size=8) at /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h:23 23 /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h: No such file or directory. in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n 24 in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n 23 in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n 24 in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n 44 in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n 51 in /media/nfs/git_work/external_tree/linux-stable/arch/x86/include/asm/cmpxchg_64.h (gdb) n __perf_pending_run () at kernel/perf_event.c:2565 2565 while (list != PENDING_TAIL) { (gdb) n 2585 } (gdb) n perf_event_do_pending () at kernel/perf_event.c:2613 2613 } (gdb) n run_timer_softirq (h=<value optimized out>) at kernel/timer.c:1222 1222 hrtimer_run_pending(); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff8104aff1: Unknown error 4294967295. hrtimer_run_pending () at kernel/hrtimer.c:1413 1413 { (gdb) n 1414 if (hrtimer_hres_active()) (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff81059293: Unknown error 4294967295. hrtimer_hres_active () at kernel/hrtimer.c:503 503 { (gdb) list 498 499 /* 500 * Is the high resolution mode active ? 501 */ 502 static inline int hrtimer_hres_active(void) 503 { 504 return __get_cpu_var(hrtimer_bases).hres_active; 505 } 506 507 /* (gdb) c Continuing. ^C Program received signal SIGTRAP, Trace/breakpoint trap. kgdb_breakpoint () at kernel/kgdb.c:1745 1745 wmb(); /* Sync point after breakpoint */ (gdb) where #0 kgdb_breakpoint () at kernel/kgdb.c:1745 #1 0xffffffff810836fb in kgdb_tasklet_bpt (ing=<value optimized out>) at kernel/kgdb.c:1633 #2 0xffffffff81042f8f in tasklet_action (a=<value optimized out>) at kernel/softirq.c:441 #3 0xffffffff81044409 in __do_softirq () at kernel/softirq.c:236 #4 0xffffffff8100cadc in ?? () at arch/x86/kernel/entry_64.S:1261 #5 0xffff880028203f48 in ?? () #6 0xffff880028203f68 in ?? () #7 0xffffffff8100e0da in do_softirq () at arch/x86/kernel/irq_64.c:138 Backtrace stopped: frame did not save the PC (gdb) l 1740 void kgdb_breakpoint(void) 1741 { 1742 atomic_set(&kgdb_setting_breakpoint, 1); 1743 wmb(); /* Sync point before breakpoint */ 1744 arch_kgdb_breakpoint(); 1745 wmb(); /* Sync point after breakpoint */ 1746 atomic_set(&kgdb_setting_breakpoint, 0); 1747 } 1748 EXPORT_SYMBOL_GPL(kgdb_breakpoint); 1749 (gdb) n 1746 atomic_set(&kgdb_setting_breakpoint, 0); (gdb) n 1747 } (gdb) n kgdb_tasklet_bpt (ing=<value optimized out>) at kernel/kgdb.c:1634 1634 atomic_set(&kgdb_break_tasklet_var, 0); (gdb) n 1635 } (gdb) n tasklet_action (a=<value optimized out>) at kernel/softirq.c:442 442 tasklet_unlock(t); (gdb) n Warning: Cannot insert breakpoint 0. Error accessing memory address 0xffffffff81042f97: Unknown error 4294967295. tasklet_unlock (t=0xffffffff817ca840) at include/linux/interrupt.h:454 454 { (gdb) n 456 clear_bit(TASKLET_STATE_RUN, &(t)->state); (gdb) n 457 } (gdb) n tasklet_action (a=<value optimized out>) at kernel/softirq.c:443 443 continue; (gdb) info r rax 0xffffffff 4294967295 rbx 0xffffffff817ca840 -2122536896 rcx 0xdead000000200200 -2401263026316508672 rdx 0xffff88002820e3b0 -131940722089040 rsi 0xffffffff817ca848 -2122536888 rdi 0xffffffff817ca840 -2122536896 rbp 0xffff880028203ec0 0xffff880028203ec0 rsp 0xffff880028203ea0 0xffff880028203ea0 r8 0x1 1 r9 0x0 0 r10 0xffff88017fac9880 -131934958348160 r11 0xffffffff817bbeb8 -2122596680 r12 0xffffffff817ca848 -2122536888 r13 0xe3b0 58288 r14 0x0 0 r15 0x1 1 rip 0xffffffff81042f97 0xffffffff81042f97 <tasklet_action+124> eflags 0x346 [ PF ZF TF IF ] cs 0x10 16 ss 0x18 24 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 (gdb) - Tushar >-----Original Message----- >From: Naresh Bhat [mailto:[email protected]] >Sent: Wednesday, February 22, 2012 4:49 AM >To: Dave, Tushar N >Cc: [email protected] >Subject: Re: [PATCH] kgdboe patch > >Hi Tushar, > > >Thank you very much, I have attached my kernel configuration file too with >this e-mail. Since I was suspecting the GDB, I have tried debugging > >Host machines: >1. x86 32bit (FC13 x86 32bit GDB) - Refer my earlier e-mail logs 2. x86 >64bit GDB (Debian squeze 64bit GDB) - Logs on host as below > >I am still able to reproduce the issue "Ignoring packet error, >continue..." > >Logs on x86 64bit host machine: >========================== >nareshbhat@Lenovo-Y310:~/Projects/Development/linux-stable$ gdb vmlinux >GNU gdb (GDB) 7.0.1-debian Copyright (C) 2009 Free Software Foundation, >Inc. >License GPLv3+: GNU GPL version 3 or later ><http://gnu.org/licenses/gpl.html> >This is free software: you are free to change and redistribute it. >There is NO WARRANTY, to the extent permitted by law. Type "show copying" >and "show warranty" for details. >This GDB was configured as "x86_64-linux-gnu". >For bug reporting instructions, please see: ><http://www.gnu.org/software/gdb/bugs/>... >Reading symbols from >/home/nareshbhat/Projects/Development/linux-stable/vmlinux...done. >(gdb) target remote udp:10.162.100.52:6443 >warning: The remote protocol may be unreliable over UDP. >Some events may be lost, rendering further debugging impossible. >Remote debugging using udp:10.162.100.52:6443 kgdb_breakpoint >(new_kgdb_io_ops=0xffffffff817c52c0) at kernel/kgdb.c:1745 >1745 wmb(); /* Sync point after breakpoint */ >(gdb) n >1746 atomic_set(&kgdb_setting_breakpoint, 0); >(gdb) n >kgdb_register_io_module (new_kgdb_io_ops=0xffffffff817c52c0) at >kernel/kgdb.c:1700 >1700 } >(gdb) n >configure_kgdboe () at drivers/net/kgdboe.c:189 >189 configured = 2; >(gdb) n >192 } >(gdb) n >init_kgdboe () at drivers/net/kgdboe.c:205 >205 if (configured == 2) >(gdb) n >203 ret = configure_kgdboe(); >(gdb) n >205 if (configured == 2) >(gdb) n >206 printk(KERN_INFO "kgdboe: debugging over ethernet >enabled\n"); >(gdb) n >209 } >(gdb) n >do_one_initcall (fn=0xffffffff8131831b <init_kgdboe>) at init/main.c:726 >726 if (initcall_debug) { >(gdb) n >724 ret.result = fn(); >(gdb) n >726 if (initcall_debug) { >(gdb) n >738 if (ret.result && ret.result != -ENODEV && initcall_debug) >(gdb) n >736 msgbuf[0] = 0; >(gdb) n >738 if (ret.result && ret.result != -ENODEV && initcall_debug) >(gdb) n >741 if (preempt_count() != count) { >(gdb) n >745 if (irqs_disabled()) { >(gdb) n >749 if (msgbuf[0]) { >(gdb) n >754 } >(gdb) n >do_initcalls (unused=<value optimized out>) at init/main.c:763 >763 for (call = __early_initcall_end; call < __initcall_end; >call++) >(gdb) n >do_basic_setup (unused=<value optimized out>) at init/main.c:786 >786 do_initcalls(); >(gdb) n >n >Ignoring packet error, continuing... >Ignoring packet error, continuing... >Ignoring packet error, continuing... >Ignoring packet error, continuing... >^C^Z >[1]+ Stopped gdb vmlinux >nareshbhat@Lenovo-Y310:~/Projects/Development/linux-stable$ > > >Thanks and Regards >-Naresh Bhat > > >On 2/22/12, Dave, Tushar N <[email protected]> wrote: >> Okay. I see what you mean. I will execute the same commands tomorrow >> and get back to you. >> >> -Tushar >> >>>-----Original Message----- >>>From: Naresh Bhat [mailto:[email protected]] >>>Sent: Wednesday, February 22, 2012 12:04 AM >>>To: Dave, Tushar N >>>Cc: [email protected] >>>Subject: Re: [PATCH] kgdboe patch >>> >>>Hi Tushar, >>> >>>Thank you very much for your time and efforts. >>> >>>With the provided patch I am still able to reproduce the issue :( on >>>linux-stable (2.6.32.41 kernel). I have attached the target screen >>>shot and I have the following question >>> >>>"Is there any legacy issue between KGDBOE and NAPI ? Is that the >>>reason KGDBOE is not working on NAPI supported drivers ?" (Well I am >>>not sure about this) >>> >>>I have never faced such issues with any other Ethernet card, in which >>>drivers does not have NAPI support say e.g. TIGON3 (BCM95786) >>> >>>Is it possible to disable the NAPI in E1000 driver ? >>> >>>-- Thanks and Regards >>>Naresh Bhat >>> >>> >>>On Desktop host machine: >>> >>>====================================================================== >>>==== >>>======= >>>[nareshbhat@nareshbhat linux-stable]$ gdb vmlinux GNU gdb (GDB) Fedora >>>(7.1-34.fc13) Copyright (C) 2010 Free Software Foundation, Inc. >>>License GPLv3+: GNU GPL version 3 or later >>><http://gnu.org/licenses/gpl.html> >>>This is free software: you are free to change and redistribute it. >>>There is NO WARRANTY, to the extent permitted by law. Type "show >copying" >>>and "show warranty" for details. >>>This GDB was configured as "i686-redhat-linux-gnu". >>>For bug reporting instructions, please see: >>><http://www.gnu.org/software/gdb/bugs/>... >>>Reading symbols from >>>/mnt/sda3/gitRepositories/opensource-git/linux-stable/vmlinux...done. >>>(gdb) target remote udp:<target-IP>:6443 >>>warning: The remote protocol may be unreliable over UDP. >>>Some events may be lost, rendering further debugging impossible. >>>Remote debugging using udp:<target IP>:6443 kgdb_breakpoint >>>(new_kgdb_io_ops=<value optimized out>) at kernel/kgdb.c:1748 >>>1748 wmb(); /* Sync point after breakpoint */ >>>(gdb) n >>>1749 atomic_set(&kgdb_setting_breakpoint, 0); >>>(gdb) n >>>kgdb_register_io_module (new_kgdb_io_ops=<value optimized out>) at >>>kernel/kgdb.c:1703 >>>1703 } >>>(gdb) n >>>configure_kgdboe () at drivers/net/kgdboe.c:189 >>>189 configured = 2; >>>(gdb) n >>>192 } >>>(gdb) n >>>init_kgdboe () at drivers/net/kgdboe.c:205 >>>205 if (configured == 2) >>>(gdb) n >>>203 ret = configure_kgdboe(); >>>(gdb) n >>>205 if (configured == 2) >>>(gdb) n >>>206 printk(KERN_INFO "kgdboe: debugging over ethernet >>>enabled\n"); >>>(gdb) n >>>209 } >>>(gdb) n >>>do_one_initcall (fn=0xc1289be4 <init_kgdboe>) at init/main.c:726 >>>726 if (initcall_debug) { >>>(gdb) n >>>724 ret.result = fn(); >>>(gdb) n >>>726 if (initcall_debug) { >>>(gdb) n >>>738 if (ret.result && ret.result != -ENODEV && initcall_debug) >>>(gdb) n >>>736 msgbuf[0] = 0; >>>(gdb) n >>>738 if (ret.result && ret.result != -ENODEV && initcall_debug) >>>(gdb) n >>>741 if (preempt_count() != count) { >>>(gdb) n >>>745 if (irqs_disabled()) { >>>(gdb) n >>>749 if (msgbuf[0]) { >>>(gdb) n >>>754 } >>>(gdb) n >>>do_initcalls (unused=<value optimized out>) at init/main.c:763 >>>763 for (call = __early_initcall_end; call < __initcall_end; >>>call++) >>>(gdb) n >>>do_basic_setup (unused=<value optimized out>) at init/main.c:786 >>>786 do_initcalls(); >>>(gdb) n >>> >>>Ignoring packet error, continuing... >>>Ignoring packet error, continuing... >>>Ignoring packet error, continuing... >>>Ignoring packet error, continuing... >>>Ignoring packet error, continuing... >>>Ignoring packet error, continuing... >>>^C^Z >>>[1]+ Stopped gdb vmlinux [nareshbhat@nareshbhat linux- >>>stable]$ >>> >>>====================================================================== >>>==== >>>======= >>> >>> >>> >>>On Wed, Feb 22, 2012 at 10:15 AM, Dave, Tushar N >>><[email protected]> >>>wrote: >>>> >>>> Correcting the rx_hook (struct netpoll) method as defined in >>>> include/linux/netpoll.h >>>> >>>> Signed-off-by: Tushar Dave <[email protected]> >>>> --- >>>> >>>> drivers/net/kgdboe.c | 10 +--------- >>>> 1 files changed, 1 insertions(+), 9 deletions(-) >>>> >>>> diff --git a/drivers/net/kgdboe.c b/drivers/net/kgdboe.c index >>>> a82ed15..2efa3a6 100644 >>>> --- a/drivers/net/kgdboe.c >>>> +++ b/drivers/net/kgdboe.c >>>> @@ -50,20 +50,12 @@ static struct kparam_string kps = { >>>> .maxlen = MAX_CONFIG_LEN, >>>> }; >>>> >>>> -static void rx_hook(struct netpoll *np, int port, char *msg, int len, >>>> - struct sk_buff *skb) >>>> +static void rx_hook(struct netpoll *np, int port, char *msg, int >>>> +len) >>>> { >>>> int i; >>>> >>>> np->remote_port = port; >>>> >>>> - /* Copy the MAC address if we need to. */ >>>> - if (use_dynamic_mac) { >>>> - memcpy(np->remote_mac, eth_hdr(skb)->h_source, >>>> - sizeof(np->remote_mac)); >>>> - use_dynamic_mac = 0; >>>> - } >>>> - >>>> /* >>>> * This could be GDB trying to attach. But it could also be >>>> GDB >>>> * finishing up a session, with kgdb_connected=0 but GDB >>>> sending >>>> >> > > >-- >"For things to change, we must change" >-Naresh Bhat ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
