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 C733DC77B75 for ; Fri, 19 May 2023 21:58:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D289E900004; Fri, 19 May 2023 17:58:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CD874900003; Fri, 19 May 2023 17:58:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B5210900004; Fri, 19 May 2023 17:58:44 -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 A0306900003 for ; Fri, 19 May 2023 17:58:44 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 73ECEA0B78 for ; Fri, 19 May 2023 21:58:44 +0000 (UTC) X-FDA: 80808369768.11.9761836 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id B4226120013 for ; Fri, 19 May 2023 21:58:42 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="ONcgq/h8"; dmarc=none; spf=pass (imf29.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684533522; 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=YpK2YRT3EMxVLiXJ7czzUx9c5Pc2fs7abxzIIvzOV4g=; b=CSJVdG7URX3F2iuYQ5cQQb0/JpMtGQoEk5jTOGQTUJkUAwnsLr/1PLWeRNKQ5QuYi0toy0 yp0N1niVKeeng2aoVRdcvkyeTxvinG5N1L5f8OrB3jJi2E91K758kInWlK3rf/lIsNPGJy 12GBqfWB9/ItwPyEizPGBAW41EQ83hk= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="ONcgq/h8"; dmarc=none; spf=pass (imf29.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684533522; a=rsa-sha256; cv=none; b=bqC5eYdsHDffIteNnqPMGjr2eT6yxtfk9jQZBmu1DRpDS9GlKJqyWs3DX1Z2VGy/DHWBA+ SAAGbfw+jTLlgDVfmQjQJSpiPJ3vVdEwFEd2AD8yymBcbOD75eNs2BNwNRjzfX9IufAHnR N241FjSy06TeCUiOuDWox9R5MFTuFVI= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9C5C565B8C; Fri, 19 May 2023 21:58:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF268C433A1; Fri, 19 May 2023 21:58:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1684533521; bh=oCbDdhFhZLLpaNqY9AE/8ZrSUZ7fcnTJYFt7L3KQehA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=ONcgq/h8P77NYbRZPX9lTflhIXuz5oO+GZWxEjnRdciUA+nXLKCANdGj1b/Lz0jdN wQ2FiAftiC2mj+3hP5IZ5YEwbCK1N4UjL5FalkEICZkWgd0kKXYNv3USAMrFQYxNjC /g4RqdryR9EfNHuob/KbbE6RxZc1kXHowLCe1ntA= Date: Fri, 19 May 2023 14:58:39 -0700 From: Andrew Morton To: Zhaoyang Huang Cc: "zhaoyang.huang" , Matthew Wilcox , Minchan Kim , Joonsoo Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, ke.wang@unisoc.com Subject: Re: [Resend PATCHv2] mm: skip CMA pages when they are not available Message-Id: <20230519145839.3b5193e6accf3b13fd619a07@linux-foundation.org> In-Reply-To: References: <1684143495-12872-1-git-send-email-zhaoyang.huang@unisoc.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B4226120013 X-Stat-Signature: n7pgo4uw1dqiq5agj3zbnrgnso79eqhx X-Rspam-User: X-HE-Tag: 1684533522-96681 X-HE-Meta: U2FsdGVkX1/APIy3afw0W6lxH8msgWE2JODE6Kbf8z8Z2W8ejrasAHlnhQI5FBgkKY2jwVx7xZv8VLr05t/Qp35jbo3qqY9JdaBvqXiWA3eh3bYXePZd0XsWZ5HIX68Slwv6VxUpsMaPTSvSZFca3FO8RFR6DiI8ix5w9SCazUAyUEp2xIsq7sVNAU2p+WA0enTsjOOm0cHV2rAa5U0+rC6IekF/j0C1wJJ6FocNJEatjnxRLTpsP+LBzIzPKfiaQVLtsLCyo7I+rhB4FNahglNjO/L9+lWulm/tBZ/mvNkpP1C8sNp/rpMuTe7FhByezIYAyMOY0Avw8/4wPXxB7R9AgaHt1HkI7any/QwI+XQbswINthKlbvZpCQ6wQMVl7gxgBSGIbjTTu4aREMNiGPizFWXvULHA9VfuXzK9ViFVqpQNOg30Q7IhL0aKy/0ZFCOnU6N4A6zUSQpPy765mcMRzdCCTIrGX7jzj79fU1kpRRdBWFchvQVdVwAjLTkuCi4YkpUEV8x84C4/CNtpp81RyPRQVnp2cwEmRKePflekIDr2JgUCYpZh2Uhy1MyVSCFF7ONn044eSXWaXHDaH6d7y4RfSjAIEpCaTVNY7it2X8zDbz3JL96ZpnIyEppecOwEaYAAFZRIf+QuwmkaVRAbzdMoaZ07EtA4ksFgHldcRoK+ayM41ii/ZFF4ckGLhoUrH1z/X0+HVdiLzNbvNggJp4wpn4jnIWdKdRueb9c9CUR2KHB6y6LeghPWsnyW9uzv1O7FyRLIf0mwVzdqE1x+IuL3fUUsPVoF/snZgKaQ06U1tpYwGrnkPa51epyFvQo1H+/O3UHXd/ATVNoeqwEC4NuONAFWHkYvPQeTN4CFc5CJt0zKNnnItV2m5p6TLgz+03U0XwL3mdQk/Mk7iMTjLIUTYKBJqaOSyO9pTolRxwGJWhrJ9p61Ra12s6EmL3r70NeZtN9oqjlUFnP lfWxK+5o 7gs4UzlVE3hEC7RaxDCuM6uiis7N0nW0UEY/PWTe7sma2StFx0Nc6s/tnBbLyCzoGonVQalcuBn1aC8wJgWDdVf2FOG3E7M+n2AEjaO3guzWQwbP/sjrqDWP+eMiYWZgAvA6LsUGqG0P+Avw2d3qbfF3vh5KlnpmEOlNH+9TKgILCMg2t9kccWYliLqb5GqRwKRPvLQOfUiuHXsj3aA7MM1F1MFQGY9QHxSiybslZ2bYhORxeczCpjA5yTjX/hm6zknzd3OZ7TJhKfnWXJdrdVrWVUNqQfdgnLQtrv1kujRALzmyLjNaWuC5l2tH/h8kXrCQbjHtG141LiIr+lhRJ8X3HOnp+e86V1L2c 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, 19 May 2023 16:41:41 +0800 Zhaoyang Huang wrote: > any comments? Have any of the regular CMA developers commented on a version of this? I have a couple of little complaints: > 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; > + A code comment above this alteration would be good. Tell the reader why we're doing this. > 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; > } That's pretty ugly. Can we use IS_ENABLED(CONFIG_CMA) here to avoid the ifdef?