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 220DEC7EE30 for ; Tue, 1 Jul 2025 14:21:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B85E66B0093; Tue, 1 Jul 2025 10:21:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B36436B009C; Tue, 1 Jul 2025 10:21:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4C466B00A1; Tue, 1 Jul 2025 10:21:14 -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 96EF96B0093 for ; Tue, 1 Jul 2025 10:21:14 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 343411064A1 for ; Tue, 1 Jul 2025 14:21:14 +0000 (UTC) X-FDA: 83615908068.01.DFF2DD6 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf12.hostedemail.com (Postfix) with ESMTP id E58354001D for ; Tue, 1 Jul 2025 14:21:11 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=CUWrRi98; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=0fu0WqQM; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=CUWrRi98; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=0fu0WqQM; spf=pass (imf12.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751379672; 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=JmKVS3HJIGenuLLjJpFHYp6atToHRPlhRsHeHpi6g/g=; b=FPy/z0kVMToQT2JWQc9ikuQiXWrTbP9k96mniJuN2B4jveEdYRWT7Z9kVu+0GZVmE27Gyp im4QH6MT4MbHFha9LNQMa2YjJ1Bs6IJxTPGXPtfwfsrixi5ODX42bvetISKeLYvu8ObL7r D1yzOkFJ6vuZACq+Ji1+k7gj/DYUqLU= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=CUWrRi98; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=0fu0WqQM; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=CUWrRi98; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=0fu0WqQM; spf=pass (imf12.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751379672; a=rsa-sha256; cv=none; b=m3OMnmgnM8B5bUyG27VZm9qenCc3PGj5myN1/Q2guop2TuMC0ENljaNmBuLSY2tc9J7RJP xEQSLWj1vVaxCMPJP5HExfQ4YyU1znbJEToQbkWzMuDiW52e/Rrqc18JLKit7UESWFCAiT XojlwINUMYSPtsWdxqsDFbofZX9uSAU= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 67D2C1F399; Tue, 1 Jul 2025 14:21:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1751379670; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JmKVS3HJIGenuLLjJpFHYp6atToHRPlhRsHeHpi6g/g=; b=CUWrRi98UKfHoqp9lH7vCedAzCTiQSRrN/mPo0pki1IJUsJT/OyepM6VlFVy9vJUmtHxQP 3AkD5/pgYDpMWsIXRO5tVb8vIpY/rsNtwW4jMTlifX/3/dA7dEeg6MwDzbuJyR2TqEcWJ8 bYpMYH+9oeluH18pN9s6PUb5CEufrho= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1751379670; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JmKVS3HJIGenuLLjJpFHYp6atToHRPlhRsHeHpi6g/g=; b=0fu0WqQMzM58HlSYeJke/bB7xHQbWKdlIrcl4KFAOJb46nzs3efTmEBCeVYjsQ3HRt+BOc 6ihimVXnx4pg51Bg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1751379670; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JmKVS3HJIGenuLLjJpFHYp6atToHRPlhRsHeHpi6g/g=; b=CUWrRi98UKfHoqp9lH7vCedAzCTiQSRrN/mPo0pki1IJUsJT/OyepM6VlFVy9vJUmtHxQP 3AkD5/pgYDpMWsIXRO5tVb8vIpY/rsNtwW4jMTlifX/3/dA7dEeg6MwDzbuJyR2TqEcWJ8 bYpMYH+9oeluH18pN9s6PUb5CEufrho= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1751379670; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JmKVS3HJIGenuLLjJpFHYp6atToHRPlhRsHeHpi6g/g=; b=0fu0WqQMzM58HlSYeJke/bB7xHQbWKdlIrcl4KFAOJb46nzs3efTmEBCeVYjsQ3HRt+BOc 6ihimVXnx4pg51Bg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id F31D01364B; Tue, 1 Jul 2025 14:21:09 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id cU7oONXuY2iJDgAAD6G6ig (envelope-from ); Tue, 01 Jul 2025 14:21:09 +0000 Date: Tue, 1 Jul 2025 16:21:00 +0200 From: Oscar Salvador To: Jinjiang Tu Cc: akpm@linux-foundation.org, linmiaohe@huawei.com, david@redhat.com, mhocko@kernel.org, linux-mm@kvack.org, wangkefeng.wang@huawei.com Subject: Re: [PATCH v2 2/2] mm/memory_hotplug: fix hwpoisoned large folio handling in do_migrate_range Message-ID: References: <20250627125747.3094074-1-tujinjiang@huawei.com> <20250627125747.3094074-3-tujinjiang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250627125747.3094074-3-tujinjiang@huawei.com> X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E58354001D X-Stat-Signature: sauw31qo8cocfyb1uf4gw19c1tdbgc3i X-HE-Tag: 1751379671-892940 X-HE-Meta: U2FsdGVkX19vQXBHG+j6hPZwLgojyy98LNThze8dtx5dW9ufEoNv6dvKa9gVNZYhBpC2ebMlLyy5EF/66niixutlmJ6AiB7lKBXE5pzNvjqUSkL8NUlZ07Ko+Yk/DYCUM2VMyZVaWLwnD9i16YTWiBXFTgLHlpq3+M/xRE/gGc4nTPz1AO6FLLpmAqxTYh6wFJRQ2PEE/WTgFQzJJdDOKxSTWOavXiPAM2KLywBm3BIQpA8RnRUBqrzicqkeYZoRljPK8IFy4JDNIQzkt4zmx9d8ynJ4C9/bFu6KAvVHUpDUJgcLg6fIRlDr5iURhqGWyYRDIfON+HBbLVusyvjqbg72gwP9VWJaDzAK3S20UnhnOFtdSbhfk7hfCELHuHZWzq87R/TvVsrqhM6k94rgccAar19h52c7sLP+FB++co5KWDKRH8/U3C060CVVDTMErOD/OirgyscKAVQ+LPuASmL2MXrZh48m00kG/u8sRyc+8Q58obXL2RJxjkKl6UGgwuNOkBewBJBvWcR54fKQ34xo/erkz6iSnRVkmAKwTZrH2I/EIvzxVSOe4pKJvmF8WwI14I1MHZ9dOBUh5kFKNRkyMpuH55Vf6gaGd19VD6FUbQpFUgx+S8uaI8YHPNvF52WcweldPtROhNmVfP+SwciiESWvm39E75XDUF2UWZbz5adK5yx4dUHHk2R3ifWCy/fXxbOJmF3E0MkWpuxXsFGZWhMlxwTIRcImaPk8GuR6pneddAsFHYTCqfUl6okVPSXxe8QWJ/bgP3GRwrctsCwNO1OC18MlG9AlxmoBKoaVbQyCPIpqck85IUgPFyhtZ0B9SW8gZoaCLLTrEJ6ZGEUTAAxsJhlOooPxpaWWLCquoDydW3D6E6hWmLugpDA+Ij1mDOmBn1hjM2D/jsWb/j7dbiB36R5dqYR5NLIN4mkAATFa/oUBh3fuCbtkNyZr2Pu4WNoW0djAuxiecIL TGLsvi0G NM5geAt+cqi/oq7BNEOt3vkdnXTmFzluRi0n6wQMLGY50BBn3+C6n3MIcMVY+umU96z8xmEAyvO6A7vqO3mvrhRdYrhztODis1ulXNb56yU5Ryr0aHYDTSwSFkHzfFScLIqozQlN1vzSXIeZHP7dTu4cO5J26kYlJ/yCR2SFUVQgOjx64gdBMaQ4cXSHKkfyGZl4kv9QRnA0GYP/pkBcD1uFxj0553gJME500g95UOqYY0apF0XzK2fVN12z83sTkfP3UDQqKTTuptq+ASYSDlnnwmNnrg2gqQn4VnOg1T2AESpUiOCeA9S+xxR15/6yk/HU0IkMho3n1Fc0= 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, Jun 27, 2025 at 08:57:47PM +0800, Jinjiang Tu wrote: > In do_migrate_range(), the hwpoisoned folio may be large folio, which > can't be handled by unmap_poisoned_folio(). > > I can reproduce this issue in qemu after adding delay in memory_failure() > > BUG: kernel NULL pointer dereference, address: 0000000000000000 > Workqueue: kacpi_hotplug acpi_hotplug_work_fn > RIP: 0010:try_to_unmap_one+0x16a/0xfc0 > > rmap_walk_anon+0xda/0x1f0 > try_to_unmap+0x78/0x80 > ? __pfx_try_to_unmap_one+0x10/0x10 > ? __pfx_folio_not_mapped+0x10/0x10 > ? __pfx_folio_lock_anon_vma_read+0x10/0x10 > unmap_poisoned_folio+0x60/0x140 > do_migrate_range+0x4d1/0x600 > ? slab_memory_callback+0x6a/0x190 > ? notifier_call_chain+0x56/0xb0 > offline_pages+0x3e6/0x460 > memory_subsys_offline+0x130/0x1f0 > device_offline+0xba/0x110 > acpi_bus_offline+0xb7/0x130 > acpi_scan_hot_remove+0x77/0x290 > acpi_device_hotplug+0x1e0/0x240 > acpi_hotplug_work_fn+0x1a/0x30 > process_one_work+0x186/0x340 > > In this case, just make offline_pages() fail. > > Besides, do_migrate_range() may be called between memory_failure set > hwposion flag and ioslate the folio from lru, so remove WARN_ON(). In other > places, unmap_poisoned_folio() is called when the folio is isolated, obey > it in do_migrate_range() too. > > Fixes: b15c87263a69 ("hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined") > Signed-off-by: Jinjiang Tu ... > @@ -2041,11 +2048,9 @@ int offline_pages(unsigned long start_pfn, unsigned long nr_pages, > > ret = scan_movable_pages(pfn, end_pfn, &pfn); > if (!ret) { > - /* > - * TODO: fatal migration failures should bail > - * out > - */ > - do_migrate_range(pfn, end_pfn); > + ret = do_migrate_range(pfn, end_pfn); > + if (ret) > + break; I am not really sure about this one. I get the reason you're adding it, but note that migrate_pages() can also return "fatal" errors and we don't propagate that. The moto has always been to migrate as much as possible, and this changes this behaviour. -- Oscar Salvador SUSE Labs