Re: [PATCH RFC] delayacct: add memory reclaim delay in get_page_from_freelist

liwenyu01
2023-08-31T07:26:36Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="gb2312", Size: 2648 bytes --]

This patch just adds the delay statistics of get_page_from_freelist() for memory reclaim, without many modifications.
Anyone in particular I should cc to get this reviewed?

·¢¼þÈË: ÎÄÓî <liwenyu01@bilibili.com>
ÈÕÆÚ: ÐÇÆÚÈý, 2023Äê8ÔÂ23ÈÕ 17:54
ÊÕ¼þÈË: akpm@linux-foundation.org <akpm@linux-foundation.org>, linux-mm@kvack.org <linux-mm@kvack.org>
³­ËÍ: linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>, ïwÐÜ <wangyun@bilibili.com>, ÎÄÓî <liwenyu01@bilibili.com>
Ö÷Ìâ: [PATCH RFC] delayacct: add memory reclaim delay in get_page_from_freelist
The current memory reclaim delay statistics only count the direct memory
reclaim of the task in do_try_to_free_pages(). In systems with NUMA
open, some tasks occasionally experience slower response times, but the
total count of reclaim does not increase, using ftrace can show that
node_reclaim has occurred.

The memory reclaim occurring in get_page_from_freelist() is also due to
heavy memory load. To get the impact of tasks in memory reclaim, this
patch adds the statistics of the memory reclaim delay statistics for
__node_reclaim().

Signed-off-by: Wen Yu Li <liwenyu01@bilibili.com>
---
mm/vmscan.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 1080209a568b..d2471abce1ae 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -8010,6 +8010,7 @@ static int __node_reclaim(struct pglist_data *pgdat, gfp_t gfp_mask, unsigned in

cond_resched();
psi_memstall_enter(&pflags);
+ delayacct_freepages_start();
fs_reclaim_acquire(sc.gfp_mask);
/*
* We need to be able to allocate from the reserves for RECLAIM_UNMAP
@@ -8032,6 +8033,7 @@ static int __node_reclaim(struct pglist_data *pgdat, gfp_t gfp_mask, unsigned in
memalloc_noreclaim_restore(noreclaim_flag);
fs_reclaim_release(sc.gfp_mask);
psi_memstall_leave(&pflags);
+ delayacct_freepages_end();

trace_mm_vmscan_node_reclaim_end(sc.nr_reclaimed);

--
2.30.2

±¾ÓÊ¼þ½öÎªÖ¸¶¨ÊÕ¼þÈËÊ¹ÓÃ²¢¿ÉÄÜ°üº¬±£ÃÜÐÅÏ¢£¬ÈôÄúÎóÊÕµ½±¾ÓÊ¼þ£¬¾´ÇëÍ¨Öª·¢¼þÈË£¬²¢Á¢¼´É¾³ý±¾ÓÊ¼þ¼°ËùÓÐ¸±±¾¡£Äú²»µÃÉÃ×Ô´«²¥¡¢×ª·¢¡¢±£´æ»ò¸´ÖÆ´ËÓÊ¼þ(º¬¸½¼þ)¡£¸ÐÐ»ÄúµÄÀí½âÓëÅäºÏ¡£
This message may contain confidential information, and is intended only for the use of the addressee(s) named above. If you have received this message in error, please contact the sender immediately and delete all copies from your system. You are hereby notified that any dissemination, distribution, preservation or copying of this message and/or attachments is strictly prohibited. Thank you for your understanding and cooperation.

[-- Attachment #2: Type: text/html, Size: 11742 bytes --]