各位工程师好:
我使用的是nxp imx6d的芯片,板子是参照官方套件板设计,目前发现一个问题,使用r8111网络芯片的时候,ping小于468字节长度的包的时候是正常的,但是ping大于等于468的包时网络会挂掉,打印信息:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x24c/0x26c()
NETDEV WATCHDOG: eth1 (r8169): transmit queue 0 timed out
Modules linked in: r8169
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.52 #2
[<800155ac>] (unwind_backtrace) from [<8001166c>] (show_stack+0x10/0x14)
[<8001166c>] (show_stack) from [<807289e4>] (dump_stack+0x64/0xb4)
[<807289e4>] (dump_stack) from [<80032f14>] (warn_slowpath_common+0x64/0x84)
[<80032f14>] (warn_slowpath_common) from [<80032fc8>] (warn_slowpath_fmt+0x30/0x40)
[<80032fc8>] (warn_slowpath_fmt) from [<805dfa6c>] (dev_watchdog+0x24c/0x26c)
[<805dfa6c>] (dev_watchdog) from [<8003c124>] (call_timer_fn.isra.31+0x24/0x84)
[<8003c124>] (call_timer_fn.isra.31) from [<8003c33c>] (run_timer_softirq+0x1b8/0x1cc)
[<8003c33c>] (run_timer_softirq) from [<80036998>] (__do_softirq+0x104/0x218)
[<80036998>] (__do_softirq) from [<80036d50>] (irq_exit+0xa8/0xec)
[<80036d50>] (irq_exit) from [<8000ed44>] (handle_IRQ+0x3c/0x90)
[<8000ed44>] (handle_IRQ) from [<80008578>] (gic_handle_irq+0x28/0x5c)
[<80008578>] (gic_handle_irq) from [<80012100>] (__irq_svc+0x40/0x70)
Exception stack(0x80a67f28 to 0x80a67f70)
7f20: 80a67f70 00000000 c4a53677 000001b1 ab7330d0 00000000
7f40: c40e74b7 000001b1 80a749c8 412fc09a 00000001 00000000 00000000 80a67f70
7f60: 80076fb8 804ceddc 60000013 ffffffff
[<80012100>] (__irq_svc) from [<804ceddc>] (cpuidle_enter_state+0x50/0xec)
[<804ceddc>] (cpuidle_enter_state) from [<804cef24>] (cpuidle_idle_call+0xac/0x164)
[<804cef24>] (cpuidle_idle_call) from [<8000f070>] (arch_cpu_idle+0x8/0x44)
[<8000f070>] (arch_cpu_idle) from [<8006b6e0>] (cpu_startup_entry+0x9c/0x138)
[<8006b6e0>] (cpu_startup_entry) from [<80a03a90>] (start_kernel+0x2fc/0x358)
---[ end trace 88c303707c2ce873 ]---
64 bytes from 192.169.18.133: seqr8169 0000:01:00.0 eth1: link up
目前尝试了nxp官方提供的linux 内核有:imx_3.14.52_1.1.0_ga imx_3.0.35_1.1.0_ga imx_3.10.17_1.1.0_ga。
使用的驱动是内核自带的 r8169.ko。
内核config选项:
inux config:
Bus support --->
PCI support
Message Signaled Interrupts (MSI and MSI-X)
PCI host controller drivers --->
Freescale i.MX6 PCIe controller
Device Drivers --->
Network device support --->
Realtek devices
<*> Realtek 8169 gigabit ethernet support
驱动也尝试了realtek官方的r8168-8.032.00,都是有这个ping大包就网卡down的问题,ping小于468的包就一直稳定,测试的时候发现是网卡发送大包的时候timeout,接收大包是正常的,就发送大包就奔溃。请问各位工程师这个问题是linux内核配置方面的问题还是网卡驱动的问题呢?可以提供一些debug方向吗?有没有也遇到这个问题的,有没有调试路径参考下。因为我看国外论坛也讨论过类似的问题( https://community.nxp.com/thread/318283?commentID=432726#comment-432726 ),但是最后没有给出一个正确的答案,还望各位帮助一下,谢谢! |