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 175A3C77B78 for ; Fri, 21 Apr 2023 06:47:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29A90900003; Fri, 21 Apr 2023 02:47:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 248F9900002; Fri, 21 Apr 2023 02:47:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1381E900003; Fri, 21 Apr 2023 02:47:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 0446C900002 for ; Fri, 21 Apr 2023 02:47:10 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B6E2B140168 for ; Fri, 21 Apr 2023 06:47:09 +0000 (UTC) X-FDA: 80704466178.10.53C0D95 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by imf19.hostedemail.com (Postfix) with ESMTP id D2CC61A000B for ; Fri, 21 Apr 2023 06:47:05 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=It9X8oke; spf=pass (imf19.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682059626; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sIc9Z0SSr1aoUjwTRT1xhODsLejk9VF5Z3hHKI4GAJk=; b=HmRqrBd1DXsjaqxbvUy1vdoISDaIe6LbBOQMJxI4yGKPQdZCFpwS1FH7EPAFHl6saTbroI qLAunzrCngOxGp+IVxKhmw08NZC7NGvEYZomvKH8o0iu2mIDlLZtcvRNHSkG8mmZaEqgfv BIxdW5tONxaqtTi5QjSm+Uux3Ff2+2U= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=It9X8oke; spf=pass (imf19.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682059626; a=rsa-sha256; cv=none; b=cuP68FJUEfI6S6zdOPZ9donbLTNSppY2mY3/Vw9WddY0MDoO+8OgmCx1U1YeUM1K3OgWvT 1xOSFagAt7Ix+PuDg/pL4NIIMQJI1jqznNQNkcaIL/4y+4J5AoF3dLWs6FVu7YPaO2X4wP 3mYhL6A+0K5VobyG2U0NRggJSLg9vzQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682059625; x=1713595625; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=GVrdmfaOJ8LgmgQ7cFs6j/XJvkFAHodlEd2c9Y8HU1k=; b=It9X8oke38ri5k1nyrnScj+m1UtUBETVeRAAT/HjfupBZf3RLvPbiGzH qbwwEdeXLKNPJmv3dsNJRivrn3jogdjIWMoZxhY3SS8YCg8GL97tcLG+n sc8mCmwpZVzvlcDcfJtdNSB0l1sDsu4Mo+pGINBubRJaNVmYrK1Xvj0LK rvJSvF3hlp92CJnb+zJdRXguTdx7VKT/bhzMBhcw241xxrc4TYXRDBdal jonCd1o1Vhi4iEdehEX+vpVW9HemTEtDjs05sHjXh94o7rqRaX8e3VhdJ SYSWtSveeQql90pBqEfQ7SFP4C+0KSifxX47t8iNy9y+saD4HVGXwqGRh w==; X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="408868290" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="408868290" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 23:47:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="694868869" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="694868869" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 23:47:02 -0700 From: "Huang, Ying" To: "zhaoyang.huang" Cc: Andrew Morton , , , Zhaoyang Huang , Subject: Re: [PATCHv2] mm: skip CMA pages when they are not available References: <1681979577-11360-1-git-send-email-zhaoyang.huang@unisoc.com> Date: Fri, 21 Apr 2023 14:45:53 +0800 In-Reply-To: <1681979577-11360-1-git-send-email-zhaoyang.huang@unisoc.com> (zhaoyang huang's message of "Thu, 20 Apr 2023 16:32:57 +0800") Message-ID: <87v8hpspge.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: D2CC61A000B X-Stat-Signature: b8ewyko85fis46ar16eykmga9k1hfbwu X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682059625-667474 X-HE-Meta: U2FsdGVkX1+MOqVSSV2Wk776umvF7jLN8yXa1/5+zmp0OEOmF8v5s/q5mUd+DxpsPKgIJPLPPSxZ10pApdX8VOCZE6o/o1aUYV64OZO1O1TqiL+tOsN7ajoC6PfRRqcXiwGfdWFjs/NOZKkX9weMl0l+ZVyLRL36a0Ao1CjbDzyYPozcq9VdHHCFgCehMpbRSY+HAihMuB1FGRHYEjKjmC3lRMqNMQtlGv9vYnTZ0QZwnGblDPk+d4SMHHjJ6N6GgacyIFDHbbfyDcTb9QGNxRxpm34iXaCfg8/wJonEfOmCgW9eLPp7MFop4wBXnrq+X3wXElJI6AkPHjWxY5JZn3mnLK3EcReo7dXkAQE4N01kL+CHt9+feixVpShC4U9hQ/+4/w0jObquplA3THmGbqdlEKTG+VBoeNXrJMMJggaTFPD+4/VBLfM/v+qMK4Hh+IBKU4+jwSEI1djBk5qer2awdDKZjU17IYZkJUajrBlvbANK4DlZQQlwYuLnJ5c/1DGvwEHlTXgWnJn/DIetdcrur/w7txj4eUpEra+drE6DlTjwVi1nQ7jTUgdwi0tnOmcVkcRMLcYhUimpxr5ep8ifCD4MO+1EAzcJZhAhh67Zb4YJRZJdeIkAmyfTBkP5vR6jdvNdTj13SLlTD5C17elEL+jCUfNJ7Z4spoGM1ciEg2Vvp0Os7a9YB4BRAGndaSHNx4IPYxWkT5BEwyv1yQa/kArNPR+kpKDOWbckNjOIFW8PRdQXmu8+Oyt63CDCsaO2FPSw0o6VdkLwuGNc3iSFvHA0o9Lx9foWuHkHZz0GwRdACgOWgE9MCDl3w89C0lc3l8MzxXZQUeTJXRNqcl0a7T6pJ1xx/Jys5bwBNczO89TY2jMNLjlQMdFmil22FDYKASQKZSQgqGsDLRBl2XsXPM+GP0jRK3/nur6oSREmiCT/eUvRz06KWKAnQuD5UPqm1eep/733yxoD1xE C8XR7Bsr vpGlBE+xIBdhfOw/zDZmGzLdgZ1EcpztCbZaDKLOqYMRTEdeaSbZkz2vN8vGVGkZKph79yLXGYG4qzYXRdn+ZUW0QktHXWb1MkAsN/icDAVJkzEyXlAGmZ0uKSaw46qT/mJtqRRK/ZtLpOUUO8pK+5AlzDP2kGD755pV+uikrD9pq8qXkn5p/5Z3Lq1l1D8yHQr7Uo85GbvsXPizlrjAD3+0wVa+NWFP/TAhj2oiIe0Mfy9es+exjultm/+foCQFq7xvfzajyJQPuDv0= 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: "zhaoyang.huang" writes: > From: Zhaoyang Huang > > This patch fixes unproductive reclaiming of CMA pages by skipping them when they > are not available for current context. It is arise from bellowing OOM issue, which > caused by large proportion of MIGRATE_CMA pages among free pages. There has been > commit(168676649) to fix it by trying CMA pages first instead of fallback in > rmqueue. I would like to propose another one from reclaiming perspective. > > 04166 < 4> [ 36.172486] [03-19 10:05:52.172] ActivityManager: page allocation failure: order:0, mode:0xc00(GFP_NOIO), nodemask=(null),cpuset=foreground,mems_allowed=0 > 0419C < 4> [ 36.189447] [03-19 10:05:52.189] DMA32: 0*4kB 447*8kB (C) 217*16kB (C) 124*32kB (C) 136*64kB (C) 70*128kB (C) 22*256kB (C) 3*512kB (C) 0*1024kB 0*2048kB 0*4096kB = 35848kB > 0419D < 4> [ 36.193125] [03-19 10:05:52.193] Normal: 231*4kB (UMEH) 49*8kB (MEH) 14*16kB (H) 13*32kB (H) 8*64kB (H) 2*128kB (H) 0*256kB 1*512kB (H) 0*1024kB 0*2048kB 0*4096kB = 3236kB > ...... > 041EA < 4> [ 36.234447] [03-19 10:05:52.234] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC) > 041EB < 4> [ 36.234455] [03-19 10:05:52.234] cache: ext4_io_end, object size: 64, buffer size: 64, default order: 0, min order: 0 > 041EC < 4> [ 36.234459] [03-19 10:05:52.234] node 0: slabs: 53,objs: 3392, free: 0 >From the above description, you are trying to resolve an issue that has been resolved already. If so, why do we need your patch? What is the issue it try to resolve in current upstream kernel? At the first glance, I don't think your patch doesn't make sense. But you really need to show the value of the patch. Best Regards, Huang, Ying > Signed-off-by: Zhaoyang Huang > --- > v2: update commit message and fix build error when CONFIG_CMA is not set > --- > --- > mm/vmscan.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index bd6637f..19fb445 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -2225,10 +2225,16 @@ static unsigned long isolate_lru_folios(unsigned long nr_to_scan, > unsigned long nr_skipped[MAX_NR_ZONES] = { 0, }; > unsigned long skipped = 0; > unsigned long scan, total_scan, nr_pages; > + bool cma_cap = true; > + struct page *page; > LIST_HEAD(folios_skipped); > > total_scan = 0; > scan = 0; > + if ((IS_ENABLED(CONFIG_CMA)) && !current_is_kswapd() > + && (gfp_migratetype(sc->gfp_mask) != MIGRATE_MOVABLE)) > + cma_cap = false; > + > while (scan < nr_to_scan && !list_empty(src)) { > struct list_head *move_to = src; > struct folio *folio; > @@ -2239,12 +2245,17 @@ static unsigned long isolate_lru_folios(unsigned long nr_to_scan, > nr_pages = folio_nr_pages(folio); > total_scan += nr_pages; > > - if (folio_zonenum(folio) > sc->reclaim_idx) { > + page = &folio->page; > + > + if ((folio_zonenum(folio) > sc->reclaim_idx) > +#ifdef CONFIG_CMA > + || (get_pageblock_migratetype(page) == MIGRATE_CMA && !cma_cap) > +#endif > + ) { > nr_skipped[folio_zonenum(folio)] += nr_pages; > move_to = &folios_skipped; > goto move; > } > - > /* > * Do not count skipped folios because that makes the function > * return with no isolated folios if the LRU mostly contains