From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5464CCFD357 for ; Fri, 11 Oct 2024 11:39:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 904336B00B4; Fri, 11 Oct 2024 07:39:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B0EA6B00B5; Fri, 11 Oct 2024 07:39:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7523B6B00B6; Fri, 11 Oct 2024 07:39:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 50ACD6B00B4 for ; Fri, 11 Oct 2024 07:39:29 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 0BEC440A41 for ; Fri, 11 Oct 2024 11:39:26 +0000 (UTC) X-FDA: 82661125974.06.76AB9ED Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by imf03.hostedemail.com (Postfix) with ESMTP id 3FEFB2001A for ; Fri, 11 Oct 2024 11:39:23 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=p0e7B9Kz; spf=pass (imf03.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.25 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728646721; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LMhp7fEYhMoyCnDFFS/hYKn62hYUZJQDUlw5oNGD2AY=; b=4XtZgP64IePfKslqI71G8E9OQ/GnxP01OvGfDrcLTICZEOM83Tda7WvyMD3CcL0+5pW785 3TWykI6XcGxvAFaCtNErnNgMHpJV3Y8sPBOhh3REBNOSMeyUPUHeeKEA8bD1eI2ltx4jlo gHmKJsb2FYk2G+OSc+uhFxp/liIHrsA= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=p0e7B9Kz; spf=pass (imf03.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.25 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728646721; a=rsa-sha256; cv=none; b=HkNvruBlo4jkqao16r6qJ253ksrNRI0c4+aYSi5IVNOMQKsf9U1vVKKVJiGZo/FE1Q5G7O zXrsbDTkOVpNm8JHhYoOUAhMlfrILNbqoyPXFm58q8BMDabtkQ6XXtkk3LBNTbK071034z h9siKMsG9YJjZTIvpNWb3xoRPEOC/Ck= Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20241011113922epoutp02f3b751b482712ef98d84ba61ee89802e~9YxJPxfVD0736307363epoutp02C for ; Fri, 11 Oct 2024 11:39:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20241011113922epoutp02f3b751b482712ef98d84ba61ee89802e~9YxJPxfVD0736307363epoutp02C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1728646762; bh=LMhp7fEYhMoyCnDFFS/hYKn62hYUZJQDUlw5oNGD2AY=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=p0e7B9KzITtsuE7Plj+HTv8Rbe6c2TDY0zi+nlrJTtrf7/O/WQZ/wXYU3g+lIrjRE +6znPsevEEiju09K+m05z3hfbPLpTnqRQBwOhqjAzpYRwpZ05qbiN6s7OSsBByMdos H3aDlFEDbNIvp5AU4j2HQau7R0+hx7I7yUB9GyeM= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p4.samsung.com (KnoxPortal) with ESMTP id 20241011113921epcas1p4e84f5b58b44f3da89ec56e248439addd~9YxIdS6N02699626996epcas1p4M; Fri, 11 Oct 2024 11:39:21 +0000 (GMT) Received: from epsmgec1p1-new.samsung.com (unknown [182.195.36.222]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4XQ4Qx0S1Fz4x9Q1; Fri, 11 Oct 2024 11:39:21 +0000 (GMT) X-AuditID: b6c32a4c-02dff70000004ba3-e9-67090e686769 Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmgec1p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 56.36.19363.86E09076; Fri, 11 Oct 2024 20:39:20 +0900 (KST) Mime-Version: 1.0 Subject: RE: [PATCH] vmscan: add a vmscan event for reclaim_pages Reply-To: jaewon31.kim@samsung.com From: Jaewon Kim To: Vlastimil Babka , "sj@kernel.org" , "minchan@kernel.org" , "kaleshsingh@google.com" , "akpm@linux-foundation.org" CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "jaewon31.kim@gmail.com" X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20241011113919epcms1p4d6ae59bece34d4a930a5db31a2f00173@epcms1p4> Date: Fri, 11 Oct 2024 20:39:19 +0900 X-CMS-MailID: 20241011113919epcms1p4d6ae59bece34d4a930a5db31a2f00173 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" CMS-TYPE: 101P X-CPGSPASS: Y X-CPGSPASS: Y X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEJsWRmVeSWpSXmKPExsWy7bCmgW4GH2e6wYkl1hZz1q9hs3h5SNOi e/NMRoumfTPZLS7vmsNmcW/Nf1aLZV/fs1sc/vqGyWJ2Yx+jA6fHzll32T0WbCr12LSqk81j 06dJ7B4nZvxm8ejbsorR48yCI+wenzfJBXBEZdtkpCampBYppOYl56dk5qXbKnkHxzvHm5oZ GOoaWlqYKynkJeam2iq5+AToumXmAF2npFCWmFMKFApILC5W0rezKcovLUlVyMgvLrFVSi1I ySkwK9ArTswtLs1L18tLLbEyNDAwMgUqTMjO6DyzgbngXnzF9V2bGBsYF0p3MXJySAiYSJya OImti5GLQ0hgD6PEuVmbGbsYOTh4BQQl/u4QBqkRFnCUuNf6hQ3EFhJQkjj74wo7RFxXoql7 NQuIzSagLfF+wSRWkDkiAo8YJbZceMkO4jALLGaUaFt5lAliG6/EjPanLBC2tMT25VsZQWxO AWuJL28b2CDiohI3V79lh7HfH5vPCGGLSLTeO8sMYQtKPPi5mxFmzp/jz6F6iyWWdT6A2lUj seLcKqi4uUTD25VgNq+Ar8TE9+/A5rAIqEocb/sPVeMi8fZRN9htzALyEtvfzmEGBQSzgKbE +l36EGE+iXdfe1hhXmnY+JsdG3vHvCdQJ6hJtDz7ClUvI/H33zNWkJESAh4Sr1cmT2BUnIUI 6VlI9s5C2LuAkXkVo1RqQXFuemqyYYGhbl5qOTyCk/NzNzGCE6uWzw7G7+v/6h1iZOJgPMQo wcGsJMKru5A1XYg3JbGyKrUoP76oNCe1+BCjKdDXE5mlRJPzgak9ryTe0MTSwMTMyMTC2NLY TEmc98yVslQhgfTEktTs1NSC1CKYPiYOTqkGJrlFO/y6fvDcv53QcVzgpvfORp/5PA8Fgrks s2rTk7vOzCvoX3CNn2F9Rr7VudZayZfCN3uCbfpuRSTX7onweOeUsE6juu8Z944uvcXmLlEx 2/iifgrslw7Nr62sO7H09+ldGmvUNhtV7I28MINrkvZtXiXJe7PPF5rNr1HfMONd1wrT2P7X rg5LXITTuH9uW795xsNLP05tmDJ9Ov8mGU5Dp7eKwb35JdNPZLkKLX984dOFzozZbCe8Z+/P 9ptZmZnmrz6RtfhDpuCueW86lktc/cstVFn3QvgY5/elVu9Dol8ek1jfp7Hu6OELjedfZ3q8 fiWrHN+eFTvjSWHwY6aLmU/319y80/tZfP7bFUosxRmJhlrMRcWJAAGq+uE1BAAA DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241009093133epcas1p39b770ebcc6d2d78cad2f9a522bc6f179 References: <20241009093124.3647359-1-jaewon31.kim@samsung.com> <20241011082539epcms1p6039313672abedf63d5368a3eae87bad5@epcms1p6> X-Rspam-User: X-Stat-Signature: oujh4frntehxrmj3g8wogjjba8x7fpsf X-Rspamd-Queue-Id: 3FEFB2001A X-Rspamd-Server: rspam11 X-HE-Tag: 1728646763-40341 X-HE-Meta: U2FsdGVkX1/2VyGVMvSLAVQYeXvN7458s9lLBHRJvLq1x56vO9mCMOiWneILdixjCXpO/h9mHR4PGmK5Sz2/Z0MQ7AZro+4+vhhSmp73uY+RF8RSryV0hVI20b4mPCvGet/dmJwtjjoxRM7NCAqVLgD+z07NJXCoalHOBwHVy1oZpNoIi3w27tPu145zNCd7ArdCoI0Xe0A8nEyANpkugG4pjzasder3EDCDxgttkKjgjdaKqtXb3E7g+A8AaOuGWADxIvEmbIDp9DF3MJBLlA0eRTDbJA0YqPgPnMFjEtQFDXIiEWDjJ0hoZ5VO17Lj3NYctXndpRzxs4R1+vXN4vuAjMbRo/PQ8BsOuv8bN4FgHUySIralyRGAYtLSaPEguKg1H5oUEzJTZjDe3KsZvfgf6yMmuo7GT+EKJrA4Kamp7mkxy7Jl3Lq2igfD2C8A/qh6MYOWCyhhWp4k69LaP0gZzYhGNUxNnLqYEc4a2k1odh4R7Jlsw6Kl5Wp0gRaFLmAKoeIKdYD4MdpQZ4Oi8SwHnrg7Vk5HkxNARxH+KrIMmpREvGpu+CKbYZW2ADzrPvi6MJBK9K6zpXKHThtBNTKhTH2bB8RrlHqWbqdt8IkCnaYgRoDgPsDlLGcKoPC9Ejb8oQ/Lw4bTsykPztLn4lo3bqMkem1yV2057+Wf/0StjPTvtEu5PkPG5gbenJDYv2rFaw5pGIRRsOO4ligQfLgxnTYWZmJE7ZYY4b3Eef0KJT4uApVm54uw1hDRcKasZ3oZl00dWehqrBA4rEgVkuTwa0nEs9+RNzhBQThEcV8+AeadhYwvPj0eItezbi/fw3EBbXIZwpwqFDcyaaERFgfEW6aHHbjKyWX5TKSP/NDJV/7drnUQWWrXZsOJUZfgfHDl1fy4wkT86mi+4OPAftVH5xitE2MUnHEugzAeJBtmLPaG81HiFiOrtvBDBeKWr2BmqeTb8kndQFoUh44 qQpWQOzN 48mr8KatgCvpAqLD1xF1Sv+yiz5fqhiUBG6RXn+kGsYBveao+jdwJLS9eEsTKhftG12IjEPg/rTwxzad7Mnde2G9M07XLxUjuvwtOoAAY+9ywUQ8PX+ZHWwjrIoPsClowYTlpRik877uPvNVM393hUNcVXkFAF/1JpwBcJhnorjl2PFq9ARbAZad6RVHXHv88s0A9t98LK2VHh0V5sNLvrXgKGm99Yz+v1++dwP1Nr45bL+fbKM6KExO/jus+c2VNhFWXDyVXNquB4yUYXT0qMsJn+pZCyFNASTT8K0bunXpVkq4qt+YLn/EcIZIFjAX5KwoiISDHCTBu8V709RMW8d9YOwCiJCQMEV4QoC6fk77gdNCetMUDpNDCn3xyBKtzgl0GR8UBCGFcAtpsglGHX+XQKuAYpLKEOHnG X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: >On 10/11/24 10:25 AM, Jaewon Kim wrote: >> Hi >> >> Thank you for your coment. Yes if it is allowed, I can do that way. When >> I checked, the following functions should do the memset(). >> >> reclaim_clean_pages_from_list >> shrink_inactive_list >> reclaim_folio_list >> evict_folios >> >> Actually I was planning to move trace_mm_vmscan_reclaim_pages into >> reclaim_folio_list so that we don't have to sum up and we may be able >> to print node number, too. As we will see log for each node, if we'd >> like to know the sum, that would be the post parser's job. >> >> Option 1. No change on memset, but print on each node. >> mm_vmscan_reclaim_pages: nid=0 nr_scanned=112 nr_reclaimed=112 nr_dirty=0 nr_writeback=0 nr_congested=0 nr_immediate=0 nr_activate_anon=0 nr_activate_file=0 nr_ref_keep=0 nr_unmap_fail=0 >> mm_vmscan_reclaim_pages: nid=1 ... >> mm_vmscan_reclaim_pages: nid=2 ... > >I see. Note it processes a list that might be from multiple nodes and >will group consecutive pages from the same node, but if pages come from >random nodes, the nodes will repeat and there might be many trace >events, each for few pages only. > >Guess it depends on the workload if it has its pages from the same node. >Maybe you can try and see how noisy it is in practice? > Hi Actually my Android test device has only one node, so I cannot test several nodes cases. But it shows quite many of mm_vmscan_reclaim_pages log when I do the Android shmem based call to reclaim_pages. I have to do the post parsing or make a fancy ftrace hist command. I think madvise and damon, which are the other caller to reclaim_pages, are not interested in showing trace log for each node. I'm just worried changing policy, memset(0) is the caller responsibility, could be error-prone if we forget someday. So if possible, let me take the option 1. To show a clean code, let me submit the v2 patch. Thank you. >> Option 2. Change on memset, but we don't care the stat from each node. >> mm_vmscan_reclaim_pages: nr_scanned=35 nr_reclaimed=35 nr_dirty=0 nr_writeback=0 nr_congested=0 nr_immediate=0 nr_activate_anon=0 nr_activate_file=0 nr_ref_keep=0 nr_unmap_fail=0 >> >> Would you give me you preference between the two options? >> >> Thank you >> Jaewon Kim >> >>> >>> AFAICS shrink_folio_list() only cares about these fields: >>> >>> pgactivate = stat->nr_activate[0] + stat->nr_activate[1]; >>> >>> in order to do >>> >>> count_vm_events(PGACTIVATE, pgactivate); >>> >>> Which could be adjusted to deal with accumulating stat - i.e. take an >>> initial sum of the fields in stat and subtract from the final sum to get >>> the delta. >>> >>>> unsigned long reclaim_pages(struct list_head *folio_list) >>>> { >>>> int nid; >>>> + unsigned int nr_scanned = 0; >>>> unsigned int nr_reclaimed = 0; >>>> LIST_HEAD(node_folio_list); >>>> unsigned int noreclaim_flag; >>>> + struct reclaim_stat stat_total, stat_one; >>>> >>>> if (list_empty(folio_list)) >>>> return nr_reclaimed; >>>> >>>> + memset(&stat_total, 0, sizeof(stat_total)); >>>> noreclaim_flag = memalloc_noreclaim_save(); >>>> >>>> nid = folio_nid(lru_to_folio(folio_list)); >>>> @@ -2168,14 +2192,20 @@ unsigned long reclaim_pages(struct list_head *folio_list) >>>> if (nid == folio_nid(folio)) { >>>> folio_clear_active(folio); >>>> list_move(&folio->lru, &node_folio_list); >>>> + nr_scanned += folio_nr_pages(folio); >>>> continue; >>>> } >>>> >>>> - nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid)); >>>> + nr_reclaimed += reclaim_folio_list(&node_folio_list, >>>> + NODE_DATA(nid), &stat_one); >>>> + reclaim_stat_add(&stat_one, &stat_total); >>>> nid = folio_nid(lru_to_folio(folio_list)); >>>> } while (!list_empty(folio_list)); >>>> >>>> - nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid)); >>>> + nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid), >>>> + &stat_one); >>>> + reclaim_stat_add(&stat_one, &stat_total); >>>> + trace_mm_vmscan_reclaim_pages(nr_scanned, nr_reclaimed, &stat_total); >>>> >>>> memalloc_noreclaim_restore(noreclaim_flag); >>>>