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 83AB9C25B79 for ; Tue, 14 May 2024 21:14:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0EEE38D004E; Tue, 14 May 2024 17:14:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 077398D000D; Tue, 14 May 2024 17:14:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA7E48D004E; Tue, 14 May 2024 17:14:48 -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 CBB588D000D for ; Tue, 14 May 2024 17:14:48 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7C889C111C for ; Tue, 14 May 2024 21:14:48 +0000 (UTC) X-FDA: 82118255856.10.79354B5 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf18.hostedemail.com (Postfix) with ESMTP id E78FD1C000E for ; Tue, 14 May 2024 21:14:45 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=SxFKmuF+; spf=pass (imf18.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715721286; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MCYxMqHlXfwZDOft8FR/g9E5omranZHw8AUMVIKKvp0=; b=0k/YRJbUJXXZttupLjjbbhgzh+ygUHYIqXZv6sNjqrPptv1ijhdjIk5pB1Yl/bcvCEdd82 K6TN5LGKmGibY9Eh8UFdX+9SqGCESMAwGiY+YzoBgdHWGVQRkqQSQfhMmSEk5O9m76BhHV 0AATqUAAKzQl2l8OVaT8oDvdEGbz34c= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=SxFKmuF+; spf=pass (imf18.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715721286; a=rsa-sha256; cv=none; b=s/WEcTsNXvbJU1zfCIhdsynKo/7vZSMn0p4GV8NN9HPKfsDqfzkNsmNxMi1YrfQy0GaxlJ nJytBFPyi1v5iBj4mSZwulnTnmCrLXRN8gfAukGB5EiiYfXlyBs3ITqPhaTRpSkN2v1SMe Rr63fR9l/czfI3eiZaQDaRlZkvpQfBk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 414E8CE118C; Tue, 14 May 2024 21:14:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32221C2BD10; Tue, 14 May 2024 21:14:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1715721280; bh=+78pNISfXCXpQc/XQQZsCUs23dG3BM2mGKmH6j0NNjk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=SxFKmuF+sG0UZJmAeOxtF9ZMQb8akcIRfMvgc4391rbSl8yD8FT5GFt6CEIaj2pUF BSxBbwuptHGht6iv9I0uFiD44IZkm+fk/dycCHQ5+BDlhFO9ETq0+SDZpTDiJQ74Kb W9KNmasRY5erD9X5YWKD0cYUdg/rHHrCSmPBDM2Y= Date: Tue, 14 May 2024 14:14:39 -0700 From: Andrew Morton To: Miaohe Lin Cc: , , , , Subject: Re: [PATCH -rc7] mm/huge_memory: mark huge_zero_page reserved Message-Id: <20240514141439.55fba39c81c1af55c9a100e1@linux-foundation.org> In-Reply-To: <20240511035435.1477004-1-linmiaohe@huawei.com> References: <20240511035435.1477004-1-linmiaohe@huawei.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: E78FD1C000E X-Stat-Signature: fq6z355f7mh8b5pnz1ihmnsuy5sjqx7y X-Rspam-User: X-HE-Tag: 1715721285-346800 X-HE-Meta: U2FsdGVkX19XvVYGsxYHpcVT4fG4xZDwtG8qOtgX/O6NpFjF76zly+PQnJC3K/aaOQYl4yQu/9mSy2GpC7gjbXM69cjc/VwQt3pRanbTfwbYcTSO7ETD2SPfHfaHApU3g04z1OW1fWVJZ/HIgjWUeRCkIDgQ9ve+hTFnBzLdZ33NkJOiu/Vvi6jD0YNrYoN05QeYhkQy4UOoNONnzfgDH8UP9WG8KVxI0rQ5BUjWwFO1xO4ZyZsaclAdB+aXYptewu0db4dZ/ecmOoslL0XHQPhbhxoCF0yiXGhdw6rkRrvMSLILt9UdcvzPFA8YNjjR5HCm2clfLtVnGn6ACYYUcm3tPE5ZngQn7pL0sWLhsvyl9nI6oH1wau1ckMSocaXDWo6NJLi1P/hcAS4NBi/TWRYHNW6a4HFAjvlFoqcrSuZHwIL/87dLerUQApb709dCDnRJduu6iGbRLfwfb9OBiRs+0Do/C0d+sgfFgh0wruvAcb9CfqesMf44bq5bNWTFL47fWsFE5iEgR17+RSOxTUwr1po3darkaTORAQEDJdPvsNDtMsyIhifTZzZOYi73ZVvTqgYiZ20cphcjdEpeBhwC06Wi+8qQq8SPyQw9b6NMky3LeS+Mse/08UDICyn+p4AyOsXAkgA79Mu+GG99Ch6qoLi+r/DRd5g9gcAdt9BuZovkEW6fpInmGdDTwIpq6gwLkKDVVOI1YUGtPFG6HvTaOIPpm+YLbF94Djai+nverIHgdd74Ttskot5xnytJhO6TVmAJ0X3eixEP4/3JOIAAvOo/y2Jm9fNE4ce/jEwHcKgzS04NmDukxz/23lKzhF4wVyJgtDkFZpbXSzK6Lvxy4eOrm4pAMPFMEWCZUnqkSLENLzq25Ujo774++eHbIjG/LBMutk63IPPHg0OgK6yrluoKD79THKRiEPs5uO4k2y/MwS/EJBKmMlw4zY/smGSpryPVafowOWzkOL1 N5YLFrdp Hs4gQaU2gli4+OUN0+opQsLauit0VD+UoFmaM9xzO/y0yAqPqqpFjuqEcwH7SVb2DGfTHDPJjQIogR5yyeE4PMeK1G8iNXT4/oJfyGSfkFFKeNaLCEAsP7wPKx3/NFT3D0Duh9mW9T9JQQc77w9aMeN3kXA5e0rNLmSfc/z5xMDiAOmrDKnBVhXF3Jo7BIwy32ct8Jnj2B35ZPbVpxS7bYZ0aEdvgxxIJINuZwpzK1ZH4heSytZW9ehIxwDXSWVPf0GDX/mwssUCnuWXFLnibBms9A257L2l87tjjb0AbZ4JBLVf03/XunGAVPjnH371cqxQkZB+0pf9KDaCg57GXPGjQsnwES8XY+2fqaYptB6tEcNrllkhz3rYT6RWB5PZMq7Yd5c6g/z4YF/j5fzxeqxYwVl3ZE8uyll04JqcSiOWxFRgtum4aw4mw2lGbgHtdBix5FoP65lhKkvxSII+3A1InhqJ5Ijmt+rQa7ptHG14b0DCPexNoujktYVg6eZsNs67f4kvm8xCYW3Kn+lxYWboDA7WyKBP3vwfIotkWv1is0Jc= 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 Sat, 11 May 2024 11:54:35 +0800 Miaohe Lin wrote: > When I did memory failure tests recently, below panic occurs: > > kernel BUG at include/linux/mm.h:1135! > invalid opcode: 0000 [#1] PREEMPT SMP NOPTI > CPU: 9 PID: 137 Comm: kswapd1 Not tainted 6.9.0-rc4-00491-gd5ce28f156fe-dirty #14 > > ... > > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -208,6 +208,7 @@ static bool get_huge_zero_page(void) > __free_pages(zero_page, compound_order(zero_page)); > goto retry; > } > + __SetPageReserved(zero_page); > WRITE_ONCE(huge_zero_pfn, page_to_pfn(zero_page)); > > /* We take additional reference here. It will be put back by shrinker */ > @@ -260,6 +261,7 @@ static unsigned long shrink_huge_zero_page_scan(struct shrinker *shrink, > struct page *zero_page = xchg(&huge_zero_page, NULL); > BUG_ON(zero_page == NULL); > WRITE_ONCE(huge_zero_pfn, ~0UL); > + __ClearPageReserved(zero_page); > __free_pages(zero_page, compound_order(zero_page)); > return HPAGE_PMD_NR; > } This causes a bit of a mess when staged ahead of mm-stable. So to avoid disruption I staged it behind mm-stable. This means that when the -stable maintainers try to merge it, they will ask for a fixed up version for older kernels so you can please just send them this version. To facilitate this I added the below adjustment: (btw, shouldn't get_huge_zero_page() and shrink_huge_zero_page_scan() be renamed to *_folio_*?) From: Andrew Morton Subject: mm-huge_memory-mark-huge_zero_page-reserved-fix Date: Tue May 14 01:53:37 PM PDT 2024 Update it for 5691753d73a2 ("mm: convert huge_zero_page to huge_zero_folio") Cc: Matthew Wilcox (Oracle) Cc: David Hildenbrand Cc: Miaohe Lin Cc: Naoya Horiguchi Cc: Xu Yu Cc: Yang Shi Signed-off-by: Andrew Morton --- mm/huge_memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/mm/huge_memory.c~mm-huge_memory-mark-huge_zero_page-reserved-fix +++ a/mm/huge_memory.c @@ -212,7 +212,7 @@ retry: folio_put(zero_folio); goto retry; } - __SetPageReserved(zero_page); + __folio_set_reserved(zero_folio); WRITE_ONCE(huge_zero_pfn, folio_pfn(zero_folio)); /* We take additional reference here. It will be put back by shrinker */ @@ -265,7 +265,7 @@ static unsigned long shrink_huge_zero_pa struct folio *zero_folio = xchg(&huge_zero_folio, NULL); BUG_ON(zero_folio == NULL); WRITE_ONCE(huge_zero_pfn, ~0UL); - __ClearPageReserved(zero_page); + __folio_clear_reserved(zero_folio); folio_put(zero_folio); return HPAGE_PMD_NR; } _