From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 94FF72192FA; Fri, 23 Jan 2026 08:55:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769158542; cv=none; b=ozI5/uMjv6DgcnXUZf6OwGf57wNG+kmJvjDx/GiFcSP60xsQn/NaSXRkNLqAusfmLtUsOalpVatj/+mtKuSF++nG9jQ/2pr8cwEVjnaIrGHAJtbboZ/zWBwJou42g1abpssa74L0bsE7tcShBIrw8hLDNfdFZh9VklQEtwJETxM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769158542; c=relaxed/simple; bh=qipa/leqAcHIoHoVIyTRuSK7iSLnI0bYyPtkyQuKOwI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=VrgrcXYN3iWaCuljyzpGXr5v6AcDjQpORDEAIfYGhWRw7c4JYijSrAjqzdQf/DJiE8zyHMomgJBcJ+3h17pwM4OBnJ3O5amNEFmc4VsxMBn3zL2o++mn/ZaUUvw5LL8MTDyEFtzIM7dPDnDcs7SUlC3CuOqg8xE1WMWHMn35CSg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WoJ0nypq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WoJ0nypq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 51951C4CEF1; Fri, 23 Jan 2026 08:55:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769158542; bh=qipa/leqAcHIoHoVIyTRuSK7iSLnI0bYyPtkyQuKOwI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=WoJ0nypqalaeViN45nqZS61DwLJvLaxS6Va7RYXhmCPffYKzA4qdEjCMvwy+oegw3 aKfV7IBM1CmTPICv1FsvAfImMRMKEOCG5X7MpI/dePfmYI/JByz/LZYC0ZjrjP55Ao 1SLnMSBL0Ke+sW43iPtgeIe6b9D4ydUSHzhKWjeaNBWdI0tlqCKYh3EUSBhdXc6j4g Syov6+OE4ubSQiSv1TfW/S9MSNsX9kLpZ7rHBdyf0+q1aYZRzbIOAAPe6UFwRdniIj QulhEZGmEzx4jlQmft7zPoZK+lQp6gZSh8Julc8gkPGTBfQXKSy2OVFVJHkJx/uMUy Jy70fsy4UJnYQ== Date: Fri, 23 Jan 2026 10:55:34 +0200 From: Mike Rapoport To: ranxiaokai627@163.com Cc: pratyush@kernel.org, surenb@google.com, akpm@linux-foundation.org, pasha.tatashin@soleen.com, kent.overstreet@linux.dev, graf@amazon.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, ran.xiaokai@zte.com.cn, stable@vger.kernel.org Subject: Re: [PATCH RESEND v3] kho: init alloc tags when restoring pages from reserved memory Message-ID: References: <20260122132740.176468-1-ranxiaokai627@163.com> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260122132740.176468-1-ranxiaokai627@163.com> On Thu, Jan 22, 2026 at 01:27:40PM +0000, ranxiaokai627@163.com wrote: > From: Ran Xiaokai > > Memblock pages (including reserved memory) should have their allocation > tags initialized to CODETAG_EMPTY via clear_page_tag_ref() before being > released to the page allocator. When kho restores pages through > kho_restore_page(), missing this call causes mismatched > allocation/deallocation tracking and below warning message: > > alloc_tag was not set > WARNING: include/linux/alloc_tag.h:164 at ___free_pages+0xb8/0x260, CPU#1: swapper/0/1 > RIP: 0010:___free_pages+0xb8/0x260 > kho_restore_vmalloc+0x187/0x2e0 > kho_test_init+0x3c4/0xa30 > do_one_initcall+0x62/0x2b0 > kernel_init_freeable+0x25b/0x480 > kernel_init+0x1a/0x1c0 > ret_from_fork+0x2d1/0x360 > > Add missing clear_page_tag_ref() annotation in kho_restore_page() to > fix this. > > Fixes: fc33e4b44b27 ("kexec: enable KHO support for memory preservation") > Cc: > Signed-off-by: Ran Xiaokai Reviewed-by: Mike Rapoport (Microsoft) > --- > > v2 -> v3: > - also call clear_page_tag_ref() for non-compound order-0 tail pages > > kernel/liveupdate/kexec_handover.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c > index d4482b6e3cae..96767b106cac 100644 > --- a/kernel/liveupdate/kexec_handover.c > +++ b/kernel/liveupdate/kexec_handover.c > @@ -255,6 +255,14 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio) > if (is_folio && info.order) > prep_compound_page(page, info.order); > > + /* Always mark headpage's codetag as empty to avoid accounting mismatch */ > + clear_page_tag_ref(page); > + if (!is_folio) { > + /* Also do that for the non-compound tail pages */ > + for (unsigned int i = 1; i < nr_pages; i++) > + clear_page_tag_ref(page + i); > + } > + > adjust_managed_page_count(page, nr_pages); > return page; > } > -- > 2.25.1 > > -- Sincerely yours, Mike.