免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6250 | 回复: 5
打印 上一主题 下一主题

do_cpu invoked from kernel context! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-22 09:59 |只看该作者 |倒序浏览
项目用到了ar7240的芯片
我们在测试1个ap对32个sta的性能测试遇到了问题,在32个sta都打上100M流量的时候,AP打印出如下log,然后宕机。

请教一下是否遇到过如此的问题?
或能否给一些建议和支持


do_cpu invoked from kernel context![#1]:
Cpu 0
$ 0   : 00000000 fffffffb c00616ac 0000012c
$ 4   : 8035d000 80c37d20 ffff03d9 80c37da8
$ 8   : 000f4230 f866a600 80305000 80278000
$12   : 80278000 ffffffff 00100100 80278000
$16   : 8035d0bc 8035d000 80272210 80272200
$20   : ffff03d8 80220000 00200200 7f98eb28
$24   : 00000000 00469550                  
$28   : 80c36000 80c37d10 80c37f30 80177984
Hi    : 00000001
Lo    : 00000002
epc   : c00616ac do_cpu invoked from kernel context![#2]:
Cpu 0
$ 0   : 00000000 0000000c c006212c 00000000
$ 4   : 00000005 8035d000 80c37870 000000a0
$ 8   : 802181c0 1000001f 80260000 80260000
$12   : 80260000 fffffffe ffffffff 00000010
$16   : 803b4a00 00000000 00000001 00000000
$20   : 80c37870 00000005 80c37bb8 80c37bb8
$24   : 00000007 80c37a77                  
$28   : 80c36000 80c37800 80c37bbc 800a646c
Hi    : 00000074
Lo    : 39578a00
epc   : c006212c do_cpu invoked from kernel context![#3]:
Cpu 0
$ 0   : 00000000 0000000c 80220000 c0090b04
$ 4   : c006212c 80c376a8 80c376ac 80c376b0
$ 8   : 00000004 80218428 80260000 80260000
$12   : 80260000 fffffffe ffffffff 00000010
$16   : c0090b00 c006212c 801f67ac 80c37548
$20   : 80230000 80220000 80c376a8 80c376a8
$24   : 00000007 80c37567                  
$28   : 80c36000 80c374c0 80c376ac 800a5db0
Hi    : 00000074
Lo    : 39578a00
epc   : 800a4ddc module_address_lookup+0x44/0x2c4     Tainted: P     
ra    : 800a5db0 kallsyms_lookup+0x16c/0x2f8
Status: 1000d402    KERNEL EXL
Cause : 5080a02c
PrId  : 00019374
Modules linked in:do_cpu invoked from kernel context![#4]:
Cpu 0
$ 0   : 00000000 00000000 00000015 80220000
$ 4   : c0090b04 80218450 0000000d 8026e984
$ 8   : 00000004 80218428 80260000 80260000
$12   : 80260000 fffffffe ffffffff 00000010
$16   : c0090b00 80c37410 801f67ac 80c37548
$20   : 80230000 80220000 80c376a8 80c376a8
$24   : 00000004 80c37254                  
$28   : 80c36000 80c37398 80c376ac 800a59a4
Hi    : 00000074
Lo    : 39578a00
epc   : 800a59b0 print_modules+0x2c/0x94     Tainted: P     
ra    : 800a59a4 print_modules+0x20/0x94
Status: 1000d402    KERNEL EXL
Cause : 5080a02c
PrId  : 00019374
Modules linked in:do_cpu invoked from kernel context![#5]:
Cpu 0
$ 0   : 00000000 00000000 00000015 80220000
$ 4   : c0090b04 80218450 0000000d 8026e984
$ 8   : 00000004 80218428 80260000 80260000
$12   : 80260000 fffffffe ffffffff 00000010
$16   : c0090b00 80c372e8 801f67ac 80c37548
$20   : 80230000 80220000 80c376a8 80c376a8
$24   : 00000004 80c3712c                  
$28   : 80c36000 80c37270 80c376ac 800a59a4
Hi    : 00000074
Lo    : 39578a00
epc   : 800a59b0 print_modules+0x2c/0x94     Tainted: P     
ra    : 800a59a4 print_modules+0x20/0x94
Status: 1000d402    KERNEL EXL
Cause : 5080a02c
PrId  : 00019374
。。。。。。

论坛徽章:
0
2 [报告]
发表于 2011-04-22 17:55 |只看该作者
以上是错误的表现。
而且有的时候还出现如下的log
~ # ps
  PID  Uid     VmSize Stat Command
    1 root        220 S   init
    2 root            SWN [ksoftirqd/0]
    3 root            SW< [events/0]
    4 root            SW< [khelper]
    5 root            SW< [kthread]
    6 root            SW< [kblockd/0]
    7 root            SW  [pdflush]
    8 root            SW  [pdflush]
   10 root            SW< [aio/0]
    9 root            SW  [kswapd0]
   11 root            SW  [mtdblockd]
   17 root            SWN [jffs2_gcd_mtd4]
  685 root        188 S   syslogd -C8
  688 root        156 S   klogd
  693 root         60 S   /usr/sbin/telnetd
  696 root         68 S   /usr/sbin/httpd -h /usr/www/
  697 root        384 S   /usr/sbin/monitor
  699 root        384 S   /usr/sbin/monitor
  701 root         60 D   /bin/factoryreset /dev/freset
  703 root        324 S   -sh
  704 root        384 S   /usr/sbin/monitor
  716 root        188 R   ps
~ # AG7240: unit 1: phy 0 not up carrier 1
br0: port 2(eth1) entering disabled state
AG7240: enet unit:1 phy:0 is up...Mii 100Mbps full duplex
AG7240: done cfg2 0x7215 ifctl 0x0 miictrl
br0: port 2(eth1) entering learning state
br0: topology change detected, propagating
br0: port 2(eth1) entering forwarding state
-----mac: rx_packets  0  mac_base, 0x1a000000
-----mac: tx_packets  14
-----mac: rx_bytes  0
-----mac: tx_bytes  950
CPU 0 Unable to handle kernel paging request at virtual address 122a0214, epc == c0060458, ra == c0060c74
Oops[#1]:
Cpu 0
$ 0   : 00000000 00000001 9be60210 b8060000
$ 4   : 802c404a 00000214 37a8802c 4064c006
$ 8   : 4064802c 76440000 80260000 8055f49c
$12   : ffffffff ffffffff 00100100 00200200
$16   : 80220000 c0060000 00000001 802c405e
$20   : 122a0210 802c404a 1fffffff a0000000
$24   : 00000010 c0061248
$28   : 80214000 80215dc0 b806001c c0060c74
Hi    : 00000245
Lo    : 1eb5b200
epc   : c0060458 check_for_dma_status+0x70/0x4c0 [ag7240_mod]     Tainted: P
ra    : c0060c74 led_control_func+0x3cc/0x478 [ag7240_mod]
Status: 1000f403    KERNEL EXL IE
Cause : 00800008
BadVA : 122a0214
PrId  : 00019374
Modules linked in: wlan_scan_ap ath_pktlog wlan_me wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_xauth ath_pci ath_dev ath_rate_atheros wlan ath_hal ag7240_mo
d
Process swapper (pid: 0, threadinfo=80214000, task=80216000)
Stack : 00000000 00000004 00000019 c005e234 c005e368 c005e360 80220000 c0060000
        80215e50 00000000 80267644 c0060000 00200200 c00670dc c0060000 c0060c74
        809303e0 0000005a 00000001 00000001 00000100 c00608a8 80215e50 00200200
        80267644 80220000 00200200 80050000 80014380 8008ffbc 00000000 00000001
        80260000 80260000 8008bbb8 00000000 80215e50 80215e50 0000000a 802673d8
        ...
Call Trace:
[<c005e234>] athrs26_reg_read+0x0/0xa8 [ag7240_mod]
[<c005e368>] s26_wr_phy+0x8c/0xc4 [ag7240_mod]
[<c005e360>] s26_wr_phy+0x84/0xc4 [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060c74>] led_control_func+0x3cc/0x478 [ag7240_mod]
[<c00608a8>] led_control_func+0x0/0x478 [ag7240_mod]
[<8008ffbc>] run_timer_softirq+0xf8/0x1e8
[<8008bbb8>] tasklet_action+0x80/0xd0
[<8008b6b4>] __do_softirq+0x84/0x130
[<8023e000>] kernel_entry+0x0/0x7c
[<8008b7c8>] do_softirq+0x68/0x80
[<80064ed4>] do_IRQ+0x24/0x34
[<80061668>] ar7240_interrupt_receive+0xe8/0x100
[<80061668>] ar7240_interrupt_receive+0xe8/0x100
[<800633e4>] r4k_wait+0x0/0xc
[<8023e000>] kernel_entry+0x0/0x7c
[<c00a9c0c>] ath_pwrsave_set_state+0x0/0x234 [ath_dev]
[<800650c4>] cpu_idle+0x34/0x58
[<800633e8>] r4k_wait+0x4/0xc
[<8023e81c>] start_kernel+0x210/0x24c
[<8023e12c>] unknown_bootoption+0x0/0x310


Code: 00461021  00021080  0122a021 <8e830004> 00061100  3c0a8022  24c60001  0460000b  01021021
Kernel panic - not syncing: Aiee, killing interrupt handler!
Call Trace:
[<80085608>] panic+0x60/0x180
[<8008860c>] do_exit+0x7cc/0xc04
[<8006a668>] __declare_dbe_table+0x0/0x8
[<8006e3f8>] do_page_fault+0x208/0x3d0
[<c0060458>] check_for_dma_status+0x70/0x4c0 [ag7240_mod]
[<c0060c74>] led_control_func+0x3cc/0x478 [ag7240_mod]
[<c0167d24>] ath_isr+0xf0/0xf8 [ath_pci]
[<800adae4>] __alloc_pages+0x64/0x344
[<800a646c>] handle_IRQ_event+0x74/0x104
[<8006b6f8>] do_ade+0x18/0x350
[<c00cd200>] HDPRINTF+0x0/0x6c [ath_hal]
[<8006b6f8>] do_ade+0x18/0x350
[<8006ba28>] do_ade+0x348/0x350
[<800a661c>] __do_IRQ+0x120/0x144
[<8006b6f8>] do_ade+0x18/0x350
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<8006eb8c>] tlb_do_page_fault_0+0xf4/0xfc
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0061248>] ag7240_mii_write+0x0/0xf0 [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c005e2b8>] athrs26_reg_read+0x84/0xa8 [ag7240_mod]
[<c0060c74>] led_control_func+0x3cc/0x478 [ag7240_mod]
[<c0060458>] check_for_dma_status+0x70/0x4c0 [ag7240_mod]
[<c005e234>] athrs26_reg_read+0x0/0xa8 [ag7240_mod]
[<c005e368>] s26_wr_phy+0x8c/0xc4 [ag7240_mod]
[<c005e360>] s26_wr_phy+0x84/0xc4 [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060000>] ag7240_hw_setup+0x4b0/0x4dc [ag7240_mod]
[<c0060c74>] led_control_func+0x3cc/0x478 [ag7240_mod]
[<c00608a8>] led_control_func+0x0/0x478 [ag7240_mod]
[<8008ffbc>] run_timer_softirq+0xf8/0x1e8
[<8008bbb8>] tasklet_action+0x80/0xd0
[<8008b6b4>] __do_softirq+0x84/0x130
[<8023e000>] kernel_entry+0x0/0x7c
[<8008b7c8>] do_softirq+0x68/0x80
[<80064ed4>] do_IRQ+0x24/0x34
[<80061668>] ar7240_interrupt_receive+0xe8/0x100
[<80061668>] ar7240_interrupt_receive+0xe8/0x100
[<800633e4>] r4k_wait+0x0/0xc
[<8023e000>] kernel_entry+0x0/0x7c
[<c00a9c0c>] ath_pwrsave_set_state+0x0/0x234 [ath_dev]
[<800650c4>] cpu_idle+0x34/0x58
[<800633e8>] r4k_wait+0x4/0xc
[<8023e81c>] start_kernel+0x210/0x24c
[<8023e12c>] unknown_bootoption+0x0/0x310

<1>Dumping from bottom half!

dump: Dumping to device 0x1f05 on CPU 0 ...
dump: Compression value is 0x0, Writing dump header panic+0x68/0x180 panic+0x60/0x180


dump: Dump Complete; 0 dump pages saved.

请大侠帮助分析一下啦!!!!

论坛徽章:
0
3 [报告]
发表于 2011-04-22 23:39 |只看该作者
看了一下你的log,根据如下几个关键的错误信息
1. CPU 0 Unable to handle kernel paging request at virtual address 122a0214, epc == c0060458, ra == c0060c74
2. Call Trace:
[<c005e234>] athrs26_reg_read+0x0/0xa8 [ag7240_mod]
[<c005e368>] s26_wr_phy+0x8c/0xc4 [ag7240_mod]
3. Call Trace:
[<80085608>] panic+0x60/0x180
[<8008860c>] do_exit+0x7cc/0xc04
[<8006a668>] __declare_dbe_table+0x0/0x8
[<8006e3f8>] do_page_fault+0x208/0x3d0
[<c0060458>] check_for_dma_status+0x70/0x4c0 [ag7240_mod]

表象上看好像是寄存器地址空间映射不正确,寄存器访问出错造成的问题

可以写一段代码检测下ag7240所有相关寄存器能否正常访问

先从这个角度分析看看能否找到问题,如果不能再进一步分析

论坛徽章:
0
4 [报告]
发表于 2011-04-25 09:55 |只看该作者
多谢指点啊,寄存器的访问都是正常的,我侧过了。
还有就是这个问题不是经常出现的,这是AP出现的问题,而且问题只出现在下面挂32个station的时候出现(同时打流量),同时连接15个station打流量,不会出现问题的。

所以这个问题很是棘手,应该不是wlan的问题,问题要是定位在ag7240的mac驱动,应该如何分析呢???
请指教

论坛徽章:
0
5 [报告]
发表于 2011-04-25 10:44 |只看该作者
本帖最后由 AlexWoo2011 于 2011-04-25 11:03 编辑

结合你4楼的信息来看,问题应该是出现在极限流量的情况下~~

可不可以假设是这样一种情况:假设有无限多的数据流量,也就是说根本无法完全正确接受所有数据的情况下,驱动中的容错处理是如何做的呢?

结合你的具体情况来说,你可以仔细检查一下数据接收中断处理~从错误报告上来看很像是在极值情况下,具体负责数据接受的buttom_half报错了

特别仔细检查下极值情况下应用DMA实现数据接收有没有做容错处理

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
6 [报告]
发表于 2012-09-13 20:22 |只看该作者
实验是其他的流量工具跑,主要目的是加大吞吐量。而不是标志的流量。个人觉得是高通信量下的功率不稳定问题造成的硬件出错
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP