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 9B66FEE57FD for ; Thu, 12 Sep 2024 02:06:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 013466B00BB; Wed, 11 Sep 2024 22:06:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F0DBF6B00BC; Wed, 11 Sep 2024 22:06:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA4AF6B00BD; Wed, 11 Sep 2024 22:06:35 -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 B8AAE6B00BB for ; Wed, 11 Sep 2024 22:06:35 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5A4F480A45 for ; Thu, 12 Sep 2024 02:06:35 +0000 (UTC) X-FDA: 82554447150.10.0AC00FA Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by imf20.hostedemail.com (Postfix) with ESMTP id E5CF11C0002 for ; Thu, 12 Sep 2024 02:06:32 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf20.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726106765; a=rsa-sha256; cv=none; b=1wxsVyZD1j8E1krDfIi+xSsU5qHZ1EIpx7JovBbU7EsSmp05dqFn2G+cznyl3FuMiX6QOC 2RG1W2MZ695I/Dg4HfHo7aaMLVHHX2YMctyLB45KbJaz10HY2F0N0hpr44t7SPqkeZ6/qU ad9RD3iNc522qvxpy3dWx1JmWd0sp6Y= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf20.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726106765; 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; bh=CiRRMJymSFiXOxlWU5sOyFnttyL7orbSqrRTSDJhGNE=; b=fNB92zP3u6sBTbulHQM1GWDlQPd3hmy4God/M4G0cavjF2GJWIAyQgHA3UD3kcYWrNVwfy MkInpmmIcK/oUQgWmqS/2tF4Ky0IMrSL++thGnQ5BZACz478B/hgB/DeDoQU2A50oJvU1Y MXYesFx9qQxc2k0YEHlsqFBp9q6csfc= Received: from mail.maildlp.com (unknown [172.19.163.48]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4X415B1PB9z69WK; Thu, 12 Sep 2024 10:06:22 +0800 (CST) Received: from kwepemd200019.china.huawei.com (unknown [7.221.188.193]) by mail.maildlp.com (Postfix) with ESMTPS id 142E3180064; Thu, 12 Sep 2024 10:06:29 +0800 (CST) Received: from [10.173.127.72] (10.173.127.72) by kwepemd200019.china.huawei.com (7.221.188.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 12 Sep 2024 10:06:28 +0800 Subject: Re: [PATCH 2/2] mm: support poison recovery from copy_present_page() To: Kefeng Wang , Andrew Morton CC: , Jane Chu , Naoya Horiguchi , Tony Luck , Jiaqi Yan , David Hildenbrand References: <20240906024201.1214712-1-wangkefeng.wang@huawei.com> <20240906024201.1214712-3-wangkefeng.wang@huawei.com> <635585c1-5d51-6a23-70ad-560e164068f6@huawei.com> <7318807d-ee77-48e3-a827-39cbb44b3506@huawei.com> From: Miaohe Lin Message-ID: <203ec9d6-eade-d4ef-1745-8b57f799e8bd@huawei.com> Date: Thu, 12 Sep 2024 10:06:27 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <7318807d-ee77-48e3-a827-39cbb44b3506@huawei.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [10.173.127.72] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemd200019.china.huawei.com (7.221.188.193) X-Rspam-User: X-Rspamd-Queue-Id: E5CF11C0002 X-Rspamd-Server: rspam01 X-Stat-Signature: dfodpwwydq53x9xecwrikpcrxsiw1hka X-HE-Tag: 1726106792-464093 X-HE-Meta: U2FsdGVkX18kRHQfD0EOGcxIqHmHRFfDmxvMivXhRGHrVgR/IYV/G+GZ592PDVwAI2gq7aI7U2iMueYsDsgdHpe8V/8KCoFX32UMwqQgBakzRpmrHUJLqF6DLN/tHY3eipBq/+AmHqHg0oZFgR2zKW3p/n6nyUR1dGWnpB0Y0gV354Qu9opW3Nur0Hz0cdum1ZPcAwf+c+cUlSzf+uudyY2XUu8sIMRvbasMy04eeTgdx5XJOV6bc4agJs+nclukSEM/FzYyijpXLijO+BMabT3sd9PJ1RJvyYURJaTq6FINgwN7JB4XM+xFBcwYDmVRNlxvEUsYkNsvZI+Q5lWJKUWVwMftKywSHuVR1o3x5g+YYgm0Q5PWiFKHyaZo4Bab+zsKhPfMeJHPd11/cwLin/3E3MyTTsogfuN2KDEkvVSr8FMqolSy9K60duUfRw4ptawGgbBwB5XoDn1kNxtyeVoHuFUaWQMIKe9Wx620xdPT58vzZph4dTxPSobBXYRTsCNRz6FBsIMAYsrSpt3Lv87pU1ScGi1juHyl90UBvohyeRSVyHG5tHhbn3RC83Z0kU9YGztnH/uAK2PoBknqtFJn30rEVoRkIE0HPhlxRWQlNMCqN1Hs+dw1fpQIiuDkAioMAg7gv8FUCuOYZdh8ayRUdwLaxNiGCOItbDBjIh5wVxx4fjnCRGtOsnpDvnoDLA4eAacj3+WD9HfDv/eRhGB5FJOIyHkviDoI4e8HRCfoiprq3whux/TMwUM87zGYxhw6U1y9ZDCB+zUg4pEMNmGVxmx7CgR9JoutSR/Sj8Uk+Z7kdaw5owomK0cSE3DjFtfyyX8H954aFIjTctrzHrQS/V62XKvDEycQVlQAUQYykzp7+Qae1wG7ASR776K2kAl32lWCnS3sbuX4pc3SHL5ko4rdn9lcAxuCWTorl0fJ+4Y4mp8X1ORBeVld6AhzB8PxETNjfVB1baFhZKV iHEWo3oW G+RXex6lNyBJ7s9F2Wa2xeeyXuNigN2isvjg+lgIQOU6k+kYWxk9weVXfXKsMjVPJm2/r1FAXzUdK23C0HuxxxWPOqMaF7GfNO5B9vE6WrFAamEO/nWBGur6dHdPc6WCCdKUcgCDZyIGjOseyxLPsvV0wnF0Bm2JAqvMh+qA6ITiw05lIl71e3c/KRlvgk6TBjqa69Zr+NZY9XNKs3xAtBgbPxlMfD+JINK0ia8E/3RWCFu8sPus2UCtO+Ib8iZD9yKHF0MnAntMp3VSZq2mVBQgQJhIijit3IjJJMTWY84qLBHA= 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 2024/9/10 14:35, Kefeng Wang wrote: > > > On 2024/9/10 10:19, Miaohe Lin wrote: >> On 2024/9/6 10:42, Kefeng Wang wrote: >>> Similar to other poison recovery, use copy_mc_user_highpage() to >>> avoid potentially kernel panic during copy page in copy_present_page() >>> from fork, once copy failed due to hwpoison in source page, we need >>> to break out of copy in copy_pte_range() and release prealloc folio, >>> so copy_mc_user_highpage() is moved ahead before set *prealloc to NULL. >>> >>> Signed-off-by: Kefeng Wang >>> --- >>>   mm/memory.c | 10 +++++++--- >>>   1 file changed, 7 insertions(+), 3 deletions(-) >>> >>> diff --git a/mm/memory.c b/mm/memory.c >>> index d310c073a1b3..6e7b78e49d1a 100644 >>> --- a/mm/memory.c >>> +++ b/mm/memory.c >>> @@ -926,8 +926,11 @@ copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma >>>        * We have a prealloc page, all good!  Take it >>>        * over and copy the page & arm it. >>>        */ >>> + >>> +    if (copy_mc_user_highpage(&new_folio->page, page, addr, src_vma)) >>> +        return -EHWPOISON; >>> + >>>       *prealloc = NULL; >>> -    copy_user_highpage(&new_folio->page, page, addr, src_vma); >>>       __folio_mark_uptodate(new_folio); >>>       folio_add_new_anon_rmap(new_folio, dst_vma, addr, RMAP_EXCLUSIVE); >>>       folio_add_lru_vma(new_folio, dst_vma); >>> @@ -1166,8 +1169,9 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, >>>           /* >>>            * If we need a pre-allocated page for this pte, drop the >>>            * locks, allocate, and try again. >>> +         * If copy failed due to hwpoison in source page, break out. >>>            */ >>> -        if (unlikely(ret == -EAGAIN)) >>> +        if (unlikely(ret == -EAGAIN || ret == -EHWPOISON)) >> >> Will it be better to put checking ret against -EHWPOISON in a new line? -EAGAIN case will enter the >> loop again but -EHWPOISON case never does. > > Maybe not a newline since we will recheck the ret in the below and return directly from copy_present_page(). Anyway, this patch looks good to me. Reviewed-by: Miaohe Lin Thanks. .