Loading Documentation/vm/page_owner.txt +21 −13 Original line number Diff line number Diff line .. _page_owner: ================================================== page owner: Tracking about who allocated each page ----------------------------------------------------------- ================================================== * Introduction Introduction ============ page owner is for the tracking about who allocated each page. It can be used to debug memory leak or to find a memory hogger. Loading Loading @@ -34,11 +38,13 @@ not affect to allocation performance, especially if the static keys jump label patching functionality is available. Following is the kernel's code size change due to this facility. - Without page owner - Without page owner:: text data bss dec hex filename 40662 1493 644 42799 a72f mm/page_alloc.o - With page owner - With page owner:: text data bss dec hex filename 40892 1493 644 43029 a815 mm/page_alloc.o 1427 24 8 1459 5b3 mm/page_ext.o Loading @@ -62,21 +68,23 @@ are catched and marked, although they are mostly allocated from struct page extension feature. Anyway, after that, no page is left in un-tracking state. * Usage Usage ===== 1) Build user-space helper:: 1) Build user-space helper cd tools/vm make page_owner_sort 2) Enable page owner Add "page_owner=on" to boot cmdline. 2) Enable page owner: add "page_owner=on" to boot cmdline. 3) Do the job what you want to debug 4) Analyze information from page owner 4) Analyze information from page owner:: cat /sys/kernel/debug/page_owner > page_owner_full.txt grep -v ^PFN page_owner_full.txt > page_owner.txt ./page_owner_sort page_owner.txt sorted_page_owner.txt See the result about who allocated each page in the sorted_page_owner.txt. in the ``sorted_page_owner.txt``. Loading
Documentation/vm/page_owner.txt +21 −13 Original line number Diff line number Diff line .. _page_owner: ================================================== page owner: Tracking about who allocated each page ----------------------------------------------------------- ================================================== * Introduction Introduction ============ page owner is for the tracking about who allocated each page. It can be used to debug memory leak or to find a memory hogger. Loading Loading @@ -34,11 +38,13 @@ not affect to allocation performance, especially if the static keys jump label patching functionality is available. Following is the kernel's code size change due to this facility. - Without page owner - Without page owner:: text data bss dec hex filename 40662 1493 644 42799 a72f mm/page_alloc.o - With page owner - With page owner:: text data bss dec hex filename 40892 1493 644 43029 a815 mm/page_alloc.o 1427 24 8 1459 5b3 mm/page_ext.o Loading @@ -62,21 +68,23 @@ are catched and marked, although they are mostly allocated from struct page extension feature. Anyway, after that, no page is left in un-tracking state. * Usage Usage ===== 1) Build user-space helper:: 1) Build user-space helper cd tools/vm make page_owner_sort 2) Enable page owner Add "page_owner=on" to boot cmdline. 2) Enable page owner: add "page_owner=on" to boot cmdline. 3) Do the job what you want to debug 4) Analyze information from page owner 4) Analyze information from page owner:: cat /sys/kernel/debug/page_owner > page_owner_full.txt grep -v ^PFN page_owner_full.txt > page_owner.txt ./page_owner_sort page_owner.txt sorted_page_owner.txt See the result about who allocated each page in the sorted_page_owner.txt. in the ``sorted_page_owner.txt``.