Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pagemap: document KPF_THP and make page-types aware of it

page-types, which is a common user of pagemap, gets aware of thp with this
patch. This helps system admins and kernel hackers know about how thp
works. Here is a sample output of page-types over a thp:

$ page-types -p <pid> --raw --list

voffset offset len flags
...
7f9d40200 3f8400 1 ___U_lA____Ma_bH______t____________
7f9d40201 3f8401 1ff ________________T_____t____________

flags page-count MB symbolic-flags long-symbolic-flags
0x0000000000410000 511 1 ________________T_____t____________ compound_tail,thp
0x000000000040d868 1 0 ___U_lA____Ma_bH______t____________ uptodate,lru,active,mmap,anonymous,swapbacked,compound_head,thp

Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Wu Fengguang <fengguang.wu@intel.com>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Naoya Horiguchi and committed by
Linus Torvalds
807f0ccf e873c49f

+6
+2
Documentation/vm/page-types.c
··· 98 98 #define KPF_HWPOISON 19 99 99 #define KPF_NOPAGE 20 100 100 #define KPF_KSM 21 101 + #define KPF_THP 22 101 102 102 103 /* [32-] kernel hacking assistances */ 103 104 #define KPF_RESERVED 32 ··· 148 147 [KPF_HWPOISON] = "X:hwpoison", 149 148 [KPF_NOPAGE] = "n:nopage", 150 149 [KPF_KSM] = "x:ksm", 150 + [KPF_THP] = "t:thp", 151 151 152 152 [KPF_RESERVED] = "r:reserved", 153 153 [KPF_MLOCKED] = "m:mlocked",
+4
Documentation/vm/pagemap.txt
··· 60 60 19. HWPOISON 61 61 20. NOPAGE 62 62 21. KSM 63 + 22. THP 63 64 64 65 Short descriptions to the page flags: 65 66 ··· 97 96 98 97 21. KSM 99 98 identical memory pages dynamically shared between one or more processes 99 + 100 + 22. THP 101 + contiguous pages which construct transparent hugepages 100 102 101 103 [IO related page flags] 102 104 1. ERROR IO error occurred