Unverified Commit 2eea44c9 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!4154 Add per-node vmstat info and memcg info

Merge Pull Request from: @ci-robot 
 
PR sync from: Peng Zhang <zhangpeng362@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/3HWR33ESCRX52WKSSGLL4QVYKDKJ6MEO/ 
From: ZhangPeng <zhangpeng362@huawei.com>

Backport vmstat and memcg info patches, including moving pgdemote_* to
per-node stats and add THP swap out info for anonymous reclaim.

Li Zhijian (2):
  mm/vmstat: move pgdemote_* to per-node stats
  mm/vmstat: move pgdemote_* out of CONFIG_NUMA_BALANCING

Xin Hao (1):
  mm: memcg: add THP swap out info for anonymous reclaim


-- 
2.25.1
 
https://gitee.com/openeuler/kernel/issues/I8YBMI 
 
Link:https://gitee.com/openeuler/kernel/pulls/4154

 

Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: default avatarLu Jialin <lujialin4@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents d3adf204 f6032e52
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1534,6 +1534,15 @@ PAGE_SIZE multiple when read back.
		collapsing an existing range of pages. This counter is not
		present when CONFIG_TRANSPARENT_HUGEPAGE is not set.

	  thp_swpout (npn)
		Number of transparent hugepages which are swapout in one piece
		without splitting.

	  thp_swpout_fallback (npn)
		Number of transparent hugepages which were split before swapout.
		Usually because failed to allocate some continuous swap space
		for the huge page.

  memory.numa_stat
	A read-only nested-keyed file which exists on non-root cgroups.

+4 −0
Original line number Diff line number Diff line
@@ -207,6 +207,10 @@ enum node_stat_item {
	PGPROMOTE_SUCCESS,	/* promote successfully */
	PGPROMOTE_CANDIDATE,	/* candidate pages to promote */
#endif
	/* PGDEMOTE_*: pages demoted */
	PGDEMOTE_KSWAPD,
	PGDEMOTE_DIRECT,
	PGDEMOTE_KHUGEPAGED,
	NR_VM_NODE_STAT_ITEMS
};

+0 −3
Original line number Diff line number Diff line
@@ -41,9 +41,6 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
		PGSTEAL_KSWAPD,
		PGSTEAL_DIRECT,
		PGSTEAL_KHUGEPAGED,
		PGDEMOTE_KSWAPD,
		PGDEMOTE_DIRECT,
		PGDEMOTE_KHUGEPAGED,
		PGSCAN_KSWAPD,
		PGSCAN_DIRECT,
		PGSCAN_KHUGEPAGED,
+2 −0
Original line number Diff line number Diff line
@@ -731,6 +731,8 @@ static const unsigned int memcg_vm_event_stat[] = {
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
	THP_FAULT_ALLOC,
	THP_COLLAPSE_ALLOC,
	THP_SWPOUT,
	THP_SWPOUT_FALLBACK,
#endif
};

+4 −4
Original line number Diff line number Diff line
@@ -208,8 +208,10 @@ int swap_writepage(struct page *page, struct writeback_control *wbc)
static inline void count_swpout_vm_event(struct folio *folio)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
	if (unlikely(folio_test_pmd_mappable(folio)))
	if (unlikely(folio_test_pmd_mappable(folio))) {
		count_memcg_folio_events(folio, THP_SWPOUT, 1);
		count_vm_event(THP_SWPOUT);
	}
#endif
	count_vm_events(PSWPOUT, folio_nr_pages(folio));
}
@@ -278,9 +280,6 @@ static void sio_write_complete(struct kiocb *iocb, long ret)
			set_page_dirty(page);
			ClearPageReclaim(page);
		}
	} else {
		for (p = 0; p < sio->pages; p++)
			count_swpout_vm_event(page_folio(sio->bvec[p].bv_page));
	}

	for (p = 0; p < sio->pages; p++)
@@ -296,6 +295,7 @@ static void swap_writepage_fs(struct page *page, struct writeback_control *wbc)
	struct file *swap_file = sis->swap_file;
	loff_t pos = page_file_offset(page);

	count_swpout_vm_event(page_folio(page));
	set_page_writeback(page);
	unlock_page(page);
	if (wbc->swap_plug)
Loading