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 X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=BAYES_00, CHARSET_FARAWAY_HEADER,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C8ACC4346E for ; Fri, 25 Sep 2020 01:18:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BC60B207C4 for ; Fri, 25 Sep 2020 01:18:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=necglobal.onmicrosoft.com header.i=@necglobal.onmicrosoft.com header.b="E2uMaEMB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BC60B207C4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=nec.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 058266B006C; Thu, 24 Sep 2020 21:18:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 007D16B006E; Thu, 24 Sep 2020 21:18:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E39B86B0070; Thu, 24 Sep 2020 21:18:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0193.hostedemail.com [216.40.44.193]) by kanga.kvack.org (Postfix) with ESMTP id CB7CA6B006C for ; Thu, 24 Sep 2020 21:18:41 -0400 (EDT) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 8E6553655 for ; Fri, 25 Sep 2020 01:18:41 +0000 (UTC) X-FDA: 77299824042.06.mine47_050507c27163 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin06.hostedemail.com (Postfix) with ESMTP id 51EAE1019D8C8 for ; Fri, 25 Sep 2020 01:18:41 +0000 (UTC) X-HE-Tag: mine47_050507c27163 X-Filterd-Recvd-Size: 9465 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-eopbgr1310084.outbound.protection.outlook.com [40.107.131.84]) by imf17.hostedemail.com (Postfix) with ESMTP for ; Fri, 25 Sep 2020 01:18:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mVJq2z6HY6knI0+DHVZ7g+T4f+w5LeMuXquW1r0e7yTnMbPwR+gljyBISw5hQSlc2w4W6TY1+sH7EB2YZnXo84f9RzMJZU2PsCxUviNII7Wonma3R0XhgjL+W7qz60y7V71AZ3v0yAVvgBMmrxMiCmtuKKaAN3Ec+sRSZRt1FC8zacW1vV1nZUk6Z1V45IK2/EGgosukUqEjJEy/P8tCinK+dJx/kLNXZX0PPtG77af+TmLRJRLLpx39MXT7/el/PvwMKDqiaK+QiubrtY6mgbDLaj5f/THZWy+LCHY4MWmbWsQ7NtMecmkZ7f2uPI+ECkVUEovwE/hZOvZL31Jttg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MSepccYPXFNQl6jUbv7GBg7/JEunIGYagpfVxqZyI3Q=; b=LjSO4eB5JcTsQLFYhRdyP9tUl7U8ePkMBuFRtEXOpNZL+mkZ+xSfylY6NIn2JhzpiVxWa8A50ikio0KoQUSDyhUedJVrC0SZc65g23BxqSQyrlpebH3bFGJuKXqNS+U4RTUu6ASVwMgqB/agLnd3ku7SkgXIqNn7TiSBK+cZRjljqE67Gy1f0C84i3STgTd+5mC66gWqb8K0fbKV4YxJ8WjK3QakKATlLVZxCAoUnhcjM7mvp6g4hwjA3tVD+guCi6KMB+jlPgPDy0QkWm+us0MIRtCsPwRtMn4h3qmafaaKbnsVnYO153YLAmYvBgoxxEyilEqr3/sVAwmIZKXghg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nec.com; dmarc=pass action=none header.from=nec.com; dkim=pass header.d=nec.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=necglobal.onmicrosoft.com; s=selector1-necglobal-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MSepccYPXFNQl6jUbv7GBg7/JEunIGYagpfVxqZyI3Q=; b=E2uMaEMBstPoCUpmmOYsyZUyg5qetgQiZo8pte10MfedZ9IikzghiUqMZWqJPvXI0dNZsw0upvTiBMkOgNbtZtVin9GeS6ko9HOFD7Qw8sz8xtXF2/CxNWcRQzQgtyp9SyJXGxXuNOZmaQd3IzZy4h4MD2MU9jO1LYywksR6RYA= Received: from TY2PR01MB3210.jpnprd01.prod.outlook.com (2603:1096:404:74::14) by TY2PR01MB3210.jpnprd01.prod.outlook.com (2603:1096:404:74::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20; Fri, 25 Sep 2020 01:18:35 +0000 Received: from TY2PR01MB3210.jpnprd01.prod.outlook.com ([fe80::108f:629c:d934:9206]) by TY2PR01MB3210.jpnprd01.prod.outlook.com ([fe80::108f:629c:d934:9206%7]) with mapi id 15.20.3412.020; Fri, 25 Sep 2020 01:18:35 +0000 From: =?iso-2022-jp?B?SE9SSUdVQ0hJIE5BT1lBKBskQktZOH0hIUQ+TGkbKEIp?= To: Oscar Salvador CC: "yaoaili126@163.com" , "linux-mm@kvack.org" , "YANGFENG1@kingsoft.com" , Aili Yao , "willy@infradead.org" Subject: Re: [PATCH] Fix incorrect compound page flags store Thread-Topic: [PATCH] Fix incorrect compound page flags store Thread-Index: AQHWhZJ3Og4wKg0ujkGkwEipfrByRaleUMwAgAAGuICAABOjAIAABFGAgAAD54CAD79zAIAKdZ2A Date: Fri, 25 Sep 2020 01:18:35 +0000 Message-ID: <20200925011835.GA28854@hori.linux.bs1.fc.nec.co.jp> References: <20200908034441.16359-1-yaoaili126@163.com> <20200908070210.GA14393@hori.linux.bs1.fc.nec.co.jp> <20200908072603.GA11245@linux> <20200908083630.GA15481@hori.linux.bs1.fc.nec.co.jp> <20200908085153.GA12690@linux> <20200908090555.GA17382@hori.linux.bs1.fc.nec.co.jp> <20200918093458.GA14286@linux> In-Reply-To: <20200918093458.GA14286@linux> Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=nec.com; x-originating-ip: [165.225.110.205] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b007b3db-3f23-4371-3d66-08d860f0ed0a x-ms-traffictypediagnostic: TY2PR01MB3210: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eolgFEeHjokqob32JMjtalzqmsRF8q87HPS4+4M7m+RdwIxtfWTeV3uQHNP8uRNR5yNMiHerN2Uv0k+O6V1GLrm3rt0QA2y8MRZOEP63Qmi2pl30b551y+mBYTVwl9gMi0n+iAORikePDc0bce75hHzvYL/helpLIjZGGbpe60rGsoXOdfa7NcZ12O0FwL/qNWmUH3ETQoUUQXjlhhqiKF767M8X+X19V8la/plQaTaGbvueqr+PEoHqldwkavqHhIKXEh9Yaz9Ljt6/k+FNofW/ovz9lp+MJ+ZWR6S4ypHfahPtSq2FzQaZNqgPa6vVcArRo44rDnT/okkNROUdAb31UlxhwgB9CcC0sgknXPMdMz/FgcRulgzuIx4nTAUl x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB3210.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(376002)(396003)(346002)(366004)(1076003)(478600001)(5660300002)(66446008)(76116006)(66946007)(55236004)(6506007)(66556008)(64756008)(66476007)(71200400001)(316002)(9686003)(2906002)(6486002)(54906003)(6916009)(6512007)(26005)(86362001)(85182001)(8936002)(186003)(8676002)(4326008)(83380400001)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: IVsjW8J2wvLeOdOVkhXJYid3gaXcsbIWUzxQ6NTZPPWuDXSdzUBnrQYxsiBf6tPEw047CEoH9agaZc8ehziUdcP1LKv9Q/G9q7wTlsl8efvKEHETvGxqCUHpTjtqtWQrpdne2ahCAl4nHgXWFiarwiH5rtDVqdC10GvpXN6tYIsq1iEDb9cbHdtSJKPcHjViIozOiX7GB+gN3mbBMw3MqE9GGEyG74Py07XVX9k9o531QcVjpUf6GBKE63YSzLJx85JJfRn8ibBW4XtJEEhICMtT53UXtaeK022jT9uc9kFmZLRasgv34BDNlVriXxZ5ONBELZG3ODxV115L8dTKLRJ8cPhB1TJssvcThRzqYw4FO9cPXUt5oUM1rIvYWbyXCxwJa/V3RpsUcY/i4mIAO22IrrmP2HVkHqW5AI2c4BuH8ncAkkPRNGjjpVjyZp/8nCvVmP1eFSOJUCVNEa5y+oJOTePzmivZIHUKWGeuQQ+CCV5qgttAVLt55YOeecYS46KV9FtlPt0th6GfQq5AdeWqX5tsKPipqdq4aTFS/qwJioqAJC4stKTuWGS411g1Bdb3caOzcL77tXx/KxoLoQoPy+TCw3XivDo4YDE+DeyV1/wuq/yzI1HjHCozFGaGnY0Ip8gaKu5YfM5xKhaauA== Content-Type: text/plain; charset="iso-2022-jp" Content-ID: <76F4127E23D7654B8421F96A88249F85@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nec.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB3210.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b007b3db-3f23-4371-3d66-08d860f0ed0a X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Sep 2020 01:18:35.7364 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e67df547-9d0d-4f4d-9161-51c6ed1f7d11 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /wjQVjv1skQ8D1//fmvIHRYbTLjAGdn031XR8tLqJ02ABVU3m5xqdGE59ciTiE2oPjRrd5tLIpHfsz/J+5P7Mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR01MB3210 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000105, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Sep 18, 2020 at 11:35:02AM +0200, Oscar Salvador wrote: > On Tue, Sep 08, 2020 at 09:05:56AM +0000, HORIGUCHI NAOYA(=1B$BKY8}=1B(B = =1B$BD>Li=1B(B) wrote: > > > > thp just after passing over the following block: > > > > > > > > > > > > > > > > > 1408 if (PageTransHuge(hpage)) { > > > > 1409 if (try_to_split_thp_page(p, "Memory Failur= e") < 0) { > > > > 1410 action_result(pfn, MF_MSG_UNSPLIT_T= HP, MF_IGNORED); > > > > 1411 return -EBUSY; > > > > 1412 } > > > > 1413 VM_BUG_ON_PAGE(!page_count(p), p); > > > > 1414 } > > > > > > > > So I feel that some check might be added after holding page lock to= avoid > > > > that case. Or acutally, it might better that moving the above block= into > > > > page lock is more better for simpler code. > > > > > > I will have a look at this. > > > > Thank you! > > Hi Naoya, > > I have been taking a look at this, and unless I am missing something obvi= ous I > do not think that a new THP (containing the page) can be collapsed under = us: > > We do take a refcount on the page by means of get_hwpoison_page. > We could only have done that if the page was mapped, so its refcount was = already > above 0. > > Then we split the THP, and the refcount/mapcount go to the page we are tr= ying to > poison. > At this point the page should add least have refcount > 1 mapcount >=3D 1= . > > After that, let us assume that a new THP is trying to be collapsed by mea= ns of > khugepaged thread or madvise MADV_HUGEPAGE. > > khugepaged_scan_pmd() scans all ptes from [pte#0..pte#511] to see if they= can > be collapsed, and one of the things it does is checking the page's refcou= nt/ > mappcount by calling is_refcount_suitable(). > > expected_refcount =3D total_mapcount(page); > return page_count(page) =3D=3D expected_refcount; > > We do have an extra pin from memory_failure, so this is going to fail bec= ause > > page: refcount =3D 2 , mapcount =3D 1 > > Beware that the page must sitll be mapped somehow, otherwise the PageLRU = check > from above should have failed with the same result: > > if (!PageLRU(page)) { > result =3D SCAN_PAGE_LRU; > goto out_unmap; > } > > So, I do not think the page can be collapsed into a new THP after we have= split > it here, but as I said, I might be missing something. This logic sounds convincing to me, or another possibility like conversion = to other types of compound_page (like slab) is also prevented due to the refco= unt. The MF_MSG_DIFFERENT_COMPOUND path was originally introduced heuristically based on error report in stress testing, and the mechanism of the problem was unclear. Thanks, Naoya Horiguchi=