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 7F081C77B7E for ; Fri, 26 May 2023 02:30:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C25F66B0074; Thu, 25 May 2023 22:30:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD624900004; Thu, 25 May 2023 22:30:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A9DF7900002; Thu, 25 May 2023 22:30:48 -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 9CAEC6B0074 for ; Thu, 25 May 2023 22:30:48 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 63AE41C7C73 for ; Fri, 26 May 2023 02:30:48 +0000 (UTC) X-FDA: 80830828176.25.E056972 Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by imf04.hostedemail.com (Postfix) with ESMTP id 7910640005 for ; Fri, 26 May 2023 02:30:46 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=EZV208ab; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.49 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685068246; a=rsa-sha256; cv=none; b=KQUq4rKrOr2uLPbm9g5byda/WuWFUcyMKQYoX+FlR+LVU7JQ5Z5NygZraOaj5U1be6hfme Hp9Ki7HSEbyVbLCyOtT00gi4KWcFS1WST0JiuUXH0tlwcy7sO90CScAFRkKUgjJ4Gp+8A0 uW445989z8PV/iHfLZrjnaremP1RY4k= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=EZV208ab; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.49 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685068246; 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=nQLcHKq7/SFjER0eIjTkSMaREA3ODO65yBluaNQD8EA=; b=7eYWpXW8xM+W3LbH2WH4BMvKY5x+xq9cqf8KZ+Dw1onb/sOvoedJ1g4DrjbucqpXlxnpgJ UBXwrNmV/bTI+CgWzlysxZnO2q7US/pZFiosWdrtWqIBBCfiq9KN+utZpP2+Z+egeA72ol ibdyd2HlbgWOrynEiMeaMowCZVao2c4= Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-4f3b9c88af8so177209e87.2 for ; Thu, 25 May 2023 19:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685068245; x=1687660245; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=nQLcHKq7/SFjER0eIjTkSMaREA3ODO65yBluaNQD8EA=; b=EZV208abTNd9TSPooerBLlxyXcfd+Opf8CGUyoSkfhfuFTEcGdyaRdfMrhYo2K2GvD x0T6VxwdOIYMlgY++qFCXSNFKdZO7xAlFqr3XxFGgdFy1hw3OxTf51cfsZsO51WaFX7B SvgShDqqKjd1jgsqMYoNv9hCdY3/P5z9ZlyRo5vRDh/TYkTkhhcdUTkUQfL0vMKMLzb0 SspAL3TvkimtnGUb+yzV7VIWICPDkyW0SRHTcOCTBY8j/AEa+pCs+i5jFPM77wl+QZAs /TdTiCcAbosXP0XA3b9+b6gQxnJUETETgDh1wKsI27u2ZtsXSd94Wdzt22juCv6dN7Qa nlHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685068245; x=1687660245; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nQLcHKq7/SFjER0eIjTkSMaREA3ODO65yBluaNQD8EA=; b=UTOPPptl1DDeU7Cml13bVucl0yYFsC9grogID+pHMB3DTwXAzUkOJfvR+jo3yrrxNj TUV0gGc8OmXQ5vZw1JpyxZ5vfUO2dczuRvKB3C2qc8PdLE45/F59csjiEsaYflN4+Jyy +5ty4/jdc2X7wrNuUUoobCjSjgPSpmPaUUqWuFC/XFcS7PFFFe7PRYCYYVPh44KA05uf 6mBWtVJJ/or11B4mLWaoGI2dGU5F1k8Bs1aWlYBVBflDqPM1pRkUN3ekdXfol/cuajIm SHmoOPp2snk73w0JYH4cptIKxKryJVC8GKKX2wZCyKmNsj+LYQNheazC780sHS8eYMdo oH1w== X-Gm-Message-State: AC+VfDw1jZ3/3MXQJRpQ601dWYzARTZIt94/AE0SGEiOlyz5N0l/EiKS HcAfNVKaXyC2zgckgWPtdo51eWMu5jvRTDzNsjk= X-Google-Smtp-Source: ACHHUZ5O0sUYgDgsHbvuem0g7AvqkZ0BzVDg9gOMDb4/e/UAj6vTL4IFg8jL5KNEont+m/BZSsfjl7ES7RNZ9JEuAqg= X-Received: by 2002:ac2:5ec7:0:b0:4f3:822e:f025 with SMTP id d7-20020ac25ec7000000b004f3822ef025mr41535lfq.49.1685068244415; Thu, 25 May 2023 19:30:44 -0700 (PDT) MIME-Version: 1.0 References: <1684737363-31554-1-git-send-email-zhaoyang.huang@unisoc.com> In-Reply-To: From: Zhaoyang Huang Date: Fri, 26 May 2023 10:30:20 +0800 Message-ID: Subject: Re: [PATCHv4] mm: skip CMA pages when they are not available To: Matthew Wilcox Cc: "zhaoyang.huang" , Andrew Morton , Minchan Kim , Joonsoo Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, ke.wang@unisoc.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 7910640005 X-Stat-Signature: pneragujwh6q1y68my7tuspzgsukamo9 X-HE-Tag: 1685068246-985450 X-HE-Meta: U2FsdGVkX19lt9XfViSoOc31zDhauxA9QDNs6kcn6VktJ2KQMPb9fwsDajnnyM0H5ZW3azFmF0VIGHl6lZ4LXfLgXbqze5IRoAktscRBf+UNO7l4/VyQMvQPFQZzuXEwTth2s7gxP19NbDOaCW0/Qet7dP67FTD7fFWS2GM4UaIOM0ciHjPF89qZ3Y/6+TmXUv9f+aSdpWfbg31XmFII0hJRCRqjr8njTJ1jjQie84fldrgO6zZgyV1pKI7Pdn+wyIe37vSrLpUYv3V9b/BV70SoXVAnYY5Hjbek+R9JnMNkZA6r4d05BYupXkds24CEqi2UTfYQ+FjVobNUjcUSYBqxztvNCBbMon9+B9t7e0zlj8Hg8ZniEYOc2+iLdccXsHyAGF9Tf6PsbS9GYfpxAODvbPMye4CLtzTrrun5YT+dQZVSyFmyqlBg1BwCJ3L57qIDMk+VJqZyUxakEYQGu8lxA2djKGE+t/2EWUNk+c50nfaC680VH/Cn6lzDW0/gLBwWSs53Uj8FdTtpMsFaK1oV7U6T/ZKt/ikCzsL6Sd5Y24r0Ef6XQMSFb8FyiziikobdxJoqLY/CahJsFodHCgwvc1D64fowyibbe9ITIw7a/qtYX5q7agnyfRivVyNjrm19L8sHylh8GtxeHUawxi3mwsbnvSUBLstQn4gsSpzjvmBQNtFH+xO8XCc5T3spon78OWgOHzqyPvs4QkVTwu7Qb1GaW0KExX8WHfpRgEsvUgxDut43NXtsv/nkIIeQeNYx9Sc1FraC0NiWwnJggyxt6B1gXlyyH1R9oNa33pePM3WfZxxvg4umnJKmAIcOMaoXdd9LlpEr85O6e9fSSmCaNwUMs5pUAiBxE+kwznxQ0SVcQ40xo5mxKGe/91XO19pZzG5f8sEN3Y+4n6R+/0nWKlHGBmD3qM1RY4Y1SNsvb3jCB8J5cZ/01HRkO00fgnmHvt5p5Vp28U/jcV7 dFf1gkKP qBOmgRo8vlXCelTRq+ulAgm8XrxCa4KiAXmuDgfYoyoWZMSFIOlspFFq0t9jvdi7552T+k9E+30+XH3/D1A8bF3PC7i9huYOlWbYk+5L88jChNywLZ0A0fO694fI9tgf+pKmTYmx7zIHMKsfhZZweLRciiZOtqPQRBypRrFjiHlZMrxzDzgIWoJFv64cdv4C6SkqRqzvXrQuX6j5KuPyqaHLFMZkHAJCW9ALT373Y37EauN0ZDf64SyyNCRgCPaFIMy6CfFG5Euz2LRLflyTZFy0eseAu95oQgGqFarck26/hVXN6SVjbSj2mgwy0LkGfO3awP7VuSIgJxdPwxu9UaLcuEbh44tTYygI7anZaHQdjCTvGD/mnpbzEZZYVShysllKu5wMjJc84l96V6CIVV/II+Eq7paecz8ZV 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: On Fri, May 26, 2023 at 4:03=E2=80=AFAM Matthew Wilcox wrote: > > On Mon, May 22, 2023 at 02:36:03PM +0800, zhaoyang.huang wrote: > > +#ifdef CONFIG_CMA > > +/* > > + * It is waste of effort to scan and reclaim CMA pages if it is not av= ailable > > + * for current allocation context > > + */ > > +static bool skip_cma(struct folio *folio, struct scan_control *sc) > > +{ > > + if (!current_is_kswapd() && > > + gfp_migratetype(sc->gfp_mask) !=3D MIGRATE_MOVABL= E && > > + get_pageblock_migratetype(&folio->page) =3D=3D MI= GRATE_CMA) > > + return true; > > + return false; > > +} > > +#else > > +static bool skip_cma(struct folio *folio, struct scan_control *sc) > > +{ > > + return false; > > +} > > +#endif > > + > > /* > > * Isolating page from the lruvec to fill in @dst list by nr_to_scan t= imes. > > * > > @@ -2239,7 +2259,8 @@ static unsigned long isolate_lru_folios(unsigned = long nr_to_scan, > > nr_pages =3D folio_nr_pages(folio); > > total_scan +=3D nr_pages; > > > > - if (folio_zonenum(folio) > sc->reclaim_idx) { > > + if (folio_zonenum(folio) > sc->reclaim_idx || > > + skip_cma(folio, sc)) { > > nr_skipped[folio_zonenum(folio)] +=3D nr_pages; > > move_to =3D &folios_skipped; > > goto move; > > I have no idea if what this patch is trying to accomplish is correct, > but I no longer object to how it is doing it. IMO, this is necessary as there could be such weird scenario, that is an GFP_KERNEL allocation might get 32 MIGRATE_CMA pages via direct_reclaim which lead to a low PSI_MEM/vmpressure value but return a NULL pointer