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 44009C433F5 for ; Tue, 1 Feb 2022 17:41:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAC4F8D0075; Tue, 1 Feb 2022 12:41:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C5C356B0255; Tue, 1 Feb 2022 12:41:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AAE828D0075; Tue, 1 Feb 2022 12:41:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay030.a.hostedemail.com [64.99.140.30]) by kanga.kvack.org (Postfix) with ESMTP id 9DD256B0254 for ; Tue, 1 Feb 2022 12:41:18 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 929FD6116A for ; Tue, 1 Feb 2022 17:41:11 +0000 (UTC) X-FDA: 79094927142.02.B5E9EBD Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf16.hostedemail.com (Postfix) with ESMTP id D12DE180005 for ; Tue, 1 Feb 2022 17:41:10 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 211HEfa9015896; Tue, 1 Feb 2022 17:41:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : from : to : cc : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=BdDA3QVVXPH4jPqdO+Fpk09H6spXtno0sU83ZI1UN2M=; b=xQFCW3Y3OIBWQPkEINHqLT0Eif/5AH43NnQp2isC79ipKVS1Z47LQIeofeYfqZfX2pDb Rb/wSrOOH28Y6Iu1ZawvoLI+tSTqcAeBKDWGtY+uDY6+E9SgsPCMtZfzHT4ax4+54TA7 nXZ2sa89YGkKLo3zutNrcJJkgu8IjuxEGlgaoWEkKwrRHSyjNTqN0cwoxwsuR7Es5uXv ncLOWKkviAz/VWZN341cvpu4EUKCwgh8yBPq9T36Fa8ts2YsunkT0FcuzHCaksWPQTF6 7AhZg5JnY9DAj6MX+b1PKqe1BkbON8K3k9GIJyPIc5twwmmZRY67XtJVp2L/MOpUYdVE VA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3dxjac3pqs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Feb 2022 17:41:06 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 211Hb93S076419; Tue, 1 Feb 2022 17:41:06 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2177.outbound.protection.outlook.com [104.47.59.177]) by aserp3020.oracle.com with ESMTP id 3dvwd6maer-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Feb 2022 17:41:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XQekyEgc/q5TryDV1MBifgG+hQl6F+0hMx6d5XmMr2C+4uuQSNNjgL38/70wxhRKjVPJIhp8MJpaWLkFALfrt1TB4Qqylh715GfyiaUMTeQonBxVM9cbFzComF6wbZbGajcaDZEZBpL+govo+F9Db+ebWZ+db9oQpInvCce7xM8DM3vRVJDdL02+iqUlk8rH+g0AmyF/X8pxcEG4mYVHNSBESfl54X912pl6+YrgckQHmg24hhmnQdBf12n6a4hIH8jPY5Qwbuimj+8r2qAuPkPh/VlqgdCX1p2xWgT2B9QTH3VfJZKz+ECMo6fUhUVdSP+qdNQMd0I+OlL24oU59g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BdDA3QVVXPH4jPqdO+Fpk09H6spXtno0sU83ZI1UN2M=; b=F80KOMvwhpfrlAQP9VZzpsji3UCjhXksoujvyWAxFcLtQYuBvwgivoDkcUZLIWG5pjPuhAJRPzMGEnJ0fvp2ujk1ti9tcrUiZ/geYLrNONKTt3jBXQ4U9QeNKW5TFnE5KlWTTsLZ4yYDxwOYo4OPREkqbIi/G9fQm2wIPYd468Na7iDPMGzzFHnC11u8WP8laOH2VZD248ASJGq2p0qps2XOVnYbIpC/6rghDbRI6MQgFvyNQL4X/zNMhTNh+69aQpYjXmzwHu70dEKocZMZwQoScCz7595IIlN3Lq7BeNvhnu1kyqeN6Nm5mWEczsqXFcdyW0xQLNFciV+SQARUqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BdDA3QVVXPH4jPqdO+Fpk09H6spXtno0sU83ZI1UN2M=; b=zOqhOBlJdGxqWEbgKv4A1g0Hj4UN2A3l6b8bTFGj2NcaKEOk/qrHBspwdGY4NJ6917vXh8TKhshgVlbJz2C4GhVykb+5HJfNk0voPE36E+3VDEf7OmHImhNqj+AzpcyewkuWOszh9WOvCfqBuNHOONn//mq6K0FGkPu92Htl27o= Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by SA2PR10MB4427.namprd10.prod.outlook.com (2603:10b6:806:114::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.17; Tue, 1 Feb 2022 17:41:03 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::4910:964a:4156:242a%4]) with mapi id 15.20.4951.012; Tue, 1 Feb 2022 17:41:03 +0000 Message-ID: <54f9f4bc-48ca-5c18-d923-a779c2c80b86@oracle.com> Date: Tue, 1 Feb 2022 17:40:57 +0000 Subject: Re: [RFC] Missing compound_head() in memory-failure Content-Language: en-US From: Joao Martins To: Matthew Wilcox Cc: Jane Chu , Naoya Horiguchi , linux-mm@kvack.org, Andrew Morton , Dan Williams References: <30a327fd-ae49-7412-ef77-9ec19480626e@oracle.com> <74d4bd51-6f16-542d-9710-3c609346cfe7@oracle.com> In-Reply-To: <74d4bd51-6f16-542d-9710-3c609346cfe7@oracle.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0057.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2af::14) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4940e5cd-d51a-4267-ff8e-08d9e5aa0485 X-MS-TrafficTypeDiagnostic: SA2PR10MB4427:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tRzAH3d9mLAkC5BFdD3DBYIBFVg90WoLDn9uBI3d4DcY/nB15Qk5xpmRKybfkeVxLvL6zSXyqV9pjknDpW+69i6UCfzBwc1gg4xO4dxDqLYOLAYGDiU8sDaTGqGRTKotAyTYzi4WQU2ORyrwKvUmK6OiNZ6vy1KW8YyhrAL2kWlNbE4zrE77xSkaj7O9vM1J1SaYaIxrUuQoLaSeraBu31dkHJuIlYUfJJ7+SnycZwYUmfzlbZnnw292lNLHwIcfbvI3O+IoUc+b6x+vHZAPrcj8i8xi9AY69t51thPTgTXNQ5opnNEqfVmNdFY2OyGqunGNZhR55GJIr9cS7eOlNE+wocDh5qfg7/kGrcZ4k/qn+N2fmBtO7QBtYevCNJUGoRRLISbwR0ON+4ovHI0RN9pRbUdXJTpWFbe4WOp9Xc5w68QBMARtl0na+7l2Q2hUqZBuGsvkL1A6YfQ3uBwPx+wOSB8PJoAfkrzZEudY+ql0fA397pVUor+6nqWoY/j6ztrVyI2/ehV+b0pJ1FpZsMcyOKkDi3asZHjJPGrTEWV32g4LJHj0C6oM5R5HaY58f+uVRoRHi0xuUUc0wavxRTNwkJQ3jKVFUV6n3LjrpJqAfFz4vHzCiC9Y9sR9R0vxqLwfStASLR3uRJotgKWY4itOvWUvIrGvZ9SXxGx1BZmsgVucA2d+2R7RAkveyGBDjC8ZN3Pam8wStB26QJ5tHNu/tUPSTIMn9nOrIuL5FhGYND2ZDWBzjqwdan7mlDCoY2sK4w31fdNqME5kyyLZm0BsFr14DJ/ot5oDCb0b8Sg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BLAPR10MB4835.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(2906002)(31686004)(54906003)(6916009)(2616005)(6486002)(966005)(6666004)(316002)(38100700002)(186003)(36756003)(86362001)(26005)(66476007)(8936002)(6512007)(31696002)(53546011)(4326008)(6506007)(508600001)(66946007)(83380400001)(66556008)(8676002)(45980500001)(20210929001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MGFWb1cySFplNStvS1dCT29HdWNuOVFPMEF2K0hjbHFucEk1cW9SRm5lQ0JP?= =?utf-8?B?U0F3SURzMkNVaWtNem9qTWJTM2pLZDhLRERsQ3Z6RFlHN1kwcjBlV0FzREF0?= =?utf-8?B?cW42SFpGSzBFZjZkbUM2eWIvWDRSMS9XTTRPeWtHY1lJZXhManNTMEVtRkht?= =?utf-8?B?ekNoZ1owVEVyaS85aXJxeDhnemd6NFQ4NkdONUdxUDBsbXJWYi84SmFKZ0NY?= =?utf-8?B?dEJvcUZNaTc1c2p6QTU3VUR0WGFhSEE5Q1VqdklIQWJrc01qSkVqVVpBa3Nq?= =?utf-8?B?SXhlNHZMYWVVZmp3OHVMd2ZMaGRsL1I3TlVZeHY5NnRNT1lvbnRVem9MOEVn?= =?utf-8?B?bmJHQXlRYlBNenRXY1o0MkE2Q2s5WDJDTmYzTFl5UW9rMFM1VEdyUExhWkdM?= =?utf-8?B?YXNYMWlTTW9sK2pldks5azJVaDRVQmJneU56bTU4bWNKREE4K2VKUlZZNXNo?= =?utf-8?B?MHc1bEFuZDh1cFh0bVhUcmRvNWIveEVvZVZxL2lEdWxwL0xEQVpyOCtROFBL?= =?utf-8?B?R0RtOWEyc1JwUTliSWRLVTFCRWxZUVVFYjBIQzhVZU92S1k5NDVkdHVhbHJ5?= =?utf-8?B?K3p4alBFSmZTdDNwZ1NBQ0Nzdlc0QytxZDdZVDhNRGJuUWxKelBEcTFEZVdE?= =?utf-8?B?bVJKdGhhSUJlVW1PUTVPcnZRVWVaS3JySlA3U1UyTzc4bTZjblRndW1JTmwr?= =?utf-8?B?ZXRsSW80ZjdEVUVkSC9QbDdtVVBIQVJsbmNFbjRWKzdwTGVXTkZiQ1NYa1pl?= =?utf-8?B?ZUZtbUNoaW1ndjM5alJpemt5YUdlM3B0OXgxUXZUUEtYOFp1NGg5TXpQM0lt?= =?utf-8?B?UVZtWlpjenJoblZzRS8zb29jaDhDYWN2aCtMM3pNMS81cHN0YVc1WXNQam1m?= =?utf-8?B?L2Z5Z2NTY3VIT3lIZjdnMW5mQnBIUDliWURaZVhqRXJpcWJIcVFDYUZRNTNp?= =?utf-8?B?ZUQrYWUyUUwwSC91K05qZ0djRHdvQ0wxWlF2S1lSa2pZaXZHVUNBSW1RR3Q2?= =?utf-8?B?K2RjWHEvNURNSEVxdjg4ODViWExraXJUS1dsYnVwTWF0dEkyckJKUXNneVRU?= =?utf-8?B?bTZDZDJxd3piekxTNllKTnRaYStLZFVZRWhlTUsvM2dCSXRZZDJLNDcxcWRm?= =?utf-8?B?Vmlpa01KaVJJaGZObEdxSkpvZlpJaFRjTXpLSjZqN251ZWpSR0c4dzVVamV5?= =?utf-8?B?NjhENWFKYXNMYk5UTkRQWE0vQU9lVkZYQkxRdUdudmdkVTNYRlZQQWVxVWRq?= =?utf-8?B?TWNDUVFrYlRPY0Y4NTlPZXVTR3BQNGZDblJoZkJvT2w1SjMrR3lBdDNxdmVL?= =?utf-8?B?TnJVeEdtcVR2eHpTZkdRNDVmQkpya3p3d0ZXY3Znd1IxamNCNmhORldmM1JQ?= =?utf-8?B?bHJrTkJpcFpZclk0QVhVeDl0ckxNbDhQMkZEWi9MeUF5YkJOczJUeEJmUGpP?= =?utf-8?B?TlVMWWNtRHVvTU5QcndhS3hNa1RiRFJGMkdvN2FjTzdHa1dLUUh6Ty9IaWl2?= =?utf-8?B?YzNzQlEwR3FsUGkvekFKUlBUMnhCTnU5MzV1a1lLdnpJYTczZm1zZFg4V3ha?= =?utf-8?B?UWxnbzM1WVU3K1VwTWlnZ1Ura2lsYUkxRlNYRExveGNWaGh2Rm5uOGpQVUxM?= =?utf-8?B?YkR0aDVaQStrV3BYQS9Mdk9WaDZtc3ZKWXZNVncwZ2krVlhDUmxnQkJVemsr?= =?utf-8?B?YzZ6d1EydXVKRmpKVXB2cVI3OVMzUHFjT3RDNFFER2FnMHZRV2VzWEpoUWQv?= =?utf-8?B?TkZ5UHpvWUQvU3IycEI2eFRBamxud3UxMWNiWWxDTU0yTFlRYXFERkI2UkJy?= =?utf-8?B?RDRLNWpueXZCditRdUROdnlxSlVpRUdBeEovVDVhZG9nWG43blNaa3Qvdm5C?= =?utf-8?B?cjJGSkc4VTBSTGt0UnpINmVILzVEanJVVStpQ3BxSHlxMkxINmlyS3FHRzlY?= =?utf-8?B?SUQzZ0JSOUJXNnZJZHFRMXFSdXZGU3U2WXFEM0FhSHpmdkVqZGdtSkxUV1c1?= =?utf-8?B?UEljMGpoSlRzanIxNkV1Zll1RDRrNVA2WlRkVFBNWFZRSndseUsyVDVxR3hl?= =?utf-8?B?NHdRbDFiMTE4cEQzQjMzLzJPTE1RTmV6QVFKR0lORlhmVGh3d2VwNXZVUVB3?= =?utf-8?B?WnBTdzhSWlY3ZVRBUU1xR0FOcHlVQUt1bS9iODc0SUN1ak92a2NkSHpmakZS?= =?utf-8?B?VlcwRVRhMlVLZllBV1k3MnB6V3FmVzNWbkFXOVA2UGFvMm11Ui84WkQyR2Jx?= =?utf-8?Q?foJ2urVe8NPhIz5OqYqos3HnSgupkJ7uI9ZmbHlQ2g=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4940e5cd-d51a-4267-ff8e-08d9e5aa0485 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2022 17:41:03.6789 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cIHupmDWlIH/GVOmiAkoGIp2fP5nDXJfJLndP2ZRInmOQOXKKSheCxjtWvRhVyQ0bhY5za9D2NG+hCTiHn2rbEFP+t4j9Yqtmzh9YzIWy4c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4427 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10245 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202010098 X-Proofpoint-GUID: jG4hr2Q_Jd1SFTBTQi2R1tzH_BwZUKUL X-Proofpoint-ORIG-GUID: jG4hr2Q_Jd1SFTBTQi2R1tzH_BwZUKUL Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=xQFCW3Y3; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=zOqhOBlJ; spf=none (imf16.hostedemail.com: domain of joao.m.martins@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=joao.m.martins@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: nil X-Rspamd-Queue-Id: D12DE180005 X-Stat-Signature: 9knjq3beu99wrxuusjm5nku91oagbrod X-Rspamd-Server: rspam12 X-HE-Tag: 1643737270-790955 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 2/1/22 16:01, Joao Martins wrote: > On 2/1/22 15:46, Matthew Wilcox wrote: >> On Mon, Jan 31, 2022 at 08:54:39PM +0000, Joao Martins wrote: >>> On 1/31/22 20:29, Matthew Wilcox wrote: >>>> Unless I am mistaken, you have to pass the compound head of the page >>>> which has the error to collect_procs(). Am I mistaken? >>>> >>> -rc2 already has a fix for it: >>> >>> https://lore.kernel.org/linux-mm/20220129021420.PgBIZm-q9%25akpm@linux-foundation.org/ >>> >>> Earlier in that function there's a: >>> >>> page = compound_head(page); >>> >>> So the @page passed to collect_procs() already is a head page. >> >> It's wrong though ;-( You set the HWPoison bit on the page after >> calling compound_head(), so you set the bit on the head page instead >> of the precise page that had the poison. >> > Considering that on device-dax we would unmap the whole 2M page regardless > of the poisoned subpage isn't that actually representative still? > To say this another way. We do set the HWPoison on the head page, and not the subpage as you say, but we end up propagating the resultant MCE action on the superset of pages in the whole PMD or PUD. What I was trying to say in perhaps a convoluted way is that device-dax case isn't different than HugeTLB that only wants to poison head. If there's a head page, there's likely a PMD or PUD populated (depending what the device was onlined with) and thus that's what gets unmapped. There's no idea of subpages being treated any differently, at least as far as device-dax is concerned -- unless I miss auditing some other code path. fsdax IIUC seems to rely more on the subpage bit being flagged but no functional change here for fsdax as there's only base pages there (no heads). >> I'm fixing this up as part of the folio patches, but you may wish to >> fix it earlier than that. (+Dan in case I misrepresented or missed something) Should we deem it a problem, I'll fix for the next -rc. Just in case, here's the diff stashed: diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 2e2f740c63dc..661c23df8115 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1577,7 +1577,7 @@ static int memory_failure_hugetlb(unsigned long pfn, int flags) static int memory_failure_dev_pagemap(unsigned long pfn, int flags, struct dev_pagemap *pgmap) { - struct page *page = pfn_to_page(pfn); + struct page *page = pfn_to_page(pfn), *subpage = page; unsigned long size = 0; struct to_kill *tk; LIST_HEAD(tokill); @@ -1631,7 +1631,7 @@ static int memory_failure_dev_pagemap(unsigned long pfn, int flags, * Use this flag as an indication that the dax page has been * remapped UC to prevent speculative consumption of poison. */ - SetPageHWPoison(page); + SetPageHWPoison(subpage); /* * Unlike System-RAM there is no possibility to swap in a