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 87FA7C6FD18 for ; Wed, 19 Apr 2023 07:36:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A31A8E0005; Wed, 19 Apr 2023 03:36:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 053D38E0001; Wed, 19 Apr 2023 03:36:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E604F8E0005; Wed, 19 Apr 2023 03:36:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D7AAE8E0001 for ; Wed, 19 Apr 2023 03:36:07 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B09FA1401CE for ; Wed, 19 Apr 2023 07:36:07 +0000 (UTC) X-FDA: 80697331974.04.B29A990 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by imf25.hostedemail.com (Postfix) with ESMTP id 8BEE4A0003 for ; Wed, 19 Apr 2023 07:36:05 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CF5SVUpN; spf=pass (imf25.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=1681889765; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=EhbETjdYH+syqHx7vYQXi3UAufnWZ1sJmQLFPWC4g4E=; b=daIRtp/H2UPZgbiqMTKIGlb4Exa88gvQtbAiMKaAM6pmAr3MCLjwa7+ynOQ5y9ki6CaDxQ o3YOsHThlL2IGpvi7KsoX0FPv5KK0+/c557hvO/MojF2TtQzXYGP1tWab4aB+icwEikut5 9v7YTbvy3CE1sW/TLD6JhyPmMN5Opmc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CF5SVUpN; spf=pass (imf25.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=1681889765; a=rsa-sha256; cv=none; b=dT21f1b78kB1zdbjNlsUgGyaGIE+0iFpg4PcaTJgPFLuMfVY38JmI0cb4xwg3gebBj6h6W QLX77bvRRpQB/wLjbf/oyL5njTnuyw1TppSrd9u9jSsn6pDk0R6PxeRvwNfgSJfrvhoKiq GiWA4It1pRatzeiHyPFaXy16QqdwLNo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681889765; x=1713425765; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version:content-transfer-encoding; bh=cosCSvixFG4nqLM0sYs5BtHEk7blKuZWq8ieOTeDVso=; b=CF5SVUpNgRcWlHQicZYpQ/x2G7gP+zEYs6+flVt53G3pAAQfMMyouJla QL+9C0BeYjl/doebSVleN0Ura5thvTsWskoK9iiaiuas7bv7ONJlfYmYF u/uWpyiC33u9LkLwPXl79u8sVo7IFfOgNJYq3WoPwnmk/sXls5j6O97yH BoMWQDXSAKdr52C/jXO+TQWt0vIm6yBuZwgivQ3YwvbV4+fmmslTmJy+V gKQ2FTIB1n+8ryTivm+is4uwBMHOut4VtEsyh528Xqq9dkQI+QcPP7Lsl 2ny9Sc8cQbARIeREweQOD4/ut57Z3zRuhDPCcKdOxx6icEbQHeKmc1zvl g==; X-IronPort-AV: E=McAfee;i="6600,9927,10684"; a="408287446" X-IronPort-AV: E=Sophos;i="5.99,208,1677571200"; d="scan'208";a="408287446" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2023 00:36:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10684"; a="937558800" X-IronPort-AV: E=Sophos;i="5.99,208,1677571200"; d="scan'208";a="937558800" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2023 00:36:00 -0700 From: "Huang, Ying" To: Zhaoyang Huang Cc: "zhaoyang.huang" , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, ke.wang@unisoc.com Subject: Re: [PATCH] mm: skip CMA pages when they are not available References: <1681882824-17532-1-git-send-email-zhaoyang.huang@unisoc.com> <87pm80tnhu.fsf@yhuang6-desk2.ccr.corp.intel.com> Date: Wed, 19 Apr 2023 15:34:55 +0800 In-Reply-To: (Zhaoyang Huang's message of "Wed, 19 Apr 2023 14:52:25 +0800") Message-ID: <87leiotjds.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=utf-8 Content-Transfer-Encoding: quoted-printable X-Stat-Signature: uk3jjxino8tauo1gi1krbrpz6piqtaku X-Rspam-User: X-Rspamd-Queue-Id: 8BEE4A0003 X-Rspamd-Server: rspam06 X-HE-Tag: 1681889765-665335 X-HE-Meta: U2FsdGVkX1/SGPEMBsbpSqA4I/InhBVDnrflq8ahRM2kVLbUNEaW5Uf57EyIjAhB/hIn/M2WMSNhhCfeYGkcVEYBUdkntRZomdGn3XB2lBQFKwd3NoFJaOeL6SprGBpxbfDHJomwKtRANVFf4rMGFwGlBWQVP4WTvxzCPLAQJQmzyUWAl7RBXQadPr5y0HXfC7D3pGCrw4xst9a1OOrmpAyvyS+IHfX6nWy9YZ75tX0Zf39814VQJESFSyN6k/ckKIHp3CNIw7T9hWaMf3x2PuO/Vid1h5vJWZXTVbi0h4kCJOBJrCUqxuVs7dahynh1B+DByEMMbXnERpnAZA7A11TR8Ry2lVvRxvZjZCDAaJ7EU8rtfC0v/mKAyzk88GFomAUkK7wn6JN8t3gVuD8tQFxBxKKqglAx3KcgdoaaMOh0QMGUC4S9zuqRqHvV3znxNLBc53pYNhxiOzYUDincbGPNGYqaODRdAD5hDKY2YvmhT1hBLG7zFKThRxUl0SRfvhdg+16q9uRn3ZpVrQZR0OOgzlAELe17QxkDbuwNH/Rl2TA9e/dUpGbqmGYQmtgd9n8r18v87IN4cP+1uR2Jg5pnWXxvLDz5x8y85uiTfCidXfJwwpPBXX6GTbxDC4PsFu/4HvOaYyT0X4WSJwiVJOmzTEuv2X6aiWla/udgpBb5DK/pdxv8wLZ4yBXuQrYVVsxAnkjlXQYHEeYDB2zeVRLIbbApNuN7W7x7Y+VXJoNZhqm+UXz3cJWq20XLvvIMOP20d1yERXSEsoj5mW3CsXyXRzOmEPV7UceXQX2lS782iiXJBEQE7IIUEFInz1eKInd/aYgB0V6eTAMmdTAY1chzz+FFXSig9GeT1eUCmEHqv/dOZ/Rqjp7+0LfCVhQTvOQUV4F7Y09g8FdO3z/q7srVZYSehJZmIKxM24m1XJFaOaVq78GEegbhY+sTIQ3I8f//uNx8I0N24LohTtJ aNGYKG1l crbg8ov9ZL+M1KyRNYgi6B9z4BrxDhXg+4T4cw+petb5EgXR4SsFNZiT2tDq8VknHgGI6fGMl9jsgPaSKQFU/Ys+kStbstO5aEixeyg+TGezjdQekws4h5lV4Z9bAx1d4Tyudv4qnfnhQW/fDLugGBj84Dz6uFDfa0osKI7iiRS/qanWc7dYsnK0lbLKsCUv/ImW5tr3MYhZ6hTPVSk/lRR+CV3qtnxzjexOiEK/qqoOM4+O9/aU044s5sWqKHHAnFkNAhG1eznC65NuT1JASVqi6OIzReJt7223iRWt9PS964nY= 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: > On Wed, Apr 19, 2023 at 2:07=E2=80=AFPM Huang, Ying wrote: >> >> "zhaoyang.huang" writes: >> >> > From: Zhaoyang Huang >> > >> > It is wasting of effort to reclaim CMA pages if they are not availabe >> > for current context during direct reclaim. Skip them when under corres= ponding >> > circumstance. >> >> Do you have any performance number for this change? > Sorry, No. This patch arised from bellowing OOM issue which is caused > by MIGRATE_CMA occupying almost 100 percent of zones free pages and > solved by "168676649 mm,page_alloc,cma: conditionally prefer cma > pageblocks for movable allocations". This could be a common scenario > for a zone that has a large proportion of CMA reserved page blocks > which need to be considered in both allocation and reclaiming > perspective. IIUC, your patch is inspired by the OOM issue and the commit 168676649? Anyway, I think it's better for you to describe the issues you want to address in the patch description, and show how your patch addresses it with some tests if possible. Performance number is just one way to show it. Best Regards, Huang, Ying > 04166 < 4> [ 36.172486] [03-19 10:05:52.172] ActivityManager: page > allocation failure: order:0, mode:0xc00(GFP_NOIO), > nodemask=3D(null),cpuset=3Dforeground,mems_allowed=3D0 > 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 =3D 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 =3D 3236kB > ...... > 041EA < 4> [ 36.234447] [03-19 10:05:52.234] SLUB: Unable to > allocate memory on node -1, gfp=3D0xa20(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 >> >> Best Regards, >> Huang, Ying >> >> > Signed-off-by: Zhaoyang Huang >> > --- >> > mm/vmscan.c | 11 ++++++++++- >> > 1 file changed, 10 insertions(+), 1 deletion(-) >> > >> > diff --git a/mm/vmscan.c b/mm/vmscan.c >> > index bd6637f..04424d9 100644 >> > --- a/mm/vmscan.c >> > +++ b/mm/vmscan.c >> > @@ -2225,10 +2225,16 @@ static unsigned long isolate_lru_folios(unsign= ed long nr_to_scan, >> > unsigned long nr_skipped[MAX_NR_ZONES] =3D { 0, }; >> > unsigned long skipped =3D 0; >> > unsigned long scan, total_scan, nr_pages; >> > + bool cma_cap =3D true; >> > + struct page *page; >> > LIST_HEAD(folios_skipped); >> > >> > total_scan =3D 0; >> > scan =3D 0; >> > + if ((IS_ENABLED(CONFIG_CMA)) && !current_is_kswapd() >> > + && (gfp_migratetype(sc->gfp_mask) !=3D MIGRATE_MOVABLE)) >> > + cma_cap =3D false; >> > + >> > while (scan < nr_to_scan && !list_empty(src)) { >> > struct list_head *move_to =3D src; >> > struct folio *folio; >> > @@ -2239,7 +2245,10 @@ static unsigned long isolate_lru_folios(unsigne= d long nr_to_scan, >> > nr_pages =3D folio_nr_pages(folio); >> > total_scan +=3D nr_pages; >> > >> > - if (folio_zonenum(folio) > sc->reclaim_idx) { >> > + page =3D &folio->page; >> > + >> > + if (folio_zonenum(folio) > sc->reclaim_idx || >> > + (get_pageblock_migratetype(page) =3D=3D MIGRATE_= CMA && !cma_cap)) { >> > nr_skipped[folio_zonenum(folio)] +=3D nr_pages; >> > move_to =3D &folios_skipped; >> > goto move;