In Kamikaze v7.07 kernel 2.6.22 I wrote a buggy hotplug script that started a fprobe-ulog process every dhcp renew until the router ran out of memory and invoked the oom-killer. The oom-killer seems unable to kill fprobe-ulog and the router stops responding to any network traffic. The router is unresponsive over the serial cable as well, it is too busy sending a never ending stream of the following messages:
fprobe-ulog invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Call Trace:[<80025854>][<80009098>][<80009098>][<80053400>][<80054c8c>][<80057d3c>][<8005]
Mem-info:
Normal per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:5929 inactive:0 dirty:0 writeback:0 unstable:0
free:160 slab:781 mapped:1 pagetables:92 bounce:0
Normal free:640kB min:720kB low:900kB high:1080kB active:23716kB inactive:0kB present:325s
lowmem_reserve[]: 0
Normal: 4*4kB 0*8kB 1*16kB 1*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096B
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
8192 pages of RAM
0 pages of HIGHMEM
709 reserved pages
118 pages shared
0 pages swap cached
printk: 12861 messages suppressed.
fprobe-ulog invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Call Trace:[<80025854>][<80009098>][<80009098>][<80053400>][<80054c8c>][<80057d3c>][<8000]
Mem-info:
Normal per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:6025 inactive:0 dirty:0 writeback:0 unstable:0
free:162 slab:779 mapped:1 pagetables:92 bounce:0
Normal free:648kB min:720kB low:900kB high:1080kB active:24100kB inactive:0kB present:325s
lowmem_reserve[]: 0
Normal: 4*4kB 1*8kB 1*16kB 1*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096B
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
8192 pages of RAM
0 pages of HIGHMEM
709 reserved pages
22 pages shared
0 pages swap cached
the killer doesn't seem to be disabled:
root@OpenWrt:~# ps | grep fprobe-ulog
635 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
641 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
642 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
644 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
645 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
646 root 3544 S fprobe-ulog -B 1024 -q 50000 192.168.155.19:2000
658 root 300 S grep fprobe-ulog
root@OpenWrt:~# cat /proc/635/oom_adj
0
root@OpenWrt:~# cat /proc/635/oom_score
75
Why is fprobe-ulog not killed?