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 51355C3600C for ; Thu, 3 Apr 2025 14:13:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A427280005; Thu, 3 Apr 2025 10:13:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 453AB280001; Thu, 3 Apr 2025 10:13:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 31BDD280005; Thu, 3 Apr 2025 10:13:25 -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 122A6280001 for ; Thu, 3 Apr 2025 10:13:25 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3CAE91209B8 for ; Thu, 3 Apr 2025 14:13:26 +0000 (UTC) X-FDA: 83292925212.08.346DCC6 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf15.hostedemail.com (Postfix) with ESMTP id 99536A0008 for ; Thu, 3 Apr 2025 14:13:24 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u+p6CC+g; spf=pass (imf15.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743689604; 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=CnhMO1b6hRRnB93Fdjcwbr51m6r8ByhYTVJ6sKtTuAc=; b=25YKzEDjEy+kJZjcktxVdE3kAIH+SwJ+v6YZHOXGSTsGiA4Wd3z661H7GzSYv70hf/l6R/ /+52PlMzDGFU4INQ0IXWqmpi6A9p2M1JbKyCM7bjVWgjv5z5RSK/2n282XMPHKuK6cxmNb rHKB/BwfV8sQNlaTB3of6SOLHllVJsA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u+p6CC+g; spf=pass (imf15.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743689604; a=rsa-sha256; cv=none; b=NskJMpVIPBn27U+3YCbXcQDWKcOA8arG2hyWNqes/XHNA/P07Rnute5M4S6mqc4f8y26Wu ke17ex2/Zuw3HwmaCsNPUygHCkfUpUFfR4oPDkhNDKDi5t9cZ0HaIgBm2RhSz1SX8qMxd8 7OojnYL8r7JeC6igkcH8v4n4EKYf3Kg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 8E8C05C553E; Thu, 3 Apr 2025 14:11:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 035D5C4CEE3; Thu, 3 Apr 2025 14:13:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743689603; bh=/vMOGYJHU3N99XcnouH6J7FcQMuSYe+/VfJBY8ovNzM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=u+p6CC+gU0sA+GjrzK/KJv1pZ28LBj4hRjALrTyZbw16A9CGhfbMug7igY/rxzRQV /UxPjojecDRtbWVa9Efjv/g53zKGzhNpDUKjjGnQASZSdl7kOxE8igx9mw2rZF9xGn qOC3O+xLy7oMbLEd3bipPxt20w0LqK1DDp+tYASP14qVXo5x/dWpWB5Z+bObiOn5fJ fhiDEWaGO7x88pGpdoPwWpg6g2Ayo9E+Ul12jTcJlwZ+wKu18rNwiZqAegeBqgbejr OHS+kVO31Da0hKq1Q5oHfiw3AB6ttxEo+CXVCUvqa6mJyNYZpEhPpu19QyH+CxDtTl BYxMrp7QrYYXw== Date: Thu, 3 Apr 2025 17:13:15 +0300 From: Mike Rapoport To: David Woodhouse Cc: Andrew Morton , "Sauerwein, David" , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [RFC PATCH 3/3] mm: Implement for_each_valid_pfn() for CONFIG_SPARSEMEM Message-ID: References: <20250402201841.3245371-1-dwmw2@infradead.org> <20250402201841.3245371-3-dwmw2@infradead.org> <380d9bff359150f67ca6e0468f99ee746c1abdea.camel@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <380d9bff359150f67ca6e0468f99ee746c1abdea.camel@infradead.org> X-Rspamd-Queue-Id: 99536A0008 X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: jpq81bnqt939q11gwajnb85q3kyfdfc3 X-HE-Tag: 1743689604-102762 X-HE-Meta: U2FsdGVkX18tDq1Q3le4CEFjMyR8i6RHSBTaXAs3XA+JwsubEL+koFWssWTgieF4cWH3Hwc8ZhEJ54PfVP+euQduCJ+YM8a6X2iI3CopaKn6udkk3hK6JUi7I3zdiJ4eZOO5me3g0W17swFmLMfJoLrvAmvJJZdmFyP1pcgBOPxslNBCO5kRkA/j3ErMApfR3GP64chX0gI8392ezRVHFMUDyzmuxLPmsCU7kgVSsnzIvKwD9fFEXhZKeXUber+XvBuB8R6Woad8rXaUSlJhkATNFMcDkDeTkNOg5LggHp9T19s3gc0maiP2Pz0hg7vl1S47Zu20Qw0iQ7raO22Cpl/pA6Oxsr3WRrWtV5w895PzYWl4Si8If/DcG1juubIBgSGMQKJ4LbyNkcs4zsrv46rRvKqlFIHxwi/EvOFXqjnGvH+zMFPWYHuptSe+ofIkZStgKj4SckCX1cfgqfaIqsO/z2uqPOB8i2q8LVglVTDSCN1rp4dB2YqxKmGjKQxdxx35CWKfn3hISRpg0kbFkeOv5SyBlg8Nr3cblIVeleNdsuavh0FbRDPfbL9DfHaeR3AGusm1YD8KjJ9gIjXd6oIi/K7NYQB8RVn3SyrIBoYtCusa571DdnvyMD6TIRsTaYLqoQp2AbmKJKJ2IwrWqFOUmcY4Eghtm2VpiR6MjIYVFC70OI6Aqth/mMpe7Zhf3RTqa9dsrYfgy73iFOeW+S7TLsiLJC4wFrQ719jekcZhkrwPdUL4OCmFtyCyTOTm0LJknNinbjVUel/fITKqU1rei6k8SVvbnHBoHP+PkNMMx/cmDeiynb2NPNb7YbYYqYOw07uKD7ita3uyUTXFf05d1PXPk05J2XLN71yWAFLijyPHh869z9cMZmgPnutbZcdOmY76Aa6sQeOIf79VU+UJiWMrBnv4YDxp4KgY6LdZEtbweHytgxhw7cJrZmPJdbnXgFIr/xJEvAy3AMe ugI31vQt Qf+UWhBkrNehf2O5S3UNlvIRnUsf3Q/tNg+cOJhWwOn1Pxsbk5BKfTjTqBODsR7fvhwrC+XXs9Lp0cjHm39owgkOyRov0eEDWY+K9KHCEz+e7sk5LXsOrMeq28CZ0I1wFB6k21oZSlzP6pQeGWG1u0j+fAAPTGCvvDXQKrr0UEUmw7ttPI8RhZW8Wh9WdYi0F7gSORcp5/jHbU0iSjsr2ZTfn4mKHFOv/PVYARTDdY08pseF3vTWcEiRvj8o/AKlDRJQHDt3MpFGgz78wR7feRpQfEIq4yff1CQ75isvcsQknypGuMzeK+M56qA== 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: List-Subscribe: List-Unsubscribe: On Thu, Apr 03, 2025 at 08:15:41AM +0100, David Woodhouse wrote: > On Thu, 2025-04-03 at 08:07 +0100, David Woodhouse wrote: > > > > I'll see if I can make it neater. I may drop the 'ret' variable > > completely and just turn the match clause into unlock-and-return-true. > > I *like* having a single unlock site. But I think I like simpler loop > > code more than that. > > That's better (IMO). > > And I note that pfn_valid() already doesn't follow the modern fetish > for having only one unlock site even when it makes the surrounding code > more complex to do so. > > static inline bool first_valid_pfn(unsigned long *p_pfn) > { > unsigned long pfn = *p_pfn; > unsigned long nr = pfn_to_section_nr(pfn); > struct mem_section *ms; > > rcu_read_lock_sched(); > > while (nr <= __highest_present_section_nr) { > ms = __pfn_to_section(pfn); Maybe move the declaration here: struct mem_section *ms = __pfn_to_section(pfn); > > if (valid_section(ms) && > (early_section(ms) || pfn_section_first_valid(ms, &pfn))) { > *p_pfn = pfn; > rcu_read_unlock_sched(); > return true; > } > > /* Nothing left in this section? Skip to next section */ > nr++; > pfn = section_nr_to_pfn(nr); > } > > rcu_read_unlock_sched(); > > return false; > } -- Sincerely yours, Mike.