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 C1687C636CC for ; Wed, 1 Feb 2023 01:23:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 19C616B0071; Tue, 31 Jan 2023 20:23:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 14D8C6B0072; Tue, 31 Jan 2023 20:23:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 013EF6B0074; Tue, 31 Jan 2023 20:23:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id E69136B0071 for ; Tue, 31 Jan 2023 20:23:36 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B81EB8088D for ; Wed, 1 Feb 2023 01:23:36 +0000 (UTC) X-FDA: 80416975632.05.D0EF1C9 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf21.hostedemail.com (Postfix) with ESMTP id 4980E1C000A for ; Wed, 1 Feb 2023 01:23:32 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf21.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675214614; 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=yUm9sOV0fWVi4w+Ihe4AVwpbEQY1x78Vjwa3bFagYNs=; b=ckNnX14NvdwG0XKkaKvJMV9GOHu/tjQpCL1dRUR+RqdW+qeVXw7pvkvpTA8VkTGSz7nhWl VMZvyctzxBXNdvF5TdD8J1sAkuxoljLAe45h3PMW5W3AAOUHdrIwr54OyeYipgZPt8bi0c O1ZA80BAq2jHlvRItOuw5Rjl6xLHILg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf21.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675214614; a=rsa-sha256; cv=none; b=H5+yyqf0i0R7eSjujc/d9855Zje2cIf82wxSMyHbew5rc/DM8E+tafhJ5oWRrfBSzk0mEB kF8W0cncOhYPrDp6H60xZjbjcGdVL9AMuEgyneaXvM8lUdlXEpsyOVnZLutx6L5guUPnj9 LJH/gCqrg3zzseTCPcZCKbc2x74QVeo= Received: from dggpemm500001.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4P63z95QwVznVDY; Wed, 1 Feb 2023 09:21:25 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Wed, 1 Feb 2023 09:23:27 +0800 Message-ID: Date: Wed, 1 Feb 2023 09:23:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH -next resend v3] mm: hwposion: support recovery from ksm_might_need_to_copy() Content-Language: en-US To: Miaohe Lin , =?UTF-8?B?SE9SSUdVQ0hJIE5BT1lBKOWggOWPoyDnm7TkuZ8p?= CC: "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "tony.luck@intel.com" , "linux-kernel@vger.kernel.org" , David Hildenbrand References: <20221213030557.143432-1-wangkefeng.wang@huawei.com> <20221213120523.141588-1-wangkefeng.wang@huawei.com> <20221216014729.GA2116060@hori.linux.bs1.fc.nec.co.jp> From: Kefeng Wang In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4980E1C000A X-Rspam-User: X-Stat-Signature: pt5yqnshri8hzfcararb4dzmrt1qzi6c X-HE-Tag: 1675214612-139048 X-HE-Meta: U2FsdGVkX19o50tCm9x/GGOAs0JWGZIHEkeF5XVbanfnQ6/nlNL1TNz3p05Ew1oXDmb4mHUIbaQg9kG92a+zQSZZgZxTtmnXJpRolb0dMfbxrFYGpqhKstRNOnKC8h6Tvr81gl21YASuxbZKzpYS+6hKBTjXwcWoPgSCcdHvQbvXwRh9DQjdRgJ5kniFsfeOn6t34jWBXhyrACWcArCR4Hr4cZ/O2pIaCb8S/hmrr20Hq5HGp53obYeBC1w9chCse+LCVwRzCysLBqK9MnGGnj2mgFMZBQJXZ36vDoRiLnOCLMBeVfXuuwnPpY/AJOjcrfLm1ulFlBFQonOdAjkQOaVHWr24ZumYFjl/gazCS/tLBTW0PWWjws2qYPZa+gtNx6ExvpGerdE9H3ztjBP6ScXgexy4386sWSh0QIuUpJoCwXkJsO8p+tcTreqRGogVn0M5wuZ3/HCA8+HpWsOrP2pBIgyyqLTUkYowQ8nuGavE+GGgYF/Q/tPu+Nd48797s0SSMqqk1bLkuX49F3KKZvYWNaJJn5sNUoKaCpZ6blTRsrm7HmmYv5mfphafYEpilXM43je8SyqXLDA3u3m4YDGROa+sES+KtSuhIhiOEM5GtA6jdMjmGpxOHoeErKfMoj4Ohiq2Zw08kIoviuIW5anixIwahAShqFMX3kpkH2axSr1T2R3uB0eTRFig0LC4RZYM+F+MR5jbl1icBAWlQ0ZfSomIUC+2mkpRP6NlYapZv37owbkIzH1UmbjNegImzS2H+4nK24WM+qbeIuoBz6FDQ9vbfRpRVpuWXruwuTTghLpuCPZdpPYSUH5EqzE5AUSKA1FmIP1Pl2myIg8/6aOfS2vKfKmUaAYU0AnKU2+lYKtm42IAZmDeWcBTv9ZlpP/UiE4gfGAzG5B7x7h9+AFnNOlDopL1J7XqUO28yHRPTnYHflTcC9+EGKV/2/Y9Y+2ka6TCbKTZchDjILz BaKe7I7N qRFk3ClkxWUczUHeVLJZD3xrIaNKnjnEKttc3olVGLe2TCHyghBSqArd9tMl8atvYTtc0v5k3H/eQid6Xm4hAbw1t3X4Ep50Ra1NaA/6haX6qUQJP0IXbR0PViUWGS7aSBEgfJLUlqUxXGUUzRD9J0JcGY5Z/FonG91Q7PRNWNk5I/yOBNGXzBvDdncLRXxd7qkzfx71J8RjYzda6pD9qrVWAGSReD9trMIwAkrAWIYHGwK4= 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: On 2022/12/17 10:24, Miaohe Lin wrote: > On 2022/12/16 9:47, HORIGUCHI NAOYA(堀口 直也) wrote: >> On Tue, Dec 13, 2022 at 08:05:23PM +0800, Kefeng Wang wrote: >>> When the kernel copy a page from ksm_might_need_to_copy(), but runs >>> into an uncorrectable error, it will crash since poisoned page is >>> consumed by kernel, this is similar to Copy-on-write poison recovery, >> >> Maybe you mean "this is similar to the issue recently fixed by >> Copy-on-write poison recovery."? And if this sentence ends here, >> please put "." instead of ",". >> >>> When an error is detected during the page copy, return VM_FAULT_HWPOISON >>> in do_swap_page(), and install a hwpoison entry in unuse_pte() when >>> swapoff, which help us to avoid system crash. Note, memory failure on >>> a KSM page will be skipped, but still call memory_failure_queue() to >>> be consistent with general memory failure process. >> >> Thank you for the work. I have a few comment below ... > > Thanks both. > >>> - if (unlikely(!PageUptodate(page))) { >>> - pte_t pteval; >>> + if (hwposioned || !PageUptodate(page)) { >>> + swp_entry_t swp_entry; >>> >>> dec_mm_counter(vma->vm_mm, MM_SWAPENTS); >>> - pteval = swp_entry_to_pte(make_swapin_error_entry()); >>> - set_pte_at(vma->vm_mm, addr, pte, pteval); >>> - swap_free(entry); >>> + if (hwposioned) { >>> + swp_entry = make_hwpoison_entry(swapcache); >>> + page = swapcache; >> >> This might work for the process accessing to the broken page, but ksm >> pages are likely to be shared by multiple processes, so it would be >> much nicer if you can convert all mapping entries for the error ksm page >> into hwpoisoned ones. Maybe in this thorough approach, >> hwpoison_user_mappings() is updated to call try_to_unmap() for ksm pages. >> But it's not necessary to do this together with applying mcsafe-memcpy, >> because recovery action and mcsafe-memcpy can be done independently. >> > > I'm afraid leaving the ksm page in the cache will repeatedly trigger uncorrectable error for the > same page if ksm pages are shared by multiple processes. This might reach the hardware threshold > and result in fatal uncorrectable error (thus casuing system to panic). So IMHO it might be better > to check if page is hwpoisoned before calling ksm_might_need_to_copy() if above thorough approach > is not implemented. But I can easily be wrong. > Oh,missing this one,there are only two caller, one in do_swap_page(), it has already check whether the page is hwpoisoned or not, another is in unuse_pte() which only called from swapoff, it is not a hot patch, so I don't think it is an urgent requirement. Thanks.