mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 18:08:20 +00:00
mm: add system wide stats items category
/proc/vmstat contains events and stats, events can only grow, but stats can grow and shrink. vmstat has the following: ------------------------- NR_VM_ZONE_STAT_ITEMS: per-zone stats NR_VM_NUMA_EVENT_ITEMS: per-numa events NR_VM_NODE_STAT_ITEMS: per-numa stats NR_VM_WRITEBACK_STAT_ITEMS: system-wide background-writeback and dirty-throttling tresholds. NR_VM_EVENT_ITEMS: system-wide events ------------------------- Rename NR_VM_WRITEBACK_STAT_ITEMS to NR_VM_STAT_ITEMS, to track the system-wide stats, we are going to add per-page metadata stats to this category in the next patch. Also delete unused writeback_stat_name(). Link: https://lkml.kernel.org/r/20240809191020.1142142-2-pasha.tatashin@soleen.com Link: https://lkml.kernel.org/r/20240808213437.682006-3-pasha.tatashin@soleen.com Fixes: 15995a352474 ("mm: report per-page metadata information") Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com> Suggested-by: Yosry Ahmed <yosryahmed@google.com> Tested-by: Alison Schofield <alison.schofield@intel.com> Acked-by: David Hildenbrand <david@redhat.com> Acked-by: David Rientjes <rientjes@google.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Domenico Cerasuolo <cerasuolodomenico@gmail.com> Cc: Joel Granados <j.granados@samsung.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Li Zhijian <lizhijian@fujitsu.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Mike Rapoport <rppt@kernel.org> Cc: Muchun Song <muchun.song@linux.dev> Cc: Nhat Pham <nphamcs@gmail.com> Cc: Sourav Panda <souravpanda@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Yi Zhang <yi.zhang@redhat.com> Cc: Fan Ni <fan.ni@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
ace0741a55
commit
f4cb78af91
@ -34,10 +34,11 @@ struct reclaim_stat {
|
|||||||
unsigned nr_lazyfree_fail;
|
unsigned nr_lazyfree_fail;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum writeback_stat_item {
|
/* Stat data for system wide items */
|
||||||
|
enum vm_stat_item {
|
||||||
NR_DIRTY_THRESHOLD,
|
NR_DIRTY_THRESHOLD,
|
||||||
NR_DIRTY_BG_THRESHOLD,
|
NR_DIRTY_BG_THRESHOLD,
|
||||||
NR_VM_WRITEBACK_STAT_ITEMS,
|
NR_VM_STAT_ITEMS,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_VM_EVENT_COUNTERS
|
#ifdef CONFIG_VM_EVENT_COUNTERS
|
||||||
@ -514,21 +515,13 @@ static inline const char *lru_list_name(enum lru_list lru)
|
|||||||
return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
|
return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *writeback_stat_name(enum writeback_stat_item item)
|
|
||||||
{
|
|
||||||
return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
|
|
||||||
NR_VM_NUMA_EVENT_ITEMS +
|
|
||||||
NR_VM_NODE_STAT_ITEMS +
|
|
||||||
item];
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CONFIG_VM_EVENT_COUNTERS) || defined(CONFIG_MEMCG)
|
#if defined(CONFIG_VM_EVENT_COUNTERS) || defined(CONFIG_MEMCG)
|
||||||
static inline const char *vm_event_name(enum vm_event_item item)
|
static inline const char *vm_event_name(enum vm_event_item item)
|
||||||
{
|
{
|
||||||
return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
|
return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
|
||||||
NR_VM_NUMA_EVENT_ITEMS +
|
NR_VM_NUMA_EVENT_ITEMS +
|
||||||
NR_VM_NODE_STAT_ITEMS +
|
NR_VM_NODE_STAT_ITEMS +
|
||||||
NR_VM_WRITEBACK_STAT_ITEMS +
|
NR_VM_STAT_ITEMS +
|
||||||
item];
|
item];
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_VM_EVENT_COUNTERS || CONFIG_MEMCG */
|
#endif /* CONFIG_VM_EVENT_COUNTERS || CONFIG_MEMCG */
|
||||||
|
@ -1257,7 +1257,7 @@ const char * const vmstat_text[] = {
|
|||||||
"pgdemote_khugepaged",
|
"pgdemote_khugepaged",
|
||||||
"nr_memmap",
|
"nr_memmap",
|
||||||
"nr_memmap_boot",
|
"nr_memmap_boot",
|
||||||
/* enum writeback_stat_item counters */
|
/* system-wide enum vm_stat_item counters */
|
||||||
"nr_dirty_threshold",
|
"nr_dirty_threshold",
|
||||||
"nr_dirty_background_threshold",
|
"nr_dirty_background_threshold",
|
||||||
|
|
||||||
@ -1790,7 +1790,7 @@ static const struct seq_operations zoneinfo_op = {
|
|||||||
#define NR_VMSTAT_ITEMS (NR_VM_ZONE_STAT_ITEMS + \
|
#define NR_VMSTAT_ITEMS (NR_VM_ZONE_STAT_ITEMS + \
|
||||||
NR_VM_NUMA_EVENT_ITEMS + \
|
NR_VM_NUMA_EVENT_ITEMS + \
|
||||||
NR_VM_NODE_STAT_ITEMS + \
|
NR_VM_NODE_STAT_ITEMS + \
|
||||||
NR_VM_WRITEBACK_STAT_ITEMS + \
|
NR_VM_STAT_ITEMS + \
|
||||||
(IS_ENABLED(CONFIG_VM_EVENT_COUNTERS) ? \
|
(IS_ENABLED(CONFIG_VM_EVENT_COUNTERS) ? \
|
||||||
NR_VM_EVENT_ITEMS : 0))
|
NR_VM_EVENT_ITEMS : 0))
|
||||||
|
|
||||||
@ -1827,7 +1827,7 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
|
|||||||
|
|
||||||
global_dirty_limits(v + NR_DIRTY_BG_THRESHOLD,
|
global_dirty_limits(v + NR_DIRTY_BG_THRESHOLD,
|
||||||
v + NR_DIRTY_THRESHOLD);
|
v + NR_DIRTY_THRESHOLD);
|
||||||
v += NR_VM_WRITEBACK_STAT_ITEMS;
|
v += NR_VM_STAT_ITEMS;
|
||||||
|
|
||||||
#ifdef CONFIG_VM_EVENT_COUNTERS
|
#ifdef CONFIG_VM_EVENT_COUNTERS
|
||||||
all_vm_events(v);
|
all_vm_events(v);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user