From patchwork Mon Nov 15 08:40:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naoya Horiguchi X-Patchwork-Id: 12618915 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F86EC433EF for ; Mon, 15 Nov 2021 08:40:30 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id A303360F14 for ; Mon, 15 Nov 2021 08:40:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A303360F14 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.dev Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 2646B6B0087; Mon, 15 Nov 2021 03:40:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2142B6B0088; Mon, 15 Nov 2021 03:40:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1037A6B008A; Mon, 15 Nov 2021 03:40:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0121.hostedemail.com [216.40.44.121]) by kanga.kvack.org (Postfix) with ESMTP id 006916B0087 for ; Mon, 15 Nov 2021 03:40:28 -0500 (EST) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id AB0AC8249980 for ; Mon, 15 Nov 2021 08:40:28 +0000 (UTC) X-FDA: 78810518136.11.17F72F4 Received: from out0.migadu.com (out0.migadu.com [94.23.1.103]) by imf01.hostedemail.com (Postfix) with ESMTP id 147B150927BC for ; Mon, 15 Nov 2021 08:40:11 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1636965625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=vPKc0J0OTU/aNWayUNR4Hp99A8Hk13iS7YS1//ccMM8=; b=Z1IO+OoRYKg5uzm6nC1VIZpgmkEdg5mhq7yzc9kvbmwKD9UaRjTgzVxEQLZKmXWzt1opSl hiQlJk6Ryocau7zezjWnzA0EWamL/Q+g7L1pZN7GmqxsLuxDydlj5yajmnnW14uJdfX8fz 8m29UubgbtdeGr/FW/b23EsOoCQXtPA= From: Naoya Horiguchi To: linux-mm@kvack.org Cc: Andrew Morton , David Hildenbrand , Oscar Salvador , Michal Hocko , Ding Hui , Tony Luck , "Aneesh Kumar K.V" , Miaohe Lin , Yang Shi , Peter Xu , Naoya Horiguchi , linux-kernel@vger.kernel.org Subject: [PATCH v4 0/3] mm/hwpoison: fix unpoison_memory() Date: Mon, 15 Nov 2021 17:40:03 +0900 Message-Id: <20211115084006.3728254-1-naoya.horiguchi@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: naoya.horiguchi@linux.dev X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 147B150927BC X-Stat-Signature: bjdzr4x7ggijak48p3yhw3ukfkuzc1y6 Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=Z1IO+OoR; spf=pass (imf01.hostedemail.com: domain of naoya.horiguchi@linux.dev designates 94.23.1.103 as permitted sender) smtp.mailfrom=naoya.horiguchi@linux.dev; dmarc=pass (policy=none) header.from=linux.dev X-HE-Tag: 1636965611-674105 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: Hi, I updated the unpoison patchset based on feedbacks for v3. I fixed a typo in patch description and closed raced in unpoison_taken_off_page() reported by Yang Shi. As for the build failure reported from build bot, I commented about disabling X86_SUPPORTS_MEMORY_FAILURE for i386 at first, but I'm not 100% sure that someone could use the subsystem for 32 bit system, so I shift to the easier way (setting MAGIC_HWPOISON to 32-bit integer value). ----- (cover letter copied from v2) ----- Main purpose of this series is to sync unpoison code to recent changes around how hwpoison code takes page refcount. Unpoison should work or simply fail (without crash) if impossible. The recent works of keeping hwpoison pages in shmem pagecache introduce a new state of hwpoisoned pages, but unpoison for such pages is not supported yet with this series. It seems that soft-offline and unpoison can be used as general purpose page offline/online mechanism (not in the context of memory error). I think that we need some additional works to realize it because currently soft-offline and unpoison are assumed not to happen so frequently (print out too many messages for aggressive usecases). But anyway this could be another interesting next topic. v1: https://lore.kernel.org/linux-mm/20210614021212.223326-1-nao.horiguchi@gmail.com/ v2: https://lore.kernel.org/linux-mm/20211025230503.2650970-1-naoya.horiguchi@linux.dev/ v3: https://lore.kernel.org/linux-mm/20211105055058.3152564-1-naoya.horiguchi@linux.dev/ Thanks, Naoya Horiguchi --- Summary: Naoya Horiguchi (3): mm/hwpoison: mf_mutex for soft offline and unpoison mm/hwpoison: remove MF_MSG_BUDDY_2ND and MF_MSG_POISONED_HUGE mm/hwpoison: fix unpoison_memory() include/linux/mm.h | 3 +- include/linux/page-flags.h | 4 ++ include/ras/ras_event.h | 2 - mm/memory-failure.c | 171 ++++++++++++++++++++++++++++----------------- mm/page_alloc.c | 27 +++++++ 5 files changed, 139 insertions(+), 68 deletions(-)