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&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to