mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 23:19:34 +02:00
mm/vmstat: add NRSWP{IN,OUT} counters
Count how many swap I/Os we cause. Due to batching this can be different than the current counter number of pages written/read, and tracking this information is useful to see how efficient the batching is. The counters are added at the end of enum vm_event_item and the vmstat_text array under the assumption that the order of fields in /proc/vmstat is an ABI. If that is not the case, they could be grouped with the other swap counters. Link: https://lore.kernel.org/20260713093350.2154226-8-hch@lst.de Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Nhat Pham <nphamcs@gmail.com> Cc: Baolin Wang <baolin.wang@linux.alibaba.com> Cc: Baoquan He <baoquan.he@linux.dev> Cc: Barry Song <baohua@kernel.org> Cc: Chris Li <chrisl@kernel.org> Cc: Kairui Song <kasong@tencent.com> Cc: Kemeng Shi <shikemeng@huaweicloud.com> Cc: Youngjun Park <youngjun.park@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
0df74c1158
commit
c01e6df60e
@@ -175,6 +175,10 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
|
|||||||
KSTACK_REST,
|
KSTACK_REST,
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_DEBUG_STACK_USAGE */
|
#endif /* CONFIG_DEBUG_STACK_USAGE */
|
||||||
|
#ifdef CONFIG_SWAP
|
||||||
|
NRSWPIN,
|
||||||
|
NRSWPOUT,
|
||||||
|
#endif /* CONFIG_SWAP */
|
||||||
NR_VM_EVENT_ITEMS
|
NR_VM_EVENT_ITEMS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -704,6 +704,7 @@ void swap_write_submit(struct swap_io_ctx *ctx)
|
|||||||
{
|
{
|
||||||
if (!ctx->sio)
|
if (!ctx->sio)
|
||||||
return;
|
return;
|
||||||
|
count_vm_events(NRSWPOUT, 1);
|
||||||
ctx->sis->ops->submit_write(ctx);
|
ctx->sis->ops->submit_write(ctx);
|
||||||
ctx->sio = NULL;
|
ctx->sio = NULL;
|
||||||
ctx->sis = NULL;
|
ctx->sis = NULL;
|
||||||
@@ -713,6 +714,7 @@ void swap_read_submit(struct swap_io_ctx *ctx)
|
|||||||
{
|
{
|
||||||
if (!ctx->sio)
|
if (!ctx->sio)
|
||||||
return;
|
return;
|
||||||
|
count_vm_events(NRSWPIN, 1);
|
||||||
ctx->sis->ops->submit_read(ctx);
|
ctx->sis->ops->submit_read(ctx);
|
||||||
ctx->sio = NULL;
|
ctx->sio = NULL;
|
||||||
ctx->sis = NULL;
|
ctx->sis = NULL;
|
||||||
|
|||||||
+5
-1
@@ -1502,7 +1502,11 @@ const char * const vmstat_text[] = {
|
|||||||
#if THREAD_SIZE > 65536
|
#if THREAD_SIZE > 65536
|
||||||
[I(KSTACK_REST)] = "kstack_rest",
|
[I(KSTACK_REST)] = "kstack_rest",
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif /* CONFIG_DEBUG_STACK_USAGE */
|
||||||
|
#ifdef CONFIG_SWAP
|
||||||
|
[I(NRSWPIN)] = "nrswpin",
|
||||||
|
[I(NRSWPOUT)] = "nrswpout",
|
||||||
|
#endif /* CONFIG_SWAP */
|
||||||
#undef I
|
#undef I
|
||||||
#endif /* CONFIG_VM_EVENT_COUNTERS */
|
#endif /* CONFIG_VM_EVENT_COUNTERS */
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user