]> granicus.if.org Git - procps-ng/commitdiff
library: <vmstat> api, updated for current linux state
authorJim Warner <james.warner@comcast.net>
Fri, 7 Aug 2020 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Sun, 9 Aug 2020 12:19:46 +0000 (22:19 +1000)
Since last visited, there have been several new fields
added to the /proc/vmstat file. Now, we are caught up.

[ references shown below represent linux git commits ]

Reference(s):
. 6/2020, added 'pgscan_...' & 'pgsteal_...'
commit 497a6c1b09902b22ceccc0f25ba4dd623e1ddb7d
. 4/2020, added 'nr_shadow_call_stack'
commit 628d06a48f57c36abdc2a024930212e654a501b7
. 4/2020, added 'thp_...fallback_charge'
commit 85b9f46e8ea451633ccd60a7d8cacbfff9f34047
. 4/2020, added 'thp_file_fallback'
commit dcdf11ee144133328664d90836e712d840d047d9
. 4/2020, added 'nr_foll_pin_...'
commit 1970dc6f5226416957ad0cc70ab47386ed3195a6
. 9/2019, added 'nr_file_...'
commit 60fbf0ab5da1c360e02b7f7d882bf1c0d8f7e32a

Signed-off-by: Jim Warner <james.warner@comcast.net>
proc/vmstat.c
proc/vmstat.h

index 5118dd066b6d299dce70809faea1079641fa1fa7..c9b8d826a83da1e9cf09e1627fca5fdd6b66bf37 100644 (file)
@@ -82,7 +82,11 @@ struct vmstat_data {
     unsigned long nr_dirty;
     unsigned long nr_dirty_background_threshold;
     unsigned long nr_dirty_threshold;
+    unsigned long nr_file_hugepages;
     unsigned long nr_file_pages;
+    unsigned long nr_file_pmdmapped;
+    unsigned long nr_foll_pin_acquired;
+    unsigned long nr_foll_pin_released;
     unsigned long nr_free_cma;
     unsigned long nr_free_pages;
     unsigned long nr_inactive_anon;
@@ -94,11 +98,16 @@ struct vmstat_data {
     unsigned long nr_mapped;
     unsigned long nr_mlock;
     unsigned long nr_page_table_pages;
+    unsigned long nr_shadow_call_stack;
     unsigned long nr_shmem;
     unsigned long nr_shmem_hugepages;
     unsigned long nr_shmem_pmdmapped;
     unsigned long nr_slab_reclaimable;
     unsigned long nr_slab_unreclaimable;
+/*                nr_tlb_local_flush_all;        CONFIG_DEBUG_TLBFLUSH only */
+/*                nr_tlb_local_flush_one;        CONFIG_DEBUG_TLBFLUSH only */
+/*                nr_tlb_remote_flush;           CONFIG_DEBUG_TLBFLUSH only */
+/*                nr_tlb_remote_flush_received;  CONFIG_DEBUG_TLBFLUSH only */
     unsigned long nr_unevictable;
     unsigned long nr_unstable;
     unsigned long nr_vmscan_immediate_reclaim;
@@ -145,15 +154,19 @@ struct vmstat_data {
     unsigned long pgpgout;
     unsigned long pgrefill;
     unsigned long pgrotated;
+    unsigned long pgscan_anon;
     unsigned long pgscan_direct;
     unsigned long pgscan_direct_throttle;
+    unsigned long pgscan_file;
     unsigned long pgscan_kswapd;
     unsigned long pgskip_dma;
     unsigned long pgskip_dma32;
     unsigned long pgskip_high;
     unsigned long pgskip_movable;
     unsigned long pgskip_normal;
+    unsigned long pgsteal_anon;
     unsigned long pgsteal_direct;
+    unsigned long pgsteal_file;
     unsigned long pgsteal_kswapd;
     unsigned long pswpin;
     unsigned long pswpout;
@@ -165,7 +178,10 @@ struct vmstat_data {
     unsigned long thp_deferred_split_page;
     unsigned long thp_fault_alloc;
     unsigned long thp_fault_fallback;
+    unsigned long thp_fault_fallback_charge;
     unsigned long thp_file_alloc;
+    unsigned long thp_file_fallback;
+    unsigned long thp_file_fallback_charge;
     unsigned long thp_file_mapped;
     unsigned long thp_split_page;
     unsigned long thp_split_page_failed;
@@ -182,6 +198,8 @@ struct vmstat_data {
     unsigned long unevictable_pgs_rescued;
     unsigned long unevictable_pgs_scanned;
     unsigned long unevictable_pgs_stranded;
+/*                vmacache_find_calls;           CONFIG_DEBUG_VM_VMACACHE only */
+/*                vmacache_find_hits;            CONFIG_DEBUG_VM_VMACACHE only */
     unsigned long workingset_activate;
     unsigned long workingset_nodereclaim;
     unsigned long workingset_nodes;
@@ -260,7 +278,11 @@ REG_set(NR_DIRTIED,                            nr_dirtied)
 REG_set(NR_DIRTY,                              nr_dirty)
 REG_set(NR_DIRTY_BACKGROUND_THRESHOLD,         nr_dirty_background_threshold)
 REG_set(NR_DIRTY_THRESHOLD,                    nr_dirty_threshold)
+REG_set(NR_FILE_HUGEPAGES,                     nr_file_hugepages)
 REG_set(NR_FILE_PAGES,                         nr_file_pages)
+REG_set(NR_FILE_PMDMAPPED,                     nr_file_pmdmapped)
+REG_set(NR_FOLL_PIN_ACQUIRED,                  nr_foll_pin_acquired)
+REG_set(NR_FOLL_PIN_RELEASED,                  nr_foll_pin_released)
 REG_set(NR_FREE_CMA,                           nr_free_cma)
 REG_set(NR_FREE_PAGES,                         nr_free_pages)
 REG_set(NR_INACTIVE_ANON,                      nr_inactive_anon)
@@ -272,6 +294,7 @@ REG_set(NR_KERNEL_STACK,                       nr_kernel_stack)
 REG_set(NR_MAPPED,                             nr_mapped)
 REG_set(NR_MLOCK,                              nr_mlock)
 REG_set(NR_PAGE_TABLE_PAGES,                   nr_page_table_pages)
+REG_set(NR_SHADOW_CALL_STACK,                  nr_shadow_call_stack)
 REG_set(NR_SHMEM,                              nr_shmem)
 REG_set(NR_SHMEM_HUGEPAGES,                    nr_shmem_hugepages)
 REG_set(NR_SHMEM_PMDMAPPED,                    nr_shmem_pmdmapped)
@@ -323,15 +346,19 @@ REG_set(PGPGIN,                                pgpgin)
 REG_set(PGPGOUT,                               pgpgout)
 REG_set(PGREFILL,                              pgrefill)
 REG_set(PGROTATED,                             pgrotated)
+REG_set(PGSCAN_ANON,                           pgscan_anon)
 REG_set(PGSCAN_DIRECT,                         pgscan_direct)
 REG_set(PGSCAN_DIRECT_THROTTLE,                pgscan_direct_throttle)
+REG_set(PGSCAN_FILE,                           pgscan_file)
 REG_set(PGSCAN_KSWAPD,                         pgscan_kswapd)
 REG_set(PGSKIP_DMA,                            pgskip_dma)
 REG_set(PGSKIP_DMA32,                          pgskip_dma32)
 REG_set(PGSKIP_HIGH,                           pgskip_high)
 REG_set(PGSKIP_MOVABLE,                        pgskip_movable)
 REG_set(PGSKIP_NORMAL,                         pgskip_normal)
+REG_set(PGSTEAL_ANON,                          pgsteal_anon)
 REG_set(PGSTEAL_DIRECT,                        pgsteal_direct)
+REG_set(PGSTEAL_FILE,                          pgsteal_file)
 REG_set(PGSTEAL_KSWAPD,                        pgsteal_kswapd)
 REG_set(PSWPIN,                                pswpin)
 REG_set(PSWPOUT,                               pswpout)
@@ -343,7 +370,10 @@ REG_set(THP_COLLAPSE_ALLOC_FAILED,             thp_collapse_alloc_failed)
 REG_set(THP_DEFERRED_SPLIT_PAGE,               thp_deferred_split_page)
 REG_set(THP_FAULT_ALLOC,                       thp_fault_alloc)
 REG_set(THP_FAULT_FALLBACK,                    thp_fault_fallback)
+REG_set(THP_FAULT_FALLBACK_CHARGE,             thp_fault_fallback_charge)
 REG_set(THP_FILE_ALLOC,                        thp_file_alloc)
+REG_set(THP_FILE_FALLBACK,                     thp_file_fallback)
+REG_set(THP_FILE_FALLBACK_CHARGE,              thp_file_fallback_charge)
 REG_set(THP_FILE_MAPPED,                       thp_file_mapped)
 REG_set(THP_SPLIT_PAGE,                        thp_split_page)
 REG_set(THP_SPLIT_PAGE_FAILED,                 thp_split_page_failed)
@@ -400,7 +430,11 @@ HST_set(DELTA_NR_DIRTIED,                      nr_dirtied)
 HST_set(DELTA_NR_DIRTY,                        nr_dirty)
 HST_set(DELTA_NR_DIRTY_BACKGROUND_THRESHOLD,   nr_dirty_background_threshold)
 HST_set(DELTA_NR_DIRTY_THRESHOLD,              nr_dirty_threshold)
+HST_set(DELTA_NR_FILE_HUGEPAGES,               nr_file_hugepages)
 HST_set(DELTA_NR_FILE_PAGES,                   nr_file_pages)
+HST_set(DELTA_NR_FILE_PMDMAPPED,               nr_file_pmdmapped)
+HST_set(DELTA_NR_FOLL_PIN_ACQUIRED,            nr_foll_pin_acquired)
+HST_set(DELTA_NR_FOLL_PIN_RELEASED,            nr_foll_pin_released)
 HST_set(DELTA_NR_FREE_CMA,                     nr_free_cma)
 HST_set(DELTA_NR_FREE_PAGES,                   nr_free_pages)
 HST_set(DELTA_NR_INACTIVE_ANON,                nr_inactive_anon)
@@ -412,6 +446,7 @@ HST_set(DELTA_NR_KERNEL_STACK,                 nr_kernel_stack)
 HST_set(DELTA_NR_MAPPED,                       nr_mapped)
 HST_set(DELTA_NR_MLOCK,                        nr_mlock)
 HST_set(DELTA_NR_PAGE_TABLE_PAGES,             nr_page_table_pages)
+HST_set(DELTA_NR_SHADOW_CALL_STACK,            nr_shadow_call_stack)
 HST_set(DELTA_NR_SHMEM,                        nr_shmem)
 HST_set(DELTA_NR_SHMEM_HUGEPAGES,              nr_shmem_hugepages)
 HST_set(DELTA_NR_SHMEM_PMDMAPPED,              nr_shmem_pmdmapped)
@@ -463,15 +498,19 @@ HST_set(DELTA_PGPGIN,                          pgpgin)
 HST_set(DELTA_PGPGOUT,                         pgpgout)
 HST_set(DELTA_PGREFILL,                        pgrefill)
 HST_set(DELTA_PGROTATED,                       pgrotated)
+HST_set(DELTA_PGSCAN_ANON,                     pgscan_anon)
 HST_set(DELTA_PGSCAN_DIRECT,                   pgscan_direct)
 HST_set(DELTA_PGSCAN_DIRECT_THROTTLE,          pgscan_direct_throttle)
+HST_set(DELTA_PGSCAN_FILE,                     pgscan_file)
 HST_set(DELTA_PGSCAN_KSWAPD,                   pgscan_kswapd)
 HST_set(DELTA_PGSKIP_DMA,                      pgskip_dma)
 HST_set(DELTA_PGSKIP_DMA32,                    pgskip_dma32)
 HST_set(DELTA_PGSKIP_HIGH,                     pgskip_high)
 HST_set(DELTA_PGSKIP_MOVABLE,                  pgskip_movable)
 HST_set(DELTA_PGSKIP_NORMAL,                   pgskip_normal)
+HST_set(DELTA_PGSTEAL_ANON,                    pgsteal_anon)
 HST_set(DELTA_PGSTEAL_DIRECT,                  pgsteal_direct)
+HST_set(DELTA_PGSTEAL_FILE,                    pgsteal_file)
 HST_set(DELTA_PGSTEAL_KSWAPD,                  pgsteal_kswapd)
 HST_set(DELTA_PSWPIN,                          pswpin)
 HST_set(DELTA_PSWPOUT,                         pswpout)
@@ -483,7 +522,10 @@ HST_set(DELTA_THP_COLLAPSE_ALLOC_FAILED,       thp_collapse_alloc_failed)
 HST_set(DELTA_THP_DEFERRED_SPLIT_PAGE,         thp_deferred_split_page)
 HST_set(DELTA_THP_FAULT_ALLOC,                 thp_fault_alloc)
 HST_set(DELTA_THP_FAULT_FALLBACK,              thp_fault_fallback)
+HST_set(DELTA_THP_FAULT_FALLBACK_CHARGE,       thp_fault_fallback_charge)
 HST_set(DELTA_THP_FILE_ALLOC,                  thp_file_alloc)
+HST_set(DELTA_THP_FILE_FALLBACK,               thp_file_fallback)
+HST_set(DELTA_THP_FILE_FALLBACK_CHARGE,        thp_file_fallback_charge)
 HST_set(DELTA_THP_FILE_MAPPED,                 thp_file_mapped)
 HST_set(DELTA_THP_SPLIT_PAGE,                  thp_split_page)
 HST_set(DELTA_THP_SPLIT_PAGE_FAILED,           thp_split_page_failed)
@@ -566,7 +608,11 @@ static struct {
   { RS(NR_DIRTY),                              TS(ul_int) },
   { RS(NR_DIRTY_BACKGROUND_THRESHOLD),         TS(ul_int) },
   { RS(NR_DIRTY_THRESHOLD),                    TS(ul_int) },
+  { RS(NR_FILE_HUGEPAGES),                     TS(ul_int) },
   { RS(NR_FILE_PAGES),                         TS(ul_int) },
+  { RS(NR_FILE_PMDMAPPED),                     TS(ul_int) },
+  { RS(NR_FOLL_PIN_ACQUIRED),                  TS(ul_int) },
+  { RS(NR_FOLL_PIN_RELEASED),                  TS(ul_int) },
   { RS(NR_FREE_CMA),                           TS(ul_int) },
   { RS(NR_FREE_PAGES),                         TS(ul_int) },
   { RS(NR_INACTIVE_ANON),                      TS(ul_int) },
@@ -578,6 +624,7 @@ static struct {
   { RS(NR_MAPPED),                             TS(ul_int) },
   { RS(NR_MLOCK),                              TS(ul_int) },
   { RS(NR_PAGE_TABLE_PAGES),                   TS(ul_int) },
+  { RS(NR_SHADOW_CALL_STACK),                  TS(ul_int) },
   { RS(NR_SHMEM),                              TS(ul_int) },
   { RS(NR_SHMEM_HUGEPAGES),                    TS(ul_int) },
   { RS(NR_SHMEM_PMDMAPPED),                    TS(ul_int) },
@@ -629,15 +676,19 @@ static struct {
   { RS(PGPGOUT),                               TS(ul_int) },
   { RS(PGREFILL),                              TS(ul_int) },
   { RS(PGROTATED),                             TS(ul_int) },
+  { RS(PGSCAN_ANON),                           TS(ul_int) },
   { RS(PGSCAN_DIRECT),                         TS(ul_int) },
   { RS(PGSCAN_DIRECT_THROTTLE),                TS(ul_int) },
+  { RS(PGSCAN_FILE),                           TS(ul_int) },
   { RS(PGSCAN_KSWAPD),                         TS(ul_int) },
   { RS(PGSKIP_DMA),                            TS(ul_int) },
   { RS(PGSKIP_DMA32),                          TS(ul_int) },
   { RS(PGSKIP_HIGH),                           TS(ul_int) },
   { RS(PGSKIP_MOVABLE),                        TS(ul_int) },
   { RS(PGSKIP_NORMAL),                         TS(ul_int) },
+  { RS(PGSTEAL_ANON),                          TS(ul_int) },
   { RS(PGSTEAL_DIRECT),                        TS(ul_int) },
+  { RS(PGSTEAL_FILE),                          TS(ul_int) },
   { RS(PGSTEAL_KSWAPD),                        TS(ul_int) },
   { RS(PSWPIN),                                TS(ul_int) },
   { RS(PSWPOUT),                               TS(ul_int) },
@@ -649,7 +700,10 @@ static struct {
   { RS(THP_DEFERRED_SPLIT_PAGE),               TS(ul_int) },
   { RS(THP_FAULT_ALLOC),                       TS(ul_int) },
   { RS(THP_FAULT_FALLBACK),                    TS(ul_int) },
+  { RS(THP_FAULT_FALLBACK_CHARGE),             TS(ul_int) },
   { RS(THP_FILE_ALLOC),                        TS(ul_int) },
+  { RS(THP_FILE_FALLBACK),                     TS(ul_int) },
+  { RS(THP_FILE_FALLBACK_CHARGE),              TS(ul_int) },
   { RS(THP_FILE_MAPPED),                       TS(ul_int) },
   { RS(THP_SPLIT_PAGE),                        TS(ul_int) },
   { RS(THP_SPLIT_PAGE_FAILED),                 TS(ul_int) },
@@ -706,7 +760,11 @@ static struct {
   { RS(DELTA_NR_DIRTY),                        TS(sl_int) },
   { RS(DELTA_NR_DIRTY_BACKGROUND_THRESHOLD),   TS(sl_int) },
   { RS(DELTA_NR_DIRTY_THRESHOLD),              TS(sl_int) },
+  { RS(DELTA_NR_FILE_HUGEPAGES),               TS(sl_int) },
   { RS(DELTA_NR_FILE_PAGES),                   TS(sl_int) },
+  { RS(DELTA_NR_FILE_PMDMAPPED),               TS(sl_int) },
+  { RS(DELTA_NR_FOLL_PIN_ACQUIRED),            TS(sl_int) },
+  { RS(DELTA_NR_FOLL_PIN_RELEASED),            TS(sl_int) },
   { RS(DELTA_NR_FREE_CMA),                     TS(sl_int) },
   { RS(DELTA_NR_FREE_PAGES),                   TS(sl_int) },
   { RS(DELTA_NR_INACTIVE_ANON),                TS(sl_int) },
@@ -718,6 +776,7 @@ static struct {
   { RS(DELTA_NR_MAPPED),                       TS(sl_int) },
   { RS(DELTA_NR_MLOCK),                        TS(sl_int) },
   { RS(DELTA_NR_PAGE_TABLE_PAGES),             TS(sl_int) },
+  { RS(DELTA_NR_SHADOW_CALL_STACK),            TS(sl_int) },
   { RS(DELTA_NR_SHMEM),                        TS(sl_int) },
   { RS(DELTA_NR_SHMEM_HUGEPAGES),              TS(sl_int) },
   { RS(DELTA_NR_SHMEM_PMDMAPPED),              TS(sl_int) },
@@ -769,15 +828,19 @@ static struct {
   { RS(DELTA_PGPGOUT),                         TS(sl_int) },
   { RS(DELTA_PGREFILL),                        TS(sl_int) },
   { RS(DELTA_PGROTATED),                       TS(sl_int) },
+  { RS(DELTA_PGSCAN_ANON),                     TS(sl_int) },
   { RS(DELTA_PGSCAN_DIRECT),                   TS(sl_int) },
   { RS(DELTA_PGSCAN_DIRECT_THROTTLE),          TS(sl_int) },
+  { RS(DELTA_PGSCAN_FILE),                     TS(sl_int) },
   { RS(DELTA_PGSCAN_KSWAPD),                   TS(sl_int) },
   { RS(DELTA_PGSKIP_DMA),                      TS(sl_int) },
   { RS(DELTA_PGSKIP_DMA32),                    TS(sl_int) },
   { RS(DELTA_PGSKIP_HIGH),                     TS(sl_int) },
   { RS(DELTA_PGSKIP_MOVABLE),                  TS(sl_int) },
   { RS(DELTA_PGSKIP_NORMAL),                   TS(sl_int) },
+  { RS(DELTA_PGSTEAL_ANON),                    TS(sl_int) },
   { RS(DELTA_PGSTEAL_DIRECT),                  TS(sl_int) },
+  { RS(DELTA_PGSTEAL_FILE),                    TS(sl_int) },
   { RS(DELTA_PGSTEAL_KSWAPD),                  TS(sl_int) },
   { RS(DELTA_PSWPIN),                          TS(sl_int) },
   { RS(DELTA_PSWPOUT),                         TS(sl_int) },
@@ -789,7 +852,10 @@ static struct {
   { RS(DELTA_THP_DEFERRED_SPLIT_PAGE),         TS(sl_int) },
   { RS(DELTA_THP_FAULT_ALLOC),                 TS(sl_int) },
   { RS(DELTA_THP_FAULT_FALLBACK),              TS(sl_int) },
+  { RS(DELTA_THP_FAULT_FALLBACK_CHARGE),       TS(sl_int) },
   { RS(DELTA_THP_FILE_ALLOC),                  TS(sl_int) },
+  { RS(DELTA_THP_FILE_FALLBACK),               TS(sl_int) },
+  { RS(DELTA_THP_FILE_FALLBACK_CHARGE),        TS(sl_int) },
   { RS(DELTA_THP_FILE_MAPPED),                 TS(sl_int) },
   { RS(DELTA_THP_SPLIT_PAGE),                  TS(sl_int) },
   { RS(DELTA_THP_SPLIT_PAGE_FAILED),           TS(sl_int) },
@@ -947,7 +1013,11 @@ static int vmstat_make_hash_failed (
     htVAL(nr_dirty)
     htVAL(nr_dirty_background_threshold)
     htVAL(nr_dirty_threshold)
+    htVAL(nr_file_hugepages)
     htVAL(nr_file_pages)
+    htVAL(nr_file_pmdmapped)
+    htVAL(nr_foll_pin_acquired)
+    htVAL(nr_foll_pin_released)
     htVAL(nr_free_cma)
     htVAL(nr_free_pages)
     htVAL(nr_inactive_anon)
@@ -959,6 +1029,7 @@ static int vmstat_make_hash_failed (
     htVAL(nr_mapped)
     htVAL(nr_mlock)
     htVAL(nr_page_table_pages)
+    htVAL(nr_shadow_call_stack)
     htVAL(nr_shmem)
     htVAL(nr_shmem_hugepages)
     htVAL(nr_shmem_pmdmapped)
@@ -1010,15 +1081,19 @@ static int vmstat_make_hash_failed (
     htVAL(pgpgout)
     htVAL(pgrefill)
     htVAL(pgrotated)
+    htVAL(pgscan_anon)
     htVAL(pgscan_direct)
     htVAL(pgscan_direct_throttle)
+    htVAL(pgscan_file)
     htVAL(pgscan_kswapd)
     htVAL(pgskip_dma)
     htVAL(pgskip_dma32)
     htVAL(pgskip_high)
     htVAL(pgskip_movable)
     htVAL(pgskip_normal)
+    htVAL(pgsteal_anon)
     htVAL(pgsteal_direct)
+    htVAL(pgsteal_file)
     htVAL(pgsteal_kswapd)
     htVAL(pswpin)
     htVAL(pswpout)
@@ -1030,7 +1105,10 @@ static int vmstat_make_hash_failed (
     htVAL(thp_deferred_split_page)
     htVAL(thp_fault_alloc)
     htVAL(thp_fault_fallback)
+    htVAL(thp_fault_fallback_charge)
     htVAL(thp_file_alloc)
+    htVAL(thp_file_fallback)
+    htVAL(thp_file_fallback_charge)
     htVAL(thp_file_mapped)
     htVAL(thp_split_page)
     htVAL(thp_split_page_failed)
index b75a39f47b442f438b566ab9f911e7332052159c..7b3ed433a4d097c9d6fceb10dc4b0603f8fabd94 100644 (file)
@@ -66,7 +66,11 @@ enum vmstat_item {
     VMSTAT_NR_DIRTY,                              //   ul_int         "
     VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD,         //   ul_int         "
     VMSTAT_NR_DIRTY_THRESHOLD,                    //   ul_int         "
+    VMSTAT_NR_FILE_HUGEPAGES,                     //   ul_int         "
     VMSTAT_NR_FILE_PAGES,                         //   ul_int         "
+    VMSTAT_NR_FILE_PMDMAPPED,                     //   ul_int         "
+    VMSTAT_NR_FOLL_PIN_ACQUIRED,                  //   ul_int         "
+    VMSTAT_NR_FOLL_PIN_RELEASED,                  //   ul_int         "
     VMSTAT_NR_FREE_CMA,                           //   ul_int         "
     VMSTAT_NR_FREE_PAGES,                         //   ul_int         "
     VMSTAT_NR_INACTIVE_ANON,                      //   ul_int         "
@@ -78,6 +82,7 @@ enum vmstat_item {
     VMSTAT_NR_MAPPED,                             //   ul_int         "
     VMSTAT_NR_MLOCK,                              //   ul_int         "
     VMSTAT_NR_PAGE_TABLE_PAGES,                   //   ul_int         "
+    VMSTAT_NR_SHADOW_CALL_STACK,                  //   ul_int         "
     VMSTAT_NR_SHMEM,                              //   ul_int         "
     VMSTAT_NR_SHMEM_HUGEPAGES,                    //   ul_int         "
     VMSTAT_NR_SHMEM_PMDMAPPED,                    //   ul_int         "
@@ -129,15 +134,19 @@ enum vmstat_item {
     VMSTAT_PGPGOUT,                               //   ul_int         "
     VMSTAT_PGREFILL,                              //   ul_int         "
     VMSTAT_PGROTATED,                             //   ul_int         "
+    VMSTAT_PGSCAN_ANON,                           //   ul_int         "
     VMSTAT_PGSCAN_DIRECT,                         //   ul_int         "
     VMSTAT_PGSCAN_DIRECT_THROTTLE,                //   ul_int         "
+    VMSTAT_PGSCAN_FILE,                           //   ul_int         "
     VMSTAT_PGSCAN_KSWAPD,                         //   ul_int         "
     VMSTAT_PGSKIP_DMA,                            //   ul_int         "
     VMSTAT_PGSKIP_DMA32,                          //   ul_int         "
     VMSTAT_PGSKIP_HIGH,                           //   ul_int         "
     VMSTAT_PGSKIP_MOVABLE,                        //   ul_int         "
     VMSTAT_PGSKIP_NORMAL,                         //   ul_int         "
+    VMSTAT_PGSTEAL_ANON,                          //   ul_int         "
     VMSTAT_PGSTEAL_DIRECT,                        //   ul_int         "
+    VMSTAT_PGSTEAL_FILE,                          //   ul_int         "
     VMSTAT_PGSTEAL_KSWAPD,                        //   ul_int         "
     VMSTAT_PSWPIN,                                //   ul_int         "
     VMSTAT_PSWPOUT,                               //   ul_int         "
@@ -149,7 +158,10 @@ enum vmstat_item {
     VMSTAT_THP_DEFERRED_SPLIT_PAGE,               //   ul_int         "
     VMSTAT_THP_FAULT_ALLOC,                       //   ul_int         "
     VMSTAT_THP_FAULT_FALLBACK,                    //   ul_int         "
+    VMSTAT_THP_FAULT_FALLBACK_CHARGE,             //   ul_int         "
     VMSTAT_THP_FILE_ALLOC,                        //   ul_int         "
+    VMSTAT_THP_FILE_FALLBACK,                     //   ul_int         "
+    VMSTAT_THP_FILE_FALLBACK_CHARGE,              //   ul_int         "
     VMSTAT_THP_FILE_MAPPED,                       //   ul_int         "
     VMSTAT_THP_SPLIT_PAGE,                        //   ul_int         "
     VMSTAT_THP_SPLIT_PAGE_FAILED,                 //   ul_int         "
@@ -206,7 +218,11 @@ enum vmstat_item {
     VMSTAT_DELTA_NR_DIRTY,                        //   sl_int         "
     VMSTAT_DELTA_NR_DIRTY_BACKGROUND_THRESHOLD,   //   sl_int         "
     VMSTAT_DELTA_NR_DIRTY_THRESHOLD,              //   sl_int         "
+    VMSTAT_DELTA_NR_FILE_HUGEPAGES,               //   sl_int         "
     VMSTAT_DELTA_NR_FILE_PAGES,                   //   sl_int         "
+    VMSTAT_DELTA_NR_FILE_PMDMAPPED,               //   sl_int         "
+    VMSTAT_DELTA_NR_FOLL_PIN_ACQUIRED,            //   sl_int         "
+    VMSTAT_DELTA_NR_FOLL_PIN_RELEASED,            //   sl_int         "
     VMSTAT_DELTA_NR_FREE_CMA,                     //   sl_int         "
     VMSTAT_DELTA_NR_FREE_PAGES,                   //   sl_int         "
     VMSTAT_DELTA_NR_INACTIVE_ANON,                //   sl_int         "
@@ -218,6 +234,7 @@ enum vmstat_item {
     VMSTAT_DELTA_NR_MAPPED,                       //   sl_int         "
     VMSTAT_DELTA_NR_MLOCK,                        //   sl_int         "
     VMSTAT_DELTA_NR_PAGE_TABLE_PAGES,             //   sl_int         "
+    VMSTAT_DELTA_NR_SHADOW_CALL_STACK,            //   sl_int         "
     VMSTAT_DELTA_NR_SHMEM,                        //   sl_int         "
     VMSTAT_DELTA_NR_SHMEM_HUGEPAGES,              //   sl_int         "
     VMSTAT_DELTA_NR_SHMEM_PMDMAPPED,              //   sl_int         "
@@ -269,15 +286,19 @@ enum vmstat_item {
     VMSTAT_DELTA_PGPGOUT,                         //   sl_int         "
     VMSTAT_DELTA_PGREFILL,                        //   sl_int         "
     VMSTAT_DELTA_PGROTATED,                       //   sl_int         "
+    VMSTAT_DELTA_PGSCAN_ANON,                     //   sl_int         "
     VMSTAT_DELTA_PGSCAN_DIRECT,                   //   sl_int         "
     VMSTAT_DELTA_PGSCAN_DIRECT_THROTTLE,          //   sl_int         "
+    VMSTAT_DELTA_PGSCAN_FILE,                     //   sl_int         "
     VMSTAT_DELTA_PGSCAN_KSWAPD,                   //   sl_int         "
     VMSTAT_DELTA_PGSKIP_DMA,                      //   sl_int         "
     VMSTAT_DELTA_PGSKIP_DMA32,                    //   sl_int         "
     VMSTAT_DELTA_PGSKIP_HIGH,                     //   sl_int         "
     VMSTAT_DELTA_PGSKIP_MOVABLE,                  //   sl_int         "
     VMSTAT_DELTA_PGSKIP_NORMAL,                   //   sl_int         "
+    VMSTAT_DELTA_PGSTEAL_ANON,                    //   sl_int         "
     VMSTAT_DELTA_PGSTEAL_DIRECT,                  //   sl_int         "
+    VMSTAT_DELTA_PGSTEAL_FILE,                    //   sl_int         "
     VMSTAT_DELTA_PGSTEAL_KSWAPD,                  //   sl_int         "
     VMSTAT_DELTA_PSWPIN,                          //   sl_int         "
     VMSTAT_DELTA_PSWPOUT,                         //   sl_int         "
@@ -289,7 +310,10 @@ enum vmstat_item {
     VMSTAT_DELTA_THP_DEFERRED_SPLIT_PAGE,         //   sl_int         "
     VMSTAT_DELTA_THP_FAULT_ALLOC,                 //   sl_int         "
     VMSTAT_DELTA_THP_FAULT_FALLBACK,              //   sl_int         "
+    VMSTAT_DELTA_THP_FAULT_FALLBACK_CHARGE,       //   sl_int         "
     VMSTAT_DELTA_THP_FILE_ALLOC,                  //   sl_int         "
+    VMSTAT_DELTA_THP_FILE_FALLBACK,               //   sl_int         "
+    VMSTAT_DELTA_THP_FILE_FALLBACK_CHARGE,        //   sl_int         "
     VMSTAT_DELTA_THP_FILE_MAPPED,                 //   sl_int         "
     VMSTAT_DELTA_THP_SPLIT_PAGE,                  //   sl_int         "
     VMSTAT_DELTA_THP_SPLIT_PAGE_FAILED,           //   sl_int         "