From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-172.mta0.migadu.com (out-172.mta0.migadu.com [91.218.175.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 161C97260D for ; Thu, 25 Jun 2026 07:31:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782372681; cv=none; b=VHyeetBy/hCaguWq0SFCs47SBs7/0Bvy9HsPn80CsEDaOM4JVobcCKDPcRI+h88neMJUif8qk3KXtjBjjbbXXYKTPpGAmz03/7NFAH7b59LHMyqvouB5zJs01zfquIX+/mwFV0JYVG6uvlDVSXsdcZQkNdmZfXTm4hJ/WmcNJgw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782372681; c=relaxed/simple; bh=nUckNMXfqsn2C/34g8+/DBxMUuIejQRb+JJoYE53wt8=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Nz1xNHibEp7Q3dVSb/rkzq4Jt718VfWaRbrYVd4duThETXnQkF6V53vgTkJCdqVNrfxXvIYoHD5ISREQhAEIRjHJewn5fR47tGHEuuDK4TvS8PbtZCp43WCHAPlQrPqtqCJUrKy2YEcnZFB1khDT90dk8GxHpw1xMnOrrT/oxug= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=IL7eZQIC; arc=none smtp.client-ip=91.218.175.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="IL7eZQIC" Message-ID: <43a99a8b-3c27-40a1-bcc1-77112eee6c15@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1782372677; h=from:from: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; bh=fvh0Wb4xP4939Azsdl9T8pOph9hjui7X40GYWt+KMwA=; b=IL7eZQIC4VN/2Yt6PE5Nj8gq7ldVeLLqG5ZiNOhiYqhOaYuPwZDIt4aaqe+5EybhQPXPUh RG7cLPj5ScvRblDdrJPJAMDAEzA3d/AHUmIwuCTw3ja2UC9VQ/tpwzX116IPkKMxY+PM6y +IFwYgXafQr5QQwBLahECz/gYHkPgrA= Date: Thu, 25 Jun 2026 15:31:08 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH 1/6] mm/page_owner: extract skip_buddy_pages() helper to unify buddy page skipping To: "Vlastimil Babka (SUSE)" , Andrew Morton Cc: Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20260623065234.31866-1-ye.liu@linux.dev> <20260623065234.31866-2-ye.liu@linux.dev> <20260624172025.3087e8d574285bfa8d6772e3@linux-foundation.org> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Ye Liu In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT 在 2026/6/25 15:13, Vlastimil Babka (SUSE) 写道: > On 6/25/26 02:20, Andrew Morton wrote: >> On Tue, 23 Jun 2026 14:52:26 +0800 Ye Liu wrote: >> >>> Three places in page_owner.c duplicate the same pattern: check if a >>> page is PageBuddy, read its order via buddy_order_unsafe(), advance >>> the pfn past the buddy block if the order is valid, and continue. >>> >>> Consolidate them into a single inline helper skip_buddy_pages(). >>> The function returns true (skip) for any buddy page and advances >>> @pfn past the block when the order is valid; returns false if the >>> page is not a buddy page and should be processed normally. >>> >>> The old init_pages_in_zone() variant used "order > 0" as an extra >>> guard before advancing pfn, but the continue was unconditional and >>> (1UL << 0) - 1 == 0, so the behaviour is identical. The comment >>> about zone->lock is preserved in the helper's kernel-doc. >> >> All looks nice, thanks. > > I got a bunch of "added to mm-hotfixes-unstable branch" mails, but this > seems like cleanups and nothing urgent? Was that intended? > >> A [0/N] cover letter is nice to have. > > Seems like it exists, but wasn't delivered. Lore shows its message id, but > as missing. Apologies, I accidentally sent the cover letter only to my own address. I'll ensure it goes to the mailing list in future submissions. Thanks for pointing it out. Subject: [PATCH 0/6] mm/page_owner: misc cleanups Hi, This series collects a few cleanups for mm/page_owner.c that have been accumulated while reading through the file. There is no functional change -- the goal is to make the code easier to read and maintain. Patch 1 consolidates three identical PageBuddy skip blocks into a single skip_buddy_pages() helper, eliminating the duplication and keeping the lockless-read comment in one place. Patch 2 replaces the -1 magic number used for "never migrated" with a local MIGRATE_REASON_NONE define, making the intent explicit at every use site. Patch 3 hoists the CONFIG_MEMCG guard out of print_page_owner_memcg()'s body so that the real implementation and the empty stub are two clearly separate definitions, the common kernel idiom. Patch 4 adds a missing \n to the count_threshold debugfs attribute format string so that cat(1) output is properly terminated. Patch 5 moves free_ts_nsec from the allocation summary line to the free section in __dump_page_owner(), grouping it with free_pid and free_tgid where it logically belongs. This also makes the dump output consistent with print_page_owner(). Patch 6 drops the redundant page_owner_ prefix from file-scoped static symbols (stack_fops, threshold_fops, etc.). Since they cannot collide across translation units, the prefix carries no information. The series is based on v6.17-rc1 and has been compile-tested with and without CONFIG_MEMCG. Ye Liu (6): mm/page_owner: extract skip_buddy_pages() helper to unify buddy page skipping mm/page_owner: use MIGRATE_REASON_NONE instead of -1 for last_migrate_reason mm/page_owner: hoist CONFIG_MEMCG to function level for print_page_owner_memcg() mm/page_owner: add missing newline to count_threshold format string mm/page_owner: move free_ts_nsec output to free section in __dump_page_owner() mm/page_owner: drop redundant page_owner prefix from static symbols mm/page_owner.c | 121 +++++++++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 54 deletions(-) > >> AI review identified a few possible pre-existing issues, if you're >> interested: >> https://sashiko.dev/#/patchset/20260623065234.31866-2-ye.liu@linux.dev >> > -- Thanks, Ye Liu