2017-06-04 26 views
0

目前,我的路由器遇到了MemoryFree不斷增長的惡性情況,但沒有人在搜索/ proc/meminfo時長大!這怎麼會發生?Linux LowFree和Slab

開始的時候:

MemTotal:   513112 kB 
MemFree:   453244 kB 
MemAvailable:  397132 kB 
Buffers:   3664 kB 
Cached:   11428 kB 
SwapCached:   0 kB 
Active:   10476 kB 
Inactive:   8036 kB 
Active(anon):  3512 kB 
Inactive(anon):  1024 kB 
Active(file):  6964 kB 
Inactive(file):  7012 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
HighTotal:   65536 kB 
HighFree:   62968 kB 
LowTotal:   447576 kB 
LowFree:   390276 kB 
SwapTotal:    0 kB 
SwapFree:    0 kB 
Dirty:     0 kB 
Writeback:    0 kB 
AnonPages:   3552 kB 
Mapped:    3016 kB 
Shmem:    1116 kB 
Slab:    15412 kB 
SReclaimable:  2952 kB 
SUnreclaim:  12460 kB 
KernelStack:   632 kB 
PageTables:   396 kB 
NFS_Unstable:   0 kB 
Bounce:    0 kB 
WritebackTmp:   0 kB 
CommitLimit:  256556 kB 
Committed_AS:  14288 kB 
VmallocTotal: 1015800 kB 
VmallocUsed:  7816 kB 
VmallocChunk:  990320 kB 

幾天後:

MemTotal:   513112 kB 
MemFree:   298280 kB 
MemAvailable:  241060 kB 
Buffers:   3068 kB 
Cached:   10700 kB 
SwapCached:   0 kB 
Active:   11084 kB 
Inactive:   6284 kB 
Active(anon):  4112 kB 
Inactive(anon):  1180 kB 
Active(file):  6972 kB 
Inactive(file):  5104 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
HighTotal:   65536 kB 
HighFree:   62164 kB 
LowTotal:   447576 kB 
LowFree:   236116 kB 
SwapTotal:    0 kB 
SwapFree:    0 kB 
Dirty:     0 kB 
Writeback:    0 kB 
AnonPages:   3644 kB 
Mapped:    3064 kB 
Shmem:    1692 kB 
Slab:    17224 kB 
SReclaimable:  2632 kB 
SUnreclaim:  14592 kB 
KernelStack:   576 kB 
PageTables:   392 kB 
NFS_Unstable:   0 kB 
Bounce:    0 kB 
WritebackTmp:   0 kB 
CommitLimit:  256556 kB 
Committed_AS:  14904 kB 
VmallocTotal: 1015800 kB 
VmallocUsed:  7656 kB 
VmallocChunk:  952764 kB 

由於厚板區域不顯著改變,所以漏水不能用的kmalloc/kfree API被泄露和他們的同伴(LowFree越來越低,所以泄漏必須放在內核空間的某處)。有誰能夠幫助我? 對不起,我英文很差。

回答

0

最後,我發現泄漏是由MTK WIFI驅動程序引起的,該驅動程序調用dev_alloc_skb來分配skb並忘記釋放它。 dev_alloc_skb直接在內部通過alloc_pages內部分配skb->數據,並且不會被slab記錄。