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 E22E8C433EF for ; Tue, 12 Apr 2022 21:05:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 64E696B0072; Tue, 12 Apr 2022 17:05:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FD726B0073; Tue, 12 Apr 2022 17:05:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4C58C6B0074; Tue, 12 Apr 2022 17:05:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.25]) by kanga.kvack.org (Postfix) with ESMTP id 3AADE6B0072 for ; Tue, 12 Apr 2022 17:05:54 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id EEC3D22F73 for ; Tue, 12 Apr 2022 21:05:53 +0000 (UTC) X-FDA: 79349458986.16.45EDAEC Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf05.hostedemail.com (Postfix) with ESMTP id 81DD610000A for ; Tue, 12 Apr 2022 21:05:53 +0000 (UTC) Received: by mail-pj1-f42.google.com with SMTP id o5-20020a17090ad20500b001ca8a1dc47aso4250326pju.1 for ; Tue, 12 Apr 2022 14:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version; bh=e4KXnzriWpYspaOZ09MkDyywUqOfHTHfFcJ2WOtKnA8=; b=nxJGtS/S9cqrCOMKi/RD3qjJjmjzcw8ZFvUyNF8GU2WB8TzCwce3iq1mtQhJQkVcuY cU4sC7lxci95hoxbboWTTyiACoLTl4ZlmAgK7YlJO9JPdnYTT/4W2Sy8RKqHEpfLLPpv il0rBqUN0gZgMnDgXdu2ucs7pzx0nBo7a/jNXjFTwK3JE7TLQnhmg/tt9/iOf2vuPXw/ m1amfCdPx8eVZum4G3go9oQW90em8vHbDOcxJChfV6E23zKGFZdqd//s6E93NI8WBx9K Ku+r6y0dLsVyH8KgOiDCos2yrQZ4swIUxbXUiDKAmZZDvOlVb0IGg9J+idxxw5fm9Egl GxCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:mime-version; bh=e4KXnzriWpYspaOZ09MkDyywUqOfHTHfFcJ2WOtKnA8=; b=SH7e4lms2k7HKOPc+noLb7xD6vL2yYNtvn3BwgIs1+l2Luk4wd0K8C7SKQE4iUiJ/o yq+AWJFkC0mZ4peC5/cVNofrqMd5LdkvDaEczRbuckwt9dw9acpWhK1jt3WLPgfFVug1 zSpSo15blreDU4gQjbv/0Zq8oRNzW3xBCfJhndJEXP4KwljM9MNnXlknsTxbJutgWrq0 G0CR3OOCK8PR8y/pdJ66PnONFqA0AeiBByg3HlC7hYWREW1+RfIGXy9VkmJI29x0LmZi zvx23LUPFZiU7ylON6rmorbzwa6bCuukeaGMCwS7C5jEtqx7xra2FNY8VDXxKMweFePk fJgw== X-Gm-Message-State: AOAM530ZKa4qS0Z+cNcWDa/mPw6CO8r8EdwrXwdSXfCZ4Y0esJzZOfWL 3lJcWYrs8GplQj3EXOoRkNrk46JarJMrYQ== X-Google-Smtp-Source: ABdhPJzdG9DcZCs8IcExT1sgDRqLnciztc+HE5MrYSFm2YOZlpWBB11ghXDUZQS2IsPsSzTV3fP5gQ== X-Received: by 2002:a17:90a:bb0d:b0:1bd:3baf:c8b4 with SMTP id u13-20020a17090abb0d00b001bd3bafc8b4mr7106917pjr.15.1649797552072; Tue, 12 Apr 2022 14:05:52 -0700 (PDT) Received: from [2620:15c:29:204:a975:d8d:75b4:4882] ([2620:15c:29:204:a975:d8d:75b4:4882]) by smtp.gmail.com with ESMTPSA id x17-20020aa79a51000000b00505fe866b3fsm3375631pfj.162.2022.04.12.14.05.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 14:05:51 -0700 (PDT) Date: Tue, 12 Apr 2022 14:05:51 -0700 (PDT) From: David Rientjes To: Andrew Morton cc: Sudarshan Rajagopalan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport , Anshuman Khandual , Suren Baghdasaryan Subject: Re: [PATCH] mm, page_alloc: check pfn is valid before moving to freelist In-Reply-To: <20220412135912.93175db2ab4e83f4bb060dbf@linux-foundation.org> Message-ID: <6daaaf5c-529d-f3eb-7486-a72cabb6e396@google.com> References: <20220412135912.93175db2ab4e83f4bb060dbf@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="nxJGtS/S"; spf=pass (imf05.hostedemail.com: domain of rientjes@google.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=rientjes@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 81DD610000A X-Stat-Signature: hrq1cf7uczhjhgyqrnksyc6anx1jnemi X-HE-Tag: 1649797553-216233 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 Tue, 12 Apr 2022, Andrew Morton wrote: > On Tue, 12 Apr 2022 13:16:23 -0700 Sudarshan Rajagopalan wrote: > > > Check if pfn is valid before or not before moving it to freelist. > > > > There are possible scenario where a pageblock can have partial physical > > hole and partial part of System RAM. This happens when base address in RAM > > partition table is not aligned to pageblock size. > > > > ... > > > > > > Signed-off-by: Sudarshan Rajagopalan > > Fixes: 4c7b9896621be ("mm: remove pfn_valid_within() and CONFIG_HOLES_IN_ZONE") > > I made that 859a85ddf90e714092dea71a0e54c7b9896621be and added > cc:stable. I'll await reviewer input before proceeding further. > Acked-by: David Rientjes > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -2521,6 +2521,11 @@ static int move_freepages(struct zone *zone, > > int pages_moved = 0; > > > > for (pfn = start_pfn; pfn <= end_pfn;) { > > + if (!pfn_valid(pfn)) { > > Readers will wonder how we can encounter an invalid pfn here. A small > comment might help clue them in. > Sudarshan can correct me if I'm wrong, but this has to do with the pageblock alignment of the caller that assumes all pages in the range has an underlying struct page that we can access but that fails to hold true when we have a memory hole. A comment would definitely help: /* Pageblock alignment may cause us to try to access into a hole */ > > + pfn++; > > + continue; > > + } > > + > > page = pfn_to_page(pfn); > > if (!PageBuddy(page)) { > > /* > > >