* /proc/meminfo question
@ 2016-04-04 7:22 Ming Lin
2016-04-04 15:31 ` Vlastimil Babka
0 siblings, 1 reply; 3+ messages in thread
From: Ming Lin @ 2016-04-04 7:22 UTC (permalink / raw)
To: linux-mm; +Cc: fengguang.wu
Hi,
I'm debugging a memory leak in an internal driver.
There is ~2G leak after stress tests.
If I read below /proc/meminfo correctly, it doesn't show where the 2G
memory is possibly used.
Buffers + Cached + Active*/Inactive* + Slab* only about 300M.
Is there other statistics not shown in /proc/meminfo or am I missing
obvious things?
root@target:~# uname -r
4.5.0+
root@target:~# echo 3 > /proc/sys/vm/drop_cachesA
root@target:~# free
A A A A A A A A A A A A A totalA A A A A A A usedA A A A A A A freeA A A A A sharedA A A A buffersA A A A A cached
Mem:A A A A A A A 3787612A A A A 2182128A A A A 1605484A A A A A A A 1072A A A A A A A 1036A A A A A A 24240
-/+ buffers/cache:A A A A 2156852A A A A 1630760
Swap:A A A A A 15624188A A A A A A A 6812A A A 15617376
root@target:~# cat /proc/meminfoA
MemTotal:A A A A A A A A 3787612 kB
MemFree:A A A A A A A A A 1604336 kB
MemAvailable:A A A A 1598460 kB
Buffers:A A A A A A A A A A A A 1928 kB
Cached:A A A A A A A A A A A A 24668 kB
SwapCached:A A A A A A A A A 1344 kB
Active:A A A A A A A A A A A A 27520 kB
Inactive:A A A A A A A A A A 14184 kB
Active(anon):A A A A A A 12504 kB
Inactive(anon):A A A A A 3752 kB
Active(file):A A A A A A 15016 kB
Inactive(file):A A A A 10432 kB
Unevictable:A A A A A A A A A A A 0 kB
Mlocked:A A A A A A A A A A A A A A A 0 kB
SwapTotal:A A A A A A 15624188 kB
SwapFree:A A A A A A A 15617376 kB
Dirty:A A A A A A A A A A A A A A A A 36 kB
Writeback:A A A A A A A A A A A A A 0 kB
AnonPages:A A A A A A A A A 14656 kB
Mapped:A A A A A A A A A A A A 23328 kB
Shmem:A A A A A A A A A A A A A A 1072 kB
Slab:A A A A A A A A A A A A A A 94092 kB
SReclaimable:A A A A A A 12324 kB
SUnreclaim:A A A A A A A A 81768 kB
KernelStack:A A A A A A A A 3344 kB
PageTables:A A A A A A A A A 2936 kB
NFS_Unstable:A A A A A A A A A A 0 kB
Bounce:A A A A A A A A A A A A A A A A 0 kB
WritebackTmp:A A A A A A A A A A 0 kB
CommitLimit:A A A A 17517992 kB
Committed_AS:A A A A A 155592 kB
VmallocTotal:A A A 34359738367 kB
VmallocUsed:A A A A A A A A A A A 0 kB
VmallocChunk:A A A A A A A A A A 0 kB
HardwareCorrupted:A A A A A 0 kB
AnonHugePages:A A A A A A A A A 0 kB
CmaTotal:A A A A A A A A A A A A A A 0 kB
CmaFree:A A A A A A A A A A A A A A A 0 kB
HugePages_Total:A A A A A A A 0
HugePages_Free:A A A A A A A A 0
HugePages_Rsvd:A A A A A A A A 0
HugePages_Surp:A A A A A A A A 0
Hugepagesize:A A A A A A A 2048 kB
DirectMap4k:A A A A A A 205648 kB
DirectMap2M:A A A A A 3872768 kBA
root@target:~# page-typesA
A A A A A A A A A A A A A flags page-countA A A A A A A MBA A symbolic-flags long-symbolic-flags
0x0000000000000000 A A A 1007923A A A A A 3937A A _________________________________________
0x0000000001000000 A A A A A A A A A 1A A A A A A A A 0A A ________________________z________________ zero_page
0x0000000000100000 A A A A 131072A A A A A A 512A A ____________________n____________________ nopage
0x0000000000000008 A A A A A A A A A 1A A A A A A A A 0A A ___U_____________________________________ uptodate
0x0000000000000020 A A A A A A A A 32A A A A A A A A 0A A _____l___________________________________ lru
0x0000000000000024 A A A A A A A A 14A A A A A A A A 0A A __R__l___________________________________ referenced,lru
0x0000000000000028 A A A A A A A 142A A A A A A A A 0A A ___U_l___________________________________ uptodate,lru
0x0000000000004028 A A A A A A A 102A A A A A A A A 0A A ___U_l________b__________________________ uptodate,lru,swapbacked
0x000000000000002c A A A A A A A A 39A A A A A A A A 0A A __RU_l___________________________________ referenced,uptodate,lru
0x0000000000000040 A A A A A A A A 15A A A A A A A A 0A A ______A__________________________________ active
0x0000000000000060 A A A A A A A 450A A A A A A A A 1A A _____lA__________________________________ lru,active
0x0000000000000064 A A A A A A A A 80A A A A A A A A 0A A __R__lA__________________________________ referenced,lru,active
0x0000000000000068 A A A A A A A A 21A A A A A A A A 0A A ___U_lA__________________________________ uptodate,lru,active
0x000000000000006c A A A A A A A A 52A A A A A A A A 0A A __RU_lA__________________________________ referenced,uptodate,lru,active
0x0000000000000080 A A A A A 10471A A A A A A A 40A A _______S_________________________________ slab
0x0000000000006228 A A A A A A A A 28A A A A A A A A 0A A ___U_l___I___sb__________________________ uptodate,lru,reclaim,swapcache,swapbacked
0x0000000000000228 A A A A A A A A A 6A A A A A A A A 0A A ___U_l___I_______________________________ uptodate,lru,reclaim
0x0000000000004238 A A A A A A A 162A A A A A A A A 0A A ___UDl___I____b__________________________ uptodate,dirty,lru,reclaim,swapbacked
0x0000000000004278 A A A A A A A A A 2A A A A A A A A 0A A ___UDlA__I____b__________________________ uptodate,dirty,lru,active,reclaim,swapbacked
0x0000000000000800 A A A A A A A A A 1A A A A A A A A 0A A ___________M_____________________________ mmap
0x0000000000000804 A A A A A A A A A 1A A A A A A A A 0A A __R________M_____________________________ referenced,mmap
0x0000000000000808 A A A A A A A A A 4A A A A A A A A 0A A ___U_______M_____________________________ uptodate,mmap
0x0000000000000828 A A A A A A 1871A A A A A A A A 7A A ___U_l_____M_____________________________ uptodate,lru,mmap
0x000000000000082c A A A A A A A 668A A A A A A A A 2A A __RU_l_____M_____________________________ referenced,uptodate,lru,mmap
0x0000000000004838 A A A A A A A A A 2A A A A A A A A 0A A ___UDl_____M__b__________________________ uptodate,dirty,lru,mmap,swapbacked
0x0000000000000868 A A A A A A A 607A A A A A A A A 2A A ___U_lA____M_____________________________ uptodate,lru,active,mmap
0x000000000000086c A A A A A A 2754A A A A A A A 10A A __RU_lA____M_____________________________ referenced,uptodate,lru,active,mmap
0x0000000000000c00 A A A A A 12532A A A A A A A 48A A __________BM_____________________________ buddy,mmap
0x0000000000007028 A A A A A A A 105A A A A A A A A 0A A ___U_l______asb__________________________ uptodate,lru,anonymous,swapcache,swapbacked
0x0000000000005048 A A A A A A A A A 8A A A A A A A A 0A A ___U__A_____a_b__________________________ uptodate,active,anonymous,swapbacked
0x0000000000007068 A A A A A A A A A 7A A A A A A A A 0A A ___U_lA_____asb__________________________ uptodate,lru,active,anonymous,swapcache,swapbacked
0x0000000000007228 A A A A A A A A A 6A A A A A A A A 0A A ___U_l___I__asb__________________________ uptodate,lru,reclaim,anonymous,swapcache,swapbacked
0x0000000000007828 A A A A A A A 146A A A A A A A A 0A A ___U_l_____Masb__________________________ uptodate,lru,mmap,anonymous,swapcache,swapbacked
0x0000000000005838 A A A A A A A 380A A A A A A A A 1A A ___UDl_____Ma_b__________________________ uptodate,dirty,lru,mmap,anonymous,swapbacked
0x0000000000005848 A A A A A A A A A 6A A A A A A A A 0A A ___U__A____Ma_b__________________________ uptodate,active,mmap,anonymous,swapbacked
0x0000000000005868 A A A A A A 3084A A A A A A A 12A A ___U_lA____Ma_b__________________________ uptodate,lru,active,mmap,anonymous,swapbacked
0x0000000000007868 A A A A A A A A 10A A A A A A A A 0A A ___U_lA____Masb__________________________ uptodate,lru,active,mmap,anonymous,swapcache,swapbacked
0x000000000000586c A A A A A A A A A 7A A A A A A A A 0A A __RU_lA____Ma_b__________________________ referenced,uptodate,lru,active,mmap,anonymous,swapbacked
0x000000000000786c A A A A A A A A 26A A A A A A A A 0A A __RU_lA____Masb__________________________ referenced,uptodate,lru,active,mmap,anonymous,swapcache,swapbacked
0x0000000000005878 A A A A A A A 126A A A A A A A A 0A A ___UDlA____Ma_b__________________________ uptodate,dirty,lru,active,mmap,anonymous,swapbacked
0x000000000000787c A A A A A A A A A 1A A A A A A A A 0A A __RUDlA____Masb__________________________ referenced,uptodate,dirty,lru,active,mmap,anonymous,swapcache,swapbacked
0x0000000000007a28 A A A A A A A A A 9A A A A A A A A 0A A ___U_l___I_Masb__________________________ uptodate,lru,reclaim,mmap,anonymous,swapcache,swapbacked
0x0000000000005a38 A A A A A A A A A 8A A A A A A A A 0A A ___UDl___I_Ma_b__________________________ uptodate,dirty,lru,reclaim,mmap,anonymous,swapbacked
0x0000000000007a68 A A A A A A A A A 1A A A A A A A A 0A A ___U_lA__I_Masb__________________________ uptodate,lru,active,reclaim,mmap,anonymous,swapcache,swapbacked
0x0000000000005a78 A A A A A A A A A 9A A A A A A A A 0A A ___UDlA__I_Ma_b__________________________ uptodate,dirty,lru,active,reclaim,mmap,anonymous,swapbacked
A A A A A A A A A A A A A total A A A 1172992A A A A A 4582
root@target:~#A
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: /proc/meminfo question
2016-04-04 7:22 /proc/meminfo question Ming Lin
@ 2016-04-04 15:31 ` Vlastimil Babka
2016-04-04 23:26 ` Ming Lin
0 siblings, 1 reply; 3+ messages in thread
From: Vlastimil Babka @ 2016-04-04 15:31 UTC (permalink / raw)
To: Ming Lin, linux-mm; +Cc: fengguang.wu
On 04/04/2016 09:22 AM, Ming Lin wrote:
> Hi,
>
> I'm debugging a memory leak in an internal driver.
> There is ~2G leak after stress tests.
>
> If I read below /proc/meminfo correctly, it doesn't show where the 2G
> memory is possibly used.
>
> Buffers + Cached + Active*/Inactive* + Slab* only about 300M.
>
> Is there other statistics not shown in /proc/meminfo or am I missing
> obvious things?
Nope. Statistics exist only for the common cases. Having e.g. each
driver add own line there wouldn't be feasible.
However I already considered and would welcome an explicit
"Unaccounted:" line in /prec/meminfo, so that the amount of possibly
leaked memory is immediately visible and one doesn't need to remember
which lines are best to sum up and whether there were subtle changes
depending on kernel version.
> root@target:~# page-types
> flags page-count MB symbolic-flags long-symbolic-flags
For debugging such leaks I suggest you try the page_owner functionality
instead.
Vlastimil
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: /proc/meminfo question
2016-04-04 15:31 ` Vlastimil Babka
@ 2016-04-04 23:26 ` Ming Lin
0 siblings, 0 replies; 3+ messages in thread
From: Ming Lin @ 2016-04-04 23:26 UTC (permalink / raw)
To: Vlastimil Babka; +Cc: Ming Lin, linux-mm, Wu Fengguang
On Mon, Apr 4, 2016 at 8:31 AM, Vlastimil Babka <vbabka@suse.cz> wrote:
>
>
> For debugging such leaks I suggest you try the page_owner functionality
> instead.
Hi Vlastimil,
"page_owner" is a great tool!
I have found the leak and fixed it.
Thanks.
>
> Vlastimil
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-04-04 23:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-04 7:22 /proc/meminfo question Ming Lin
2016-04-04 15:31 ` Vlastimil Babka
2016-04-04 23:26 ` Ming Lin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.