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 54FE9C36010 for ; Mon, 7 Apr 2025 06:54:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77D7A6B0005; Mon, 7 Apr 2025 02:54:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72CE66B0007; Mon, 7 Apr 2025 02:54:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61BAE6B0008; Mon, 7 Apr 2025 02:54:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 45ED26B0005 for ; Mon, 7 Apr 2025 02:54:33 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1EAFB120E1E for ; Mon, 7 Apr 2025 06:54:35 +0000 (UTC) X-FDA: 83306334510.14.09FF028 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf24.hostedemail.com (Postfix) with ESMTP id 6C918180003 for ; Mon, 7 Apr 2025 06:54:33 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Xv+M4Mat; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744008873; 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=0uSIUrZVQrRmBreH7PPKu1LakavrQPpklGMNFMabHmw=; b=kiVT+gZ1ld4zbl9bx4JlPdIsK6+X5uigsAyKoeUOOcA3eWhDrsbssbrXeeXsxk1FIUx+NK U0J4/9YQOCusyIgD/IuLdSk6Kd78dLychHWfLRDGEK4ERMnBub7JP6U1AQENcmf3NUETn/ 7X0btYJoHaT81d4YGxuy+PZevlvdXCg= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Xv+M4Mat; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744008873; a=rsa-sha256; cv=none; b=Lfs48H8U9u5rlE8nJyfmk44Zkyo0XMCnDHlm1BpsYA23BLHITcYGOZOuDXRcp5df6zL1ff H4TnoltuPcg41rQcJ8MUPZp/Z546RZAFFIm3p6laceURXZKBjEApYOTXiwKM5hwWMv1qWo tZW+d1f2LnBkBaKeBieCexvIegFGAns= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 87DAE45176; Mon, 7 Apr 2025 06:54:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 309CFC4CEDD; Mon, 7 Apr 2025 06:54:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744008872; bh=LS5VAFFXIJwM/MSSY+05QkBo1gZOgTa9umjd9LQcztk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Xv+M4Mat5kHI/qdqSL1tzNzCIwVTRpJIvLTTz4+vqLSkmxjAYPJTnHqeeemP5FFEO /dZE3YfGdn97xTFXNNgBFNxwviUiSYPYZnlvaEQmGGH7DlrA5GdDfwKyftkELYmjFK RdqQl+fSbVkSlMb7CV/ZNZc8md4SZy7xEV7O5ncMWpfVIwUJPNZy1ybNdEDUWB0yyn tz3/y8runsfEn4FmEgStx5g1Gt+Gl66+pxmnMx/Y1+bsx7VFAoeB+F57ypOQN8jlKq D0KOIRo/zaQSAebLkPOEX1gShEGyMIoaPDF61zp9GF4QIvBzvuKboPdpSFoQK+S+w8 bnG2TkLxajhrw== Date: Mon, 7 Apr 2025 09:54:23 +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 v2 2/7] mm: Implement for_each_valid_pfn() for CONFIG_FLATMEM Message-ID: References: <20250404155959.3442111-1-dwmw2@infradead.org> <20250404155959.3442111-2-dwmw2@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250404155959.3442111-2-dwmw2@infradead.org> X-Rspamd-Server: rspam01 X-Stat-Signature: ejckfr7q1ba3kfrkgant16g7jhxrunpc X-Rspam-User: X-Rspamd-Queue-Id: 6C918180003 X-HE-Tag: 1744008873-71410 X-HE-Meta: U2FsdGVkX1+kxYooKL6KnofI8j0iwDRpL3MiUv8Hbxcvd4tzN6l6T3gZQ/onzCQu/26Tu2vTsPDd0xfNdaZNjLT2eY8bvz3Ua1eUXiOiptlixz008LIrbM8YrjOZ+O4RMrTGeQBmwlbEizZDpSBPHdJFvSuyKtDahMCA421Fe4xxfIKywKvnZEq0yGMTFbUfBNGTX+6nnfB9PrydMhUDfSkF9GcXeM8va3hk6nKNoDyLV8LmnInNmMiaXmhmTF4va1tvcjfSdGoslysR30ENH2yTCCdU1pc40zZfSAbog8pB7C6XFAhljYieFp0y2l7txQxVxgiNAu2hM4meZMiysf/rhZlN6WyNjZdGvmO/zi0uv900Z93QredzviyQranTUOGqJXajm6+udnWjVLgKBgnaV6O7llsTDYziHI7UpHDki93gXk2hruKSzgm/cuJl8Z7QdP3mz/h5IlDWSsmtYyFb3j6HfChCRNEQjcP4DG7lHwxbKqljzGx3xEfdxwORoQLdCBzLni88q4zCpm4CnepAykfvyKdsuPSM+4NWcYy3UcWE/+MGqF7BuTCS3VkchiM2XEEbCyercc6lKr/D6ZLQ1OaxCgd0ETFVa6m/RJSAtp3bHGS+4aBd9A6wUvxLlFlv3VSZF4a+z65TqoHb0Pp38TZanLbChfMrU5rE0mMOhdbAelViVArpdNhDiGhEcE7pg+tY+1doYIFxMrm93fYN3mWQGxoU3/ykfi6LOlAFUYs47trsF9oT1cjeSDtX21hpouKvcB5PgtEJa8nbk/YziEAMfL77pZlIXKVsosjkBBw77Dp94wDgbd3XigKrkalLmQLJy0v0aDQHEXLpMsAqLTaRScV8dyf4buljqe24OksMqsQKUi+UwcBKherlhKZRG5La8MEOIshcDC3P4A5PoSylAmLxTZlgmFchXm0ZM4OHtYiJCEYz7oL8rYobGtYp1OKX9wzJ68x/52/ OWV/9mdB NpsDRfvomixG18tKEjtAc9mrTIQox1YCJCd/FVzUZGL1yWVgxCFLC+kbNsVe2L2XpSvQNbQwU2Dx1VrWVb/6en0i9RJc1NE4EEe7FX83ccwTTlebvVBQ0S5kjuerzNBNkdzjzC7qDZUV8QwVCpeF/h220S6d37EiqCvvnKnXgyZJfaPwd9qRldm51AElNynbuIDR0hhp0ir5G9q+y8a8LOWpUJvjzv6CS+j0x2bu6J2ODRyIAAuRIgpeqK+JdgTUJiMfMAgFgb58ReR2gFMCkQYQLQD9D0faKMssDEgzESh2Y2CVVJVe4+M6shC5hYCxXJcemIS7XBzikTLZ6LnDMR+VUlcRzftIAd/Or 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 Fri, Apr 04, 2025 at 04:59:54PM +0100, David Woodhouse wrote: > From: David Woodhouse > > In the FLATMEM case, the default pfn_valid() just checks that the PFN is > within the range [ ARCH_PFN_OFFSET .. ARCH_PFN_OFFSET + max_mapnr ). > > The for_each_valid_pfn() function can therefore be a simple for() loop > using those as min/max respectively. > > Signed-off-by: David Woodhouse > Reviewed-by: Mike Rapoport (Microsoft) > --- > include/asm-generic/memory_model.h | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/include/asm-generic/memory_model.h b/include/asm-generic/memory_model.h > index a3b5029aebbd..044536da3390 100644 > --- a/include/asm-generic/memory_model.h > +++ b/include/asm-generic/memory_model.h > @@ -30,7 +30,31 @@ static inline int pfn_valid(unsigned long pfn) > return pfn >= pfn_offset && (pfn - pfn_offset) < max_mapnr; > } > #define pfn_valid pfn_valid > -#endif > + > +static inline bool first_valid_pfn(unsigned long *pfn) This is now different from SPARSEMEM version. Do we need it at all? > +{ > + /* avoid include hell */ > > + extern unsigned long max_mapnr; > + unsigned long pfn_offset = ARCH_PFN_OFFSET; > + > + if (*pfn < pfn_offset) { > + *pfn = pfn_offset; > + return true; > + } > + > + if ((*pfn - pfn_offset) < max_mapnr) > + return true; > + > + return false; > +} > + > +#ifndef for_each_valid_pfn > +#define for_each_valid_pfn(pfn, start_pfn, end_pfn) \ > + for (pfn = max_t(unsigned long, start_pfn, ARCH_PFN_OFFSET); \ > + pfn < min_t(unsigned long, end_pfn, ARCH_PFN_OFFSET + max_mapnr); \ > + pfn++) > +#endif /* for_each_valid_pfn */ > +#endif /* valid_pfn */ > > #elif defined(CONFIG_SPARSEMEM_VMEMMAP) > > -- > 2.49.0 > -- Sincerely yours, Mike.