From patchwork Thu Apr 7 13:03:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miaohe Lin X-Patchwork-Id: 12805220 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 F0927C433EF for ; Thu, 7 Apr 2022 13:04:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D6AAF6B0073; Thu, 7 Apr 2022 09:03:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D6AF6B007B; Thu, 7 Apr 2022 09:03:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67B9E6B007D; Thu, 7 Apr 2022 09:03:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.a.hostedemail.com [64.99.140.24]) by kanga.kvack.org (Postfix) with ESMTP id 469176B0071 for ; Thu, 7 Apr 2022 09:03:38 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0E7E054AF for ; Thu, 7 Apr 2022 13:03:28 +0000 (UTC) X-FDA: 79330099296.15.B4A14C4 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf28.hostedemail.com (Postfix) with ESMTP id B94A6C0007 for ; Thu, 7 Apr 2022 13:03:26 +0000 (UTC) Received: from canpemm500002.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4KZ1hv5s5wzFpbF; Thu, 7 Apr 2022 21:01:03 +0800 (CST) Received: from huawei.com (10.175.124.27) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Thu, 7 Apr 2022 21:03:23 +0800 From: Miaohe Lin To: , CC: , , , , , Subject: [PATCH 3/3] mm/memory-failure.c: dissolve truncated hugetlb page Date: Thu, 7 Apr 2022 21:03:52 +0800 Message-ID: <20220407130352.15618-4-linmiaohe@huawei.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20220407130352.15618-1-linmiaohe@huawei.com> References: <20220407130352.15618-1-linmiaohe@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.124.27] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To canpemm500002.china.huawei.com (7.192.104.244) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: B94A6C0007 X-Stat-Signature: y8wekhsbmtfgxegb9dt5okw6bbqujzsq X-Rspam-User: Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com X-HE-Tag: 1649336606-90993 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: If me_huge_page meets a truncated huge page, hpage won't be dissolved even if we hold the last refcnt. It's because the truncated huge page has NULL page_mapping while it's not anonymous page too. Thus we lose the last chance to dissolve it into buddy to save healthy subpages. Remove PageAnon check to handle these huge pages too. Signed-off-by: Miaohe Lin --- mm/memory-failure.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index bd563f47630c..3f054dbb169d 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1046,8 +1046,7 @@ static int me_huge_page(struct page_state *ps, struct page *p) * hugepage, so we can free and dissolve it into buddy to * save healthy subpages. */ - if (PageAnon(hpage)) - put_page(hpage); + put_page(hpage); if (__page_handle_poison(p)) { page_ref_inc(p); res = MF_RECOVERED;