处理网络时内核崩溃
当我的 DSL 路由器中传输大量 udp 数据时发生错误。
我的环境:
pc1 ----(以太网)--->DSLAM--(PPPoEoA)-->DSL 路由器--(以太网)--pc2,
pc1向pc2发送udp数据,udp数据大小:1460字节。速度:20Mbps,
cpu:mips,ram:16M
DSL路由器有eth0,wl0和ATM,它们在br0中。
要点:
1. TCP在类似测试中是没问题的。
2. ppp mtu为1492。
3. 当udp数据大小小于(1452) ppp mtu时,不会出错。
4.当禁用wl0时,UDP测试正常,没有错误。
任何想法表示赞赏!
错误信息:
sirq-net-rx/0:页面分配失败。顺序:0,模式:0x20 调用跟踪:[<80017010>][<80017010>][<8005559c>][<800685a4>][<80068948>][<8006ad00>][<8006af44>][<8006 896c> ][<80164130>][<80011a40>][<80142a08>][<801429e8>][<80143db4>][<8006af44>][<80141e68>][<8016580 8>][ <80165758>][<80164130>][<80131d2c>][<80164130>][][<8015dd1c>][<8014adcc>][<80164130>][<80164130& >][ <8015df5c>][<801698a0>][<80164130>][<80164a44>][<80164130>][<80148930>][<8014a794>][<8014a9 50>][< 80029778>][<80033238>][<80033100>][<80043f28>][<80013898>][<80013888>]
内存信息:
每个 CPU 的 DMA:
CPU 0: 热: hi: 0, btch: 1 usd: 0 冷: hi: 0, btch: 1 usd: 0
活动:1178 不活动:721 脏:0 写回:0 不稳定:0
空闲:35 平板:438 映射:660 页表:58 反弹:0
DMA 空闲:140kB 最小值:368kB 低:400kB 高:432kB 活动:4712kB 不活动:2884kB 存在:15876kB Pages_scanned:0 all_unreclaimable?没有
lowmem_reserve[]: 0 0
DMA:1*4kB 1*8kB 0*16kB 0*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 140kB
免费交换:0kB
4000页RAM
0 页 HIGHMEM
700 个保留页
共享 1958 个页面
0 个页面交换缓存
CPU 0 无法处理虚拟地址 00000074 处的内核分页请求,epc == 8016582c,ra == 80165814
哎呀[#1]:
中央处理器0
$ 0 : 00000000 1000fc00 00000000 00000068
$ 4 : 80cec490 80cd5410 00000002 fffe2080
$ 8 : 00000056 00000055 00000800 0000000a
$12 : 00000002 00000000 8028fcf4 00000000
16 美元:00000000 807dcf80 807dcf80 00000000
20 美元:00000019 0a6e3365 000089af 00000000
$24:00000000 80131d2c
28 美元:80f8e000 80f8fd88 00000002 80165814
您好:00000056
洛:00000000
EPC:8016582c 受污染:P
ra:80165814 状态:1000fc03 内核 EXL IE
原因:00800008
坏VA:00000074
密码:00029010
链接的模块:
nf_nat_tftp init_addr(00000000 - 00000000)、core_addr(c00cc000 - c00cc064)
nf_nat_irc init_addr(00000000 - 00000000), core_addr(c00ca000 - c00ca184)
nf_nat_rtsp init_addr(00000000 - 00000000), core_addr(c00c8000 - c00c8884)
nf_nat_sip init_addr(00000000 - 00000000), core_addr(c00c6000 - c00c6b9c)
nf_nat_h323 init_addr(00000000 - 00000000), core_addr(c00ab000 - c00ac27c)
nf_nat_ftp init_addr(00000000 - 00000000), core_addr(c00b6000 - c00b6444)
nf_conntrack_tftp init_addr(00000000 - 00000000), core_addr(c00b4000 - c00b4200)
nf_conntrack_irc init_addr(00000000 - 00000000), core_addr(c00ae000 - c00ae590)
nf_conntrack_rtsp init_addr(00000000 - 00000000), core_addr(c0079000 - c007a140)
nf_conntrack_sip init_addr(00000000 - 00000000), core_addr(c00b0000 - c00b1930)
nf_conntrack_ftp init_addr(00000000 - 00000000), core_addr(c006b000 - c006bce0)
nf_conntrack_h323 init_addr(00000000 - 00000000), core_addr(c00b8000 - c00bc534)
nf_nat_pptp init_addr(00000000 - 00000000), core_addr(c0077000 - c00773fc)
nf_conntrack_pptp init_addr(00000000 - 00000000), core_addr(c0075000 - c0075a30)
nf_nat_proto_gre init_addr(00000000 - 00000000), core_addr(c0073000 - c0073204)
nf_conntrack_proto_gre init_addr(00000000 - 00000000), core_addr(c006e000 - c006e700)
ip_queue init_addr(00000000 - 00000000), core_addr(c0070000 - c0070fec)
iptable_mangle init_addr(00000000 - 00000000), core_addr(c0048000 - c004819c)
xt_MARK init_addr(00000000 - 00000000), core_addr(c0066000 - c00660e8)
xt_mark init_addr(00000000 - 00000000), core_addr(c0064000 - c0064048)
ipt_LOG init_addr(00000000 - 00000000), core_addr(c0068000 - c0068d28)
xt_limit init_addr(00000000 - 00000000), core_addr(c0062000 - c0062228)
xt_state init_addr(00000000 - 00000000), core_addr(c0055000 - c00550e8)
ipt_REDIRECT init_addr(00000000 - 00000000), core_addr(c004a000 - c004a0f4)
ipt_MASQUERADE init_addr(00000000 - 00000000), core_addr(c0053000 - c0053660)
iptable_nat init_addr(00000000 - 00000000), core_addr(c0050000 - c0050b44)
nf_nat init_addr(00000000 - 00000000), core_addr(c004c000 - c004e1cc)
nf_conntrack_ipv4 init_addr(00000000 - 00000000), core_addr(c001f000 - c00204d4)
nf_conntrack init_addr(00000000 - 00000000), core_addr(c0057000 - c005dd94)
nfnetlink init_addr(00000000 - 00000000), core_addr(c002e000 - c002e9cc)
xt_SKIPLOG init_addr(00000000 - 00000000), core_addr(c002c000 - c002c048)
xt_TCPMSS init_addr(00000000 - 00000000), core_addr(c002a000 - c002a938)
xt_tcpudp init_addr(00000000 - 00000000), core_addr(c0028000 - c0028388)
iptable_filter init_addr(00000000 - 00000000), core_addr(c0022000 - c00220fc)
ip_tables init_addr(00000000 - 00000000), core_addr(c0024000 - c0025d40)
x_tables init_addr(00000000 - 00000000), core_addr(c0008000 - c0009794)
wl(P) init_addr(00000000 - 00000000), core_addr(c01a1000 - c021a6fc)
bcm_enet(P) init_addr(00000000 - 00000000), core_addr(c003c000 - c00440e8)
adsldd(P) init_addr(00000000 - 00000000), core_addr(c007c000 - c009b9c8)
bcmxtmcfg(P) init_addr(00000000 - 00000000), core_addr(c0031000 - c00393bc)
pktflow(P) init_addr(00000000 - 00000000), core_addr(c0015000 - c00182c0)
进程 Sirq-net-rx/0 (pid: 5, threadinfo=80f8e000, task=80f8dbf8)
堆栈:80f8fec8 80f8fec8 802a3af0 80000000 80164130 00000000 00000000 80131d2c
00000068 80ddcfa0 80cec490 00000002 80f8fec8 80f8fec8 802a3af0 80000000
80164130 00000000 80000000 c001f530 c00221c8 807d7740 80ccb800 fffffff4
80f8fe58 80ddcfa0 00000000 8015dd1c 80ccb800 8014adcc 807d77a8 80ddcfa0
80164130 fffc5923 80f8fec8 00000000 802a3af0 80ddcfa0 80164130 00000000
... 调用跟踪:[<80164130>][<80131d2c>][<80164130>][][<8015dd1c>][<8014adcc>][<80164130>][<80164130>][< 8015df5c>][<801698a0>][<80164130>][<80164a44>][<80164130>][<80148930>][<8014a794>][<8014a950> >] [<80029778> ] [&lt; 80033238&gt;] [&lt; 80033100&gt;] [&lt; 80043f28&gt;] [&lt; 80013898&gt;
] 30420008 1440003b 3c028027 8e430058 10600038
内核恐慌 - 不同步:中断中的致命异常
an error happens when lots of udp data transmission in my DSL router.
my enviroment:
pc1 ----(ethernet)--->DSLAM--(PPPoEoA)-->DSL router--(ethernet)--pc2,
pc1 send udp data to pc2, udp data size:1460 bytes. speed: 20Mbps,
cpu: mips, ram: 16M
DSL router has eth0, wl0 and ATM, they are in br0.
key points:
1. TCP is ok in the similar testing.
2. ppp mtu is 1492.
3. when udp data size is smaller(1452) than ppp mtu, no error.
4. when disable wl0, UDP testing is ok, no error.
Any idea is appreciated!
error info:
sirq-net-rx/0: page allocation failure. order:0, mode:0x20
Call Trace:[<80017010>][<80017010>][<8005559c>][<800685a4>][<80068948>][<8006ad00>][<8006af44>][<8006896c>][<80164130>][<80011a40>][<80142a08>][<801429e8>][<80143db4>][<8006af44>][<80141e68>][<80165808>][<80165758>][<80164130>][<80131d2c>][<80164130>][][<8015dd1c>][<8014adcc>][<80164130>][<80164130>][<8015df5c>][<801698a0>][<80164130>][<80164a44>][<80164130>][<80148930>][<8014a794>][<8014a950>][<80029778>][<80033238>][<80033100>][<80043f28>][<80013898>][<80013888>]
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:1178 inactive:721 dirty:0 writeback:0 unstable:0
free:35 slab:438 mapped:660 pagetables:58 bounce:0
DMA free:140kB min:368kB low:400kB high:432kB active:4712kB inactive:2884kB present:15876kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
DMA: 1*4kB 1*8kB 0*16kB 0*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 140kB
Free swap: 0kB
4000 pages of RAM
0 pages of HIGHMEM
700 reserved pages
1958 pages shared
0 pages swap cached
CPU 0 Unable to handle kernel paging request at virtual address 00000074, epc == 8016582c, ra == 80165814
Oops[#1]:
Cpu 0
$ 0 : 00000000 1000fc00 00000000 00000068
$ 4 : 80cec490 80cd5410 00000002 fffe2080
$ 8 : 00000056 00000055 00000800 0000000a
$12 : 00000002 00000000 8028fcf4 00000000
$16 : 00000000 807dcf80 807dcf80 00000000
$20 : 00000019 0a6e3365 000089af 00000000
$24 : 00000000 80131d2c
$28 : 80f8e000 80f8fd88 00000002 80165814
Hi : 00000056
Lo : 00000000
epc : 8016582c Tainted: P
ra : 80165814 Status: 1000fc03 KERNEL EXL IE
Cause : 00800008
BadVA : 00000074
PrId : 00029010
Modules linked in:
nf_nat_tftp init_addr(00000000 - 00000000), core_addr(c00cc000 - c00cc064)
nf_nat_irc init_addr(00000000 - 00000000), core_addr(c00ca000 - c00ca184)
nf_nat_rtsp init_addr(00000000 - 00000000), core_addr(c00c8000 - c00c8884)
nf_nat_sip init_addr(00000000 - 00000000), core_addr(c00c6000 - c00c6b9c)
nf_nat_h323 init_addr(00000000 - 00000000), core_addr(c00ab000 - c00ac27c)
nf_nat_ftp init_addr(00000000 - 00000000), core_addr(c00b6000 - c00b6444)
nf_conntrack_tftp init_addr(00000000 - 00000000), core_addr(c00b4000 - c00b4200)
nf_conntrack_irc init_addr(00000000 - 00000000), core_addr(c00ae000 - c00ae590)
nf_conntrack_rtsp init_addr(00000000 - 00000000), core_addr(c0079000 - c007a140)
nf_conntrack_sip init_addr(00000000 - 00000000), core_addr(c00b0000 - c00b1930)
nf_conntrack_ftp init_addr(00000000 - 00000000), core_addr(c006b000 - c006bce0)
nf_conntrack_h323 init_addr(00000000 - 00000000), core_addr(c00b8000 - c00bc534)
nf_nat_pptp init_addr(00000000 - 00000000), core_addr(c0077000 - c00773fc)
nf_conntrack_pptp init_addr(00000000 - 00000000), core_addr(c0075000 - c0075a30)
nf_nat_proto_gre init_addr(00000000 - 00000000), core_addr(c0073000 - c0073204)
nf_conntrack_proto_gre init_addr(00000000 - 00000000), core_addr(c006e000 - c006e700)
ip_queue init_addr(00000000 - 00000000), core_addr(c0070000 - c0070fec)
iptable_mangle init_addr(00000000 - 00000000), core_addr(c0048000 - c004819c)
xt_MARK init_addr(00000000 - 00000000), core_addr(c0066000 - c00660e8)
xt_mark init_addr(00000000 - 00000000), core_addr(c0064000 - c0064048)
ipt_LOG init_addr(00000000 - 00000000), core_addr(c0068000 - c0068d28)
xt_limit init_addr(00000000 - 00000000), core_addr(c0062000 - c0062228)
xt_state init_addr(00000000 - 00000000), core_addr(c0055000 - c00550e8)
ipt_REDIRECT init_addr(00000000 - 00000000), core_addr(c004a000 - c004a0f4)
ipt_MASQUERADE init_addr(00000000 - 00000000), core_addr(c0053000 - c0053660)
iptable_nat init_addr(00000000 - 00000000), core_addr(c0050000 - c0050b44)
nf_nat init_addr(00000000 - 00000000), core_addr(c004c000 - c004e1cc)
nf_conntrack_ipv4 init_addr(00000000 - 00000000), core_addr(c001f000 - c00204d4)
nf_conntrack init_addr(00000000 - 00000000), core_addr(c0057000 - c005dd94)
nfnetlink init_addr(00000000 - 00000000), core_addr(c002e000 - c002e9cc)
xt_SKIPLOG init_addr(00000000 - 00000000), core_addr(c002c000 - c002c048)
xt_TCPMSS init_addr(00000000 - 00000000), core_addr(c002a000 - c002a938)
xt_tcpudp init_addr(00000000 - 00000000), core_addr(c0028000 - c0028388)
iptable_filter init_addr(00000000 - 00000000), core_addr(c0022000 - c00220fc)
ip_tables init_addr(00000000 - 00000000), core_addr(c0024000 - c0025d40)
x_tables init_addr(00000000 - 00000000), core_addr(c0008000 - c0009794)
wl(P) init_addr(00000000 - 00000000), core_addr(c01a1000 - c021a6fc)
bcm_enet(P) init_addr(00000000 - 00000000), core_addr(c003c000 - c00440e8)
adsldd(P) init_addr(00000000 - 00000000), core_addr(c007c000 - c009b9c8)
bcmxtmcfg(P) init_addr(00000000 - 00000000), core_addr(c0031000 - c00393bc)
pktflow(P) init_addr(00000000 - 00000000), core_addr(c0015000 - c00182c0)
Process sirq-net-rx/0 (pid: 5, threadinfo=80f8e000, task=80f8dbf8)
Stack : 80f8fec8 80f8fec8 802a3af0 80000000 80164130 00000000 00000000 80131d2c
00000068 80ddcfa0 80cec490 00000002 80f8fec8 80f8fec8 802a3af0 80000000
80164130 00000000 80000000 c001f530 c00221c8 807d7740 80ccb800 fffffff4
80f8fe58 80ddcfa0 00000000 8015dd1c 80ccb800 8014adcc 807d77a8 80ddcfa0
80164130 fffc5923 80f8fec8 00000000 802a3af0 80ddcfa0 80164130 00000000
...
Call Trace:[<80164130>][<80131d2c>][<80164130>][][<8015dd1c>][<8014adcc>][<80164130>][<80164130>][<8015df5c>][<801698a0>][<80164130>][<80164a44>][<80164130>][<80148930>][<8014a794>][<8014a950>] [<80029778>][<80033238>][<80033100>][<80043f28>][<80013898>][<80013888>]
Code: 1440013e 26630068 afa30020 <9062000c> 30420008 1440003b 3c028027 8e430058 10600038
Kernel panic - not syncing: Fatal exception in interrupt
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
页面分配失败。 order:0
你的系统内存不足;内核甚至找不到要分配的单个页面(
order:0
,2^order 数量的连续页面)。添加更多交换可能有帮助,也可能没有帮助;内核地址空间不可交换,因此根据内存消耗的位置,您可能别无选择,除了 (a) 弄清楚如何要求机器减少工作量,以减少内核内存负载或 (b) 添加更多内存。
page allocation failure. order:0
Your system ran out of memory; the kernel can't even find a single page (
order:0
, 2^order number of contiguous pages) to allocate.Adding more swap may or may not help; the kernel address space isn't swappable, so depending upon where memory is being consumed, you may have no choice except (a) figure out how to ask the machine to do less, to reduce kernel memory load or (b) add more memory.