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 7EFBDC433F5 for ; Mon, 22 Nov 2021 19:28:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 01B8E6B0071; Mon, 22 Nov 2021 14:28:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F0CBA6B0072; Mon, 22 Nov 2021 14:28:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD38E6B0073; Mon, 22 Nov 2021 14:28:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0065.hostedemail.com [216.40.44.65]) by kanga.kvack.org (Postfix) with ESMTP id CEFAD6B0071 for ; Mon, 22 Nov 2021 14:28:34 -0500 (EST) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 9702E8B761 for ; Mon, 22 Nov 2021 19:28:24 +0000 (UTC) X-FDA: 78837552528.04.BF4C210 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by imf22.hostedemail.com (Postfix) with ESMTP id 8F8C11924 for ; Mon, 22 Nov 2021 19:28:23 +0000 (UTC) Received: by mail-ed1-f51.google.com with SMTP id l25so64831438eda.11 for ; Mon, 22 Nov 2021 11:28:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Da+KzklQFIlWENy8D+tHXuv9krm2/h7FZ0eALhOpcug=; b=Nea/Zt5AW79UiHvGYPTpN0LhB4dIet5fb88AZcNMpfisiQFpjTpq8BhvBdMIXuc0zE yPoGY2WZKy7ppbw0IEyucm84foPGo/aAfyAAGBjF4K7SL14ADiY4rioesKsO/JPyJ0Hb pWGcCHB9UTb36Hcee8IUoWFqltGh2eDJvJJNEkXArUaeyjfPPNyjKkBD1T4atpZpdbxd 7oSzgDGY4q6oWUiMVPxmkaPnUm750EiLnMg9AHce2QmAD/8KIMDjUg0swmotJ+tXBIFZ F9xqi3PCdYBgP+xG936cvrBD7a7nVZlxMD/W7f6Ly/aGXCBjcZ9ewCNhVxS73sc2a47+ QkGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Da+KzklQFIlWENy8D+tHXuv9krm2/h7FZ0eALhOpcug=; b=H6XGs8F/4D5I37ymBkk8EASgWHka0A0WiQ1NzgIVwdOn/qXXHO+2sRAo9WbyYIT1Jm qJh1B1kJXpiAB2GQcLXIPC4sdGNlTV9BPN2hi7+m6ndguhycJLvVPWvGVrlM+UliF2Gn 7jVBtIu4C6nDzHDHV5pUwF1Ncu0KzJkS8n63J4VlfPtvvavaxfveG8WTmq7jrEf67ulA nXpfblIP8GN/V+mjU8eEZnqQgw1cR0tUB0Zph5F/l8YCU8y9sKLr6ED2ZC+KtYDxCZj2 hMgC9CtAs8H2lIVKIbdzk+MA3cLzDiOriKoqCnH8puiKRbXlM7apgj1JjyEBLrITN9nF anRA== X-Gm-Message-State: AOAM5300z1+VbprFBTkOmyrL82KQw9dgwQ+OX2co3e0htxYUkPnzYO04 FAEr8G+CHeY9wY7JRjKmRg18AM2c+RTZoBUn77Q= X-Google-Smtp-Source: ABdhPJypfd8C7ZkUur39/GvAQulsgBqPaR/zMaha5xZAzPaWpvV+DHID0tuuX1k282mRrHD7xo23mxtalVwjnIMlu+s= X-Received: by 2002:a17:906:4787:: with SMTP id cw7mr46785292ejc.311.1637609302391; Mon, 22 Nov 2021 11:28:22 -0800 (PST) MIME-Version: 1.0 References: <20211120174429.2596303-1-willy@infradead.org> In-Reply-To: <20211120174429.2596303-1-willy@infradead.org> From: Yang Shi Date: Mon, 22 Nov 2021 11:28:10 -0800 Message-ID: Subject: Re: [PATCH] filemap: Remove PageHWPoison check from next_uptodate_page() To: "Matthew Wilcox (Oracle)" Cc: Naoya Horiguchi , "Kirill A . Shutemov" , Andrew Morton , Linux MM , Hugh Dickins Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 8F8C11924 X-Stat-Signature: 4jfqyksrstcrxk8qb1o8uk9tzh88jfq4 Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="Nea/Zt5A"; spf=pass (imf22.hostedemail.com: domain of shy828301@gmail.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-HE-Tag: 1637609303-979976 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, Nov 20, 2021 at 9:44 AM Matthew Wilcox (Oracle) wrote: > > Pages are individually marked as suffering from hardware poisoning. > Checking that the head page is not hardware poisoned doesn't make > sense; we might be after a subpage. We check each page individually > before we use it, so this was an optimisation gone wrong. Yeah, it doesn't make too much sense to check the head page. And it seems the non-poisoned subpages could be PTE mapped instead of skipping the whole THP. Not sure if this is by design, it seems the hwpoisoned check in filemap_map_pages() does skip the subpages after the poisoned page. Or we should just skip the poisoned page itself? If so the below change may be needed: diff --git a/mm/filemap.c b/mm/filemap.c index daa0e23a6ee6..f1f0cb263b4a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3318,7 +3318,7 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, do { page = find_subpage(head, xas.xa_index); if (PageHWPoison(page)) - goto unlock; + goto skip; if (mmap_miss > 0) mmap_miss--; @@ -3337,6 +3337,7 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, do_set_pte(vmf, page, addr); /* no need to invalidate: a not-present page won't be cached */ update_mmu_cache(vma, addr, vmf->pte); +skip: unlock_page(head); continue; unlock: > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/filemap.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/mm/filemap.c b/mm/filemap.c > index 0b6f996108b4..65973204112d 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -3239,8 +3239,6 @@ static struct page *next_uptodate_page(struct page *page, > goto skip; > if (!PageUptodate(page) || PageReadahead(page)) > goto skip; > - if (PageHWPoison(page)) > - goto skip; > if (!trylock_page(page)) > goto skip; > if (page->mapping != mapping) > -- > 2.33.0 >