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 6FE4BC001B0 for ; Tue, 15 Aug 2023 17:45:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D1DCE940021; Tue, 15 Aug 2023 13:45:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CCEB68D0001; Tue, 15 Aug 2023 13:45:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9590940021; Tue, 15 Aug 2023 13:45:34 -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 A7AC68D0001 for ; Tue, 15 Aug 2023 13:45:34 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4C1D380E11 for ; Tue, 15 Aug 2023 17:45:34 +0000 (UTC) X-FDA: 81127066188.22.915119C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf04.hostedemail.com (Postfix) with ESMTP id 839F34001D for ; Tue, 15 Aug 2023 17:45:31 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nJm+L8gq; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692121531; a=rsa-sha256; cv=none; b=1sef/8ozW36D2rJefA3edhhqj5Iuvdz+S7kmrevlURPgXbyGxVkIG8UaklEs8ll0S+wBKp 4NWCbjh9/MKy3fQJV4upGpIbf90vtgGoUWmSdDtvZ9vZjba5s1WRNNIAViFGTtptjxT0FH lvu0hCDD52QhXv6vMLn3AT0hpuCTAHI= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nJm+L8gq; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692121531; 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=LZbS0Y806reqKeX2keRFupt8aWf/2jAIGUJyzQ1h/ZA=; b=adyMa1WLIdO+7crlbMeLQQcIpOR+uYdlAnrYAEei8bCdE3ttMwGBt2tjnEK6qbieR40wzd yGZsxmraQ36yM9C/MtgBIKhT8OPnMjsVBxpPjSseu+Jj0oqkjAOwDgHHLmUOZhQS8OA+fq Ddw4SUURZlYepQrC2iz/HWGzwDpmRXo= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6986462B77; Tue, 15 Aug 2023 17:45:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85167C433C8; Tue, 15 Aug 2023 17:45:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692121529; bh=cQQOsmSmkcdwqO0nuWMTDvqAksn3FxogI+D4roU8Hxc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nJm+L8gqxK/LkIh7FMi4ywq79rfw3MsfU3ClEx/uzthZ/xmYUKmsEYazIVOrRi6AN zdOrhpS8V8+8tpp/kdx9Uz/REwnJm31tJM7/tHvKK9CL9BgEum1JfM73w0riSwWySO XdBglHwmgUeOxuXuMCf7IrcTyxu+5eUludkW6GOGEqYenklJvPaerjqtMdU/h2WFOX 1k6/MmIUCIxtBux/IAIeSc/NO0Epzk+pSAyRDxhWo25min6uFnsRvlsiJ0CLrlZUor LnbNXPgoClUbda0sIoeuWTPSnqevBiULAejL0zBLaqQaQdKjNPc6pAhGHDv6Q47lFA j15W9MbSLQN/g== Date: Tue, 15 Aug 2023 10:45:28 -0700 From: Chris Li To: Kemeng Shi Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, mgorman@techsingularity.net, david@redhat.com, willy@infradead.org Subject: Re: [PATCH 1/2] mm/page_alloc: remove track of active PCP lists range in bulk free Message-ID: References: <20230809100754.3094517-1-shikemeng@huaweicloud.com> <20230809100754.3094517-2-shikemeng@huaweicloud.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230809100754.3094517-2-shikemeng@huaweicloud.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 839F34001D X-Stat-Signature: iuup1q9ig9xneg8q13bedaz6f9rtwqin X-HE-Tag: 1692121531-149444 X-HE-Meta: U2FsdGVkX1807b4JSiXgQRXrE2SB/VQ0Bo6OfVTPvhQVHl99XJc+LbdIrsQn/zaHVpWuYEAQ5HQMhmm0Lei+CTJULmZVpFZvZiMPYq6BbNV1rs/eGsFWsHrHYP/WhK1sM884eRfWOz8A+05oRVF2P44J4823Dm6gR3fJpsEgMqXu4brm+iFQ57W5Va9LQ5EunjZiLjtiopL4/p8BsQxzrAtnngMCxlVPoWnHGnR5xabiTHQ42J0xKhFpj5qWLsxuRk8AxE6AvzJ2x4BmmxdiF8bs/MABT3U1NUYEPSBv+mb2Q04sUrfIO3YSytVq5f8KH7/HZIOLwhKoqB2ATU/PAAog2oPII1CGFsh11B8dqZxplOGJSq1I8jDWFb8oN4h6z0ju4BadK44vxEk1xQ+X1Mvv5MmsS2fApmI5MzCin1lqchdKOcxYhSVBQoF/Mz1SstjCZ9kbbLRCS985d7etZHTgYtVvkbAzodK4QGihDX2+YHBsJ4pK4pCL+fhPYJx2EaLCs45KO+CqJcu3Z0YyCPSS6Q0E7paNtXf/3Pt6hLwbooDXbmtDUvFSc2ug43eROY260QQUqtCWCvoBr91MBNuiJ6/hMl2o5oVTAUbwayQD3/VOXrevV7rw9OxpfzccblxqzYNxp5pu8xkXUsONlEmA2MhNtBAdQeZNcPrG94fJwYqvY6px6dHJg2NqpFTr96bOX/8VXNu7EuFWgS7P5BQetuD7qPZOEVsvZ5OYhnzsqtCo218RW08OkoKjD5HC7vuwcIDD10QUS2BbxL3TUrJt3Z9l+nIMbJC27TEZVkaKhaTLUS/UUsKYLz3asVfPrJ4POCvwt/GgzuU/t6MM9MRCxJtRqn4NN3dSZ5HXgxCHDHwD5taGOJI5+OtdHgTo2o2nEmP7QZo8W+k//UqNJvPj/scK7koYz3nD8t/HaVbXilp5r879426gUo7/9ke0Fe3lp0HWUcL8TYHCywI oII9cn96 ZoH/I8os9x9keOAIi0ACJ8o3Of3xh5KnxBfV1c0mfcBwaEVeguGg8gY+oh2rTbcmipzzGI5VckKuX17KDAgKkNWPnr4+gq8U2OehNxO1DNLbJTZyaLh1M4T0SHSAmYMO3ggp2Cw++WyKSLVwA1m2HhonLUuL8vfn1J0RTXf2MFTSGJR6Fd3hsm0bwPxnscVLGZ/VtH0hGmX5RirY0p44N7IwwCQ4BCl1ESZHWV2IRdK8pQnLGkhsZV6SQRi0ROTuNUfsqiPUK5wNGAMvRZvFzDHep1yN010j1u6VfH4hg+1G2BOTRAeZbFgTxaxQ4iSAzgKj5nNycY9OM/Terp8nb2BQyJHVcBcq8HROb 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: Hi Kemeng, Can you confirm this patch has no intended functional change? I have a patch sitting in my tree for a while related to this count vs pcp->count. The BPF function hook can potentially change pcp->count and make count out of sync with pcp->count which causes a dead loop. Maybe I can send my out alone side with yours for discussion? I don't mind my patch combined with yours. Your change looks fine to me. There is more can be done on the clean up. Chris On Wed, Aug 09, 2023 at 06:07:53PM +0800, Kemeng Shi wrote: > After commit fd56eef258a17 ("mm/page_alloc: simplify how many pages are > selected per pcp list during bulk free"), we will drain all pages in > selected pcp list. And we ensured passed count is < pcp->count. Then, > the search will finish before wrap-around and track of active PCP lists > range intended for wrap-around case is no longer needed. > > Signed-off-by: Kemeng Shi > --- > mm/page_alloc.c | 15 +++------------ > 1 file changed, 3 insertions(+), 12 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 96b7c1a7d1f2..1ddcb2707d05 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1207,8 +1207,6 @@ static void free_pcppages_bulk(struct zone *zone, int count, > int pindex) > { > unsigned long flags; > - int min_pindex = 0; > - int max_pindex = NR_PCP_LISTS - 1; > unsigned int order; > bool isolated_pageblocks; > struct page *page; > @@ -1231,17 +1229,10 @@ static void free_pcppages_bulk(struct zone *zone, int count, > > /* Remove pages from lists in a round-robin fashion. */ > do { > - if (++pindex > max_pindex) > - pindex = min_pindex; > + if (++pindex > NR_PCP_LISTS - 1) > + pindex = 0; > list = &pcp->lists[pindex]; > - if (!list_empty(list)) > - break; > - > - if (pindex == max_pindex) > - max_pindex--; > - if (pindex == min_pindex) > - min_pindex++; > - } while (1); > + } while (list_empty(list)); > > order = pindex_to_order(pindex); > nr_pages = 1 << order; > -- > 2.30.0 >