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 45885EB64DC for ; Sat, 15 Jul 2023 03:50:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C73596B0071; Fri, 14 Jul 2023 23:50:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C16936B0072; Fri, 14 Jul 2023 23:50:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE9F66B0074; Fri, 14 Jul 2023 23:50:46 -0400 (EDT) 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 9BF746B0071 for ; Fri, 14 Jul 2023 23:50:46 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 67F9EAF8BA for ; Sat, 15 Jul 2023 03:50:46 +0000 (UTC) X-FDA: 81012469692.12.09A0934 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf24.hostedemail.com (Postfix) with ESMTP id C98C0180015 for ; Sat, 15 Jul 2023 03:50:44 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QKcM6d31; dmarc=none; spf=none (imf24.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689393044; 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=ccG7mskW8Dq9YRopcLjZW0gxB+SYHaHO1+yWP7Eip+Q=; b=UKgZTppFTvOc90Ru/osUKJ5nJIUNiS/MyJI7qbzSKuRHcnOH14xPfb+RbaXp5c6xNTwgfI c1RuT0IdYnPgj0rgqDq7RZgPt/tb/ES1kr/1Zx7bEqN9Bbjgqkpa9XAhV6qVMc5g3EJZIi 98ADd04jh10M1Fc7+6ZioeFnj9islsA= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QKcM6d31; dmarc=none; spf=none (imf24.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689393044; a=rsa-sha256; cv=none; b=cjwj0IVv1pgK2TIyG9BRTmK0m4zwbja5AlUEK/dupcsSiBnEPozRx13rSIjv5Wtbxegn1K RlLOTBQDuoySybt8V1hxBLwiXp1Cz16tv6ZZZujsu5I7/GTnPUWIctl4H1TiT1ViJ4rMhL OreL5U7odGWAADdtZPoozO3CpYGCeNE= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=ccG7mskW8Dq9YRopcLjZW0gxB+SYHaHO1+yWP7Eip+Q=; b=QKcM6d31KsZm3FfuNhdVNbgdEq zrh59dM/2Co+6wVeyGxbGC2/3/1Z42SqrXbN9UBiKLfDHPyy70NZbPq5I0p3hGsSWRSP+Z8XWymnm DLn+fsLWqsbLPBDHAwXLpmeam8PGkx3kIe2ISps1qDjFdcC03E39htrrUHomBsVCjJGMV8POLJC+J 2uhesGvypH88hyLFp4zQWXgItoPxPv3itmADbr1ymB3lJwfrjeBNdmUsUldMxsBBa5rwAU+pAhGFo gBpH6Uop2pimj92agwluNhOZG7ciUOO6NSgkyLYRZ7WM4t4cqeY9eifCBLQ5ZMMg40Ls+S2dqlkJY 9HwVIR3g==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qKWId-001nY7-Vz; Sat, 15 Jul 2023 03:50:28 +0000 Date: Sat, 15 Jul 2023 04:50:27 +0100 From: Matthew Wilcox To: Miaohe Lin Cc: akpm@linux-foundation.org, naoya.horiguchi@nec.com, shy828301@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] mm/swapfile: fix wrong swap entry type for hwpoisoned swapcache page Message-ID: References: <20230715031729.2420338-1-linmiaohe@huawei.com> <20230715031729.2420338-2-linmiaohe@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230715031729.2420338-2-linmiaohe@huawei.com> X-Rspamd-Queue-Id: C98C0180015 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: yro5kexwn8wgn4pazc3qhrtos5jay5y8 X-HE-Tag: 1689393044-486349 X-HE-Meta: U2FsdGVkX1+Aa7cmjuIKzMbRTkOuiKApsQRZuSB6GdKExltKbXsRJbEI4Cs9WFfF6uDcNIfTGRphnETy15yjVQkFVOtV1pl3YIMnVc+2LfvbJ+beOfYEHoto+Kwctaib7iDr2IDVyO0xV+5v/hk214xBYNjmHJijLhq+vr4Dt8DckWe2wwQGw56Mhc/G6NjHbacUXsdzRyaws8ORDbaEeG8+522We3WxyVQz30D3sHB5SS70gYl3v/fSY1LJWcq4/kl+dF3NAzPrL9SoKNAf8ywZn0oVT5wrBuuE2N2jvkUI2YelWRAgPfeoI120bvZihKYIAkjO8gEwmvfFMqyoaCWEaPECx9UdGJd6SgHFcmOf1d3CRuWEsaAOqUXKgZF9bjy2suD9sGnZ1WgJfMpw/O/UQnnSrOcb/gHZdZqosJbijlUIxQT87My8F9W0hBkdSnqs4RMvHsLMecjEKtgOKWUNDFe2CIV75p5Tpu3Q/7zkxfWY6tgxxYN+R5Ln72DcrT7O8ijb5uEehwnRy7f1Oeovg69yhT4rIbsEEaTHvwZnwzQvcayReyH14US4P3L1vQ5llH7kPcjfpvoFFqsyBSo0OyTMkRhDufrxE6x6284+ySexYCkSSKzAot4NnUoKMOP3hipCnBt7UndFXaknwTZv3+zBzZDZy///sm6P+CQjXOYRnduKGFBq/5QKe2khSMO1FzMbktiBDHn4uQ0PoclQ84UnbbP64ivFqSNpN2t1o4t72sKyc3KT7DXv/KGSJRx98hQxOEUu96lJT16edylqPanaIvxtlExbEWH0SzP4bEquoYP0//sBNIpEz/iYDEmUc3eGimuxXEYiHU1YOfmCE9WCSaCMJHKlSiaFLJstUjgz5bfhfML6K08LXuuQndth0vg/VwJ1wPTlgSvqtonPGPaflMQjWPheZp43zF3Z6FMZ/LGlddjzFYoD5ZWtwmH2IbfMn6bF+cwtvPo PD/6eXO2 zk0tP/HzWb4A9/pWoLb0RkFa4WMs7pL3YKhf5p0KvQq9o2UxjaZuGX86amRJEdDHASHJBMDUX4gDw/CKVTv+azQ4pWutIEZ3wmEXg5tEaXwnKd5pGux7l531kTz2MYKLuz86K6wxwXeE/mW8= 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 Sat, Jul 15, 2023 at 11:17:26AM +0800, Miaohe Lin wrote: > Hwpoisoned dirty swap cache page is kept in the swap cache and there's > simple interception code in do_swap_page() to catch it. But when trying > to swapoff, unuse_pte() will wrongly install a general sense of "future > accesses are invalid" swap entry for hwpoisoned swap cache page due to > unaware of such type of page. The user will receive SIGBUS signal without > expected BUS_MCEERR_AR payload. Have you observed this, or do you just think it's true? > +++ b/mm/swapfile.c > @@ -1767,7 +1767,8 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, > swp_entry_t swp_entry; > > dec_mm_counter(vma->vm_mm, MM_SWAPENTS); > - if (hwposioned) { > + /* Hwpoisoned swapcache page is also !PageUptodate. */ > + if (hwposioned || PageHWPoison(page)) { This line makes no sense to me. How do we get here with PageHWPoison() being true and hwposioned being false? > swp_entry = make_hwpoison_entry(swapcache); > page = swapcache; > } else { > -- > 2.33.0 > >