kernel crash in handling network

2.5k views Asked by At

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

1

There are 1 answers

3
sarnold On

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.