Linux LowFree和Slab
目前,我的路由器遇到了一个奇怪的情况,内存自由度不断下降,但在搜索/proc/meminfo时没有人增长!这怎么会发生 一开始:Linux LowFree和Slab,linux,memory-leaks,Linux,Memory Leaks,目前,我的路由器遇到了一个奇怪的情况,内存自由度不断下降,但在搜索/proc/meminfo时没有人增长!这怎么会发生 一开始: MemTotal: 513112 kB MemFree: 453244 kB MemAvailable: 397132 kB Buffers: 3664 kB Cached: 11428 kB SwapCached: 0 kB Active:
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正在下降,因此泄漏必须位于内核空间的某个位置)。有人能帮我吗?
对不起,我的英语很差。最后,我发现泄漏是由MTK WIFI驱动程序引起的,该驱动程序调用dev_alloc_skb来分配skb,但忘记释放它。 dev_alloc_skb直接通过alloc_页面在内部分配skb->数据,而不是由slab记录