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 CEC88C25B75 for ; Wed, 15 May 2024 15:58:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 19F626B0384; Wed, 15 May 2024 11:58:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 128DF6B0385; Wed, 15 May 2024 11:58:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F0B6B8D004F; Wed, 15 May 2024 11:58:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D12816B0384 for ; Wed, 15 May 2024 11:58:49 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3DBBC1C1D2A for ; Wed, 15 May 2024 15:58:49 +0000 (UTC) X-FDA: 82121088378.09.2B0DE59 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf03.hostedemail.com (Postfix) with ESMTP id 691C320017 for ; Wed, 15 May 2024 15:58:47 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BqEkTsZi; spf=pass (imf03.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715788727; 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=6iRHbyNTGvr9sjRduejmHoKiGmzFnKEKB6uzL8EQKYw=; b=X9UoCIcEkqy++tnz2AHQ2a8F0nze4q5SWHZJ/GlqVWYsddB0GSwV2mMnc2Ylt583vbw4wF 1uib+5/41SFXUORl4n+nff2OYSWRF0iam+7O27aEy/i7mrCbFEZaHFBBqZNB0FLQSGM8le uGTKMc2lOxxIV9yR+ieTVo7KBOU0rg4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BqEkTsZi; spf=pass (imf03.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715788727; a=rsa-sha256; cv=none; b=NNwqVuT4kMAIMYFmMnm0AdNVLh3hahcWVPunMalP3JQ+mW4lUZQ8EPWOwUdf9G2UQaZjOy 9n9nNOBwhfos9rY8Dxr+1XxQMkNO2ZA4uSBlhZOSIMXmgnBkKXtPC6m6h4epGTzyrtUjwl UqYmWzbP9oAgYijkbt1xaH+JTxzhrkw= Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-572669fd9f9so2189003a12.0 for ; Wed, 15 May 2024 08:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715788726; x=1716393526; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=6iRHbyNTGvr9sjRduejmHoKiGmzFnKEKB6uzL8EQKYw=; b=BqEkTsZis01IkRx+pyD4aGsabnjc1OfHdshDyOTe9L+5NL3uOxmh7l1J/+mRdgUN/5 q/3YTb36LNNTRNMr5thcRjODW/jUh9RQd6zn3bnzwUp11ufCy6DSoju801P+XOG9gJ9a n3vGqKrN3A1utKEcz2zU6+//GW5lZxQlc0NtxwCEqSBIBlqZHjn+884j5IPBC9zTMVcc HFOUmN5ETStw8hV1eRbVJit+aPaGSX14pcrRysouaL6YSnAzRZAuHPmR31ffpRI4YW/s 6kBEVFTLqmEmQGB7htLKna7Ye6P85KA7ozYFgTiYXXLgJUSqGJKj7kBX4lW8QobKjo3H Ljxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715788726; x=1716393526; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6iRHbyNTGvr9sjRduejmHoKiGmzFnKEKB6uzL8EQKYw=; b=mSAed4j7qIizaHVmrYzdowEOkR5HUlUjR9KjG+8LYPR0zqv4iuTKRuTNO8ojlty0YV kts9YvTFaXchq9/4t7xMCb6zVBqaFOTKDEf0yqu8JskA/uxYVRfIw3ep/GQHn+FfCXI+ 5e8XcMD/UP8GIoUqv/8Y0BgzufJyJDuR1eic2qDq/VVlYjcp49ZkVG2OxRx8Lo+XAOkE i6srZa/8CDXNTDz7XBcEevbVfElKizBpLnt969wMUXZi5JXst3u1wiLQyYmyDtYmDU8q HhCMlicfrOtm2zmIi77mcW/hRqbAn8caBUnntvAmJ9FZ+vz8o9vKK7Jza8JDiBXPbwvz byEQ== X-Forwarded-Encrypted: i=1; AJvYcCWzjRY0kNx1YiU/UiKtCSW+E2vkpqQsqsKMMkJBujDpCNtrNIgPiDCdSpQQB+MWjsSuXuDy5b5WsAAvDZFnB18aQo0= X-Gm-Message-State: AOJu0YzKKFRkZmUb0pPbmkF2iUNkmCNUoKOXaERVtsBANE3r8O6caSZZ YpZUIU5r0ZSiSrNk4PqoDNMWK3SEuHHWaonkO81rZW8iao3O7UvV5PZUu5F2T+kqL+EltWUztBX BtZ1DWf/csaQLPX/Gp9PzZeOFCPM= X-Google-Smtp-Source: AGHT+IEWavW0b5hH9Os46OQ//THLw953i+0xH4jkXXGxq/ZWERzJILGCxJY2Bdd4m6uSBXvQUtJ4tkMu+D5/qpgWivc= X-Received: by 2002:a50:d684:0:b0:572:a13c:30ca with SMTP id 4fb4d7f45d1cf-5734d5de823mr11907722a12.20.1715788725606; Wed, 15 May 2024 08:58:45 -0700 (PDT) MIME-Version: 1.0 References: <20240515023607.870022-1-linmiaohe@huawei.com> In-Reply-To: <20240515023607.870022-1-linmiaohe@huawei.com> From: Yang Shi Date: Wed, 15 May 2024 09:58:32 -0600 Message-ID: Subject: Re: [PATCH v2] mm/huge_memory: don't unpoison huge_zero_folio To: Miaohe Lin Cc: akpm@linux-foundation.org, nao.horiguchi@gmail.com, xuyu@linux.alibaba.com, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 1awf4b9bqkbogw9wrsyo3pp5755oqx78 X-Rspamd-Queue-Id: 691C320017 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1715788727-392311 X-HE-Meta: U2FsdGVkX19doqoAb7tc4a+LLrOMqbM1BxMKrkWx1GWZOcXu1cKX6mYvL8iHRrIMuIyZLsKItMHEW0BSk8g+t50vms3TluwcWGvSDsJj+gwOSeTBXfcuRb7izRnBiun28L4g/lPP+d8PCYMKTZkklsOgdzcE+6LYQ/G92O4jC9eboF9lKmzLaApkgXeKVz8ut1wHRYxzGfmy+B4pV8Y/cRDQsuneVgQ426elIX5prtnx0hOnnqctGLxGnzBVLihvm79mw7kL9Qma/3zAsaRmbH3paXFxS/slUbOkmmoHbpKLwXB42IsruU4byWLOuiWqPMthOjKZcAyCFmZu7AyzW4VrpXgwRRtt7slncWobpTJMWHZOSU1l1AgXS0lIMnAaAoJOdKOaPVy+uSv0nfnsxRDk8SRDO3ylsK/2snr4WEKe4+it5WIg5bYyS99swPLTKzR1BqBs9ZehdCgVsiL2nX8Wjc6K8n2PErB1eWHeJ/m3YB9v4my89NvQlDKOInSNtwoga9YdZd+Vzt2G1RCGsVUfrmCjU2OckQrwDyMXczs/8mNUQ8aHa/yNGTAZZ4sDptIfJTs2FFXkTPJNn3xnBeKBT5yFTjfBKEOH6Sdg5H5KVkOa9rHecVrtCjpV2RrdSFq4Iz4hndvo4dxdNRyf3wntQngJjHQ2xdj/MiwJke6L8LEMj9G2d6vIYbyWq4W9GHzygTadMLrk1v1js4KWC0YmCrBisR5sQ4JokxVB3N5dctQJK8t5xdGanaM10WV0MW6RBw9qMDRe1cq70P2ZPN2MaxLaDcAYhg06970tzONuInlgf6lnbSCVBbv3rbkaXaHvJNM/Bn863lQZ+dWSaPPOY8RwFbrFkzjyMvD8wwNkOz0hft4maar2pPDqfvbRJEPwfgo1VvU4QpwW+TWR4lIVwBomaKdqF7JiOMr0nCDJkk2I/i54LWU6SpPL5WhD/b7kcZR3+9Sdp0VW9JW zpW7TjTG XhQSVLzDEqTYIAAenGsXejT7jLnPapoRmkYD4IIY7xjeJZw+uka0Q+opIQx89ltL399nEZO7TuENOl9Q5NRHgLQgYpbIbaWmFghmMfsTSPuHmzwKopNDZ35hf2lJtesnVCD+rw8OqkxOJCVmm1nvV38bBlvMMrAL/NUyybVsnfMFwIjO6E9TPCfTwVoy5AIat/Cwso2iM6WzAWAh/OUalw+r6LPS66l7qJ6qQurqmNm1ml+oRYK7oEXpXXv9WG04wEINylDxcIDK4oVYuE+TkNAk7C/LBq6Sa5SfOepkEvlnfrflCnkrYL9tqGhMkb/prpymL5Zo3ydGkMxAVlshlgyVq5Vr7Gmc7gaZ94C1rpcitwNBRisUzPiVlf9GLx1JxjbbZES2iWYMPQkniGD+fa9ImZrjdU0OjaXmlruTgzPp4nuKm189nTg2uTU0oT5krFkNOzFRrEfRLbRrMEy/zJ/jK+tkAutNkQ2Zo7GjnEOg7DKv6pihdHByToxhXKkMDajiOJOMWa/nvxhelLVep+tt1DGDEoBtLdj57XPWDpa42/8/F8H/i6axu6H0BNvhEFCJH 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 Tue, May 14, 2024 at 8:39=E2=80=AFPM Miaohe Lin w= rote: > > 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 > RIP: 0010:shrink_huge_zero_page_scan+0x168/0x1a0 > RSP: 0018:ffff9933c6c57bd0 EFLAGS: 00000246 > RAX: 000000000000003e RBX: 0000000000000000 RCX: ffff88f61fc5c9c8 > RDX: 0000000000000000 RSI: 0000000000000027 RDI: ffff88f61fc5c9c0 > RBP: ffffcd7c446b0000 R08: ffffffff9a9405f0 R09: 0000000000005492 > R10: 00000000000030ea R11: ffffffff9a9405f0 R12: 0000000000000000 > R13: 0000000000000000 R14: 0000000000000000 R15: ffff88e703c4ac00 > FS: 0000000000000000(0000) GS:ffff88f61fc40000(0000) knlGS:000000000000= 0000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000055f4da6e9878 CR3: 0000000c71048000 CR4: 00000000000006f0 > Call Trace: > > do_shrink_slab+0x14f/0x6a0 > shrink_slab+0xca/0x8c0 > shrink_node+0x2d0/0x7d0 > balance_pgdat+0x33a/0x720 > kswapd+0x1f3/0x410 > kthread+0xd5/0x100 > ret_from_fork+0x2f/0x50 > ret_from_fork_asm+0x1a/0x30 > > Modules linked in: mce_inject hwpoison_inject > ---[ end trace 0000000000000000 ]--- > RIP: 0010:shrink_huge_zero_page_scan+0x168/0x1a0 > RSP: 0018:ffff9933c6c57bd0 EFLAGS: 00000246 > RAX: 000000000000003e RBX: 0000000000000000 RCX: ffff88f61fc5c9c8 > RDX: 0000000000000000 RSI: 0000000000000027 RDI: ffff88f61fc5c9c0 > RBP: ffffcd7c446b0000 R08: ffffffff9a9405f0 R09: 0000000000005492 > R10: 00000000000030ea R11: ffffffff9a9405f0 R12: 0000000000000000 > R13: 0000000000000000 R14: 0000000000000000 R15: ffff88e703c4ac00 > FS: 0000000000000000(0000) GS:ffff88f61fc40000(0000) knlGS:000000000000= 0000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000055f4da6e9878 CR3: 0000000c71048000 CR4: 00000000000006f0 > > The root cause is that HWPoison flag will be set for huge_zero_folio > without increasing the folio refcnt. But then unpoison_memory() will > decrease the folio refcnt unexpectly as it appears like a successfully > hwpoisoned folio leading to VM_BUG_ON_PAGE(page_ref_count(page) =3D=3D 0) > when releasing huge_zero_folio. > > Skip unpoisoning huge_zero_folio in unpoison_memory() to fix this issue. > We're not prepared to unpoison huge_zero_folio yet. > > Fixes: 478d134e9506 ("mm/huge_memory: do not overkill when splitting huge= _zero_page") > Signed-off-by: Miaohe Lin > Cc: Reviewed-by: Yang Shi > --- > v2: > Change to simply check for the huge zero page. Thanks. > --- > mm/memory-failure.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 16ada4fb02b7..68bc8d7ff53d 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -2558,6 +2558,12 @@ int unpoison_memory(unsigned long pfn) > goto unlock_mutex; > } > > + if (is_huge_zero_folio(folio)) { > + unpoison_pr_info("Unpoison: huge zero page is not support= ed %#lx\n", > + pfn, &unpoison_rs); > + goto unlock_mutex; > + } > + > if (folio_test_slab(folio) || folio_test_pgtable(folio) || > folio_test_reserved(folio) || folio_test_offline(folio)) > goto unlock_mutex; > -- > 2.33.0 >