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 44BF6EB64D9 for ; Thu, 6 Jul 2023 22:09:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 682206B0072; Thu, 6 Jul 2023 18:09:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 657FB6B0074; Thu, 6 Jul 2023 18:09:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4D17A8D0001; Thu, 6 Jul 2023 18:09:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3EEFB6B0072 for ; Thu, 6 Jul 2023 18:09:58 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 061881A0701 for ; Thu, 6 Jul 2023 22:09:58 +0000 (UTC) X-FDA: 80982580476.08.ED37DFE Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf21.hostedemail.com (Postfix) with ESMTP id B11591C0022 for ; Thu, 6 Jul 2023 22:09:54 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=RHps8PpH; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="z/wCJ4Sx"; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf21.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688681394; 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=u2bvqVA/3lrIuYA/L9/Q8HvU74A+LUn/Oqy2CtLfvhM=; b=cMZRVvN4Fd0UrWqfFb5PRan/kVJDxpcd/xZqndsA7eBDmkzcJ/3Fca+etBaGXCyM0Tb+nq iRnmoew6sjyk8vWNeMA0LW1UjUDA5DbM3RXEUUZnKMcvn7jU1xyhiGzl5WLfe1v9ZswPPf JJqldT9sr1/KbHSQxEsl3a/lF01u7CM= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=RHps8PpH; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="z/wCJ4Sx"; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf21.hostedemail.com: domain of mike.kravetz@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=mike.kravetz@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1688681394; a=rsa-sha256; cv=pass; b=xxdrCOCYgYBHubB5Y7L+e8XvYURNKg26n2ygDNTZ0EHo2aDc0OkTTbTkmlXxBHRfjqzrLI tv0eaeUeUwCmbFe4HTKuEsDfuw4jcHDQjQ3iMYrYtPNlv7WWQE0U+gbv5z5c/dmk/dJE3J AQmt/sS1iu/bhCVZHnOGfgcCW1xDFFg= Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 366KnwVZ031502; Thu, 6 Jul 2023 22:09:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=corp-2023-03-30; bh=u2bvqVA/3lrIuYA/L9/Q8HvU74A+LUn/Oqy2CtLfvhM=; b=RHps8PpHK9RDXBoxqnkz6NR6VnKRvjHblpbFy2R81KhTcFTMzfOsh48CStANUCWIxjWu F6plDDida+B9FzriRnMvBIyJUYjAD9d4diisPLZvBJ/OitO7n+W5pkYJjY0fjmyIMIoz 7utHZnoLYKT7h3uExeu5dSjGKzFSnGz13bI5cQdxPVKe0GjC6Tjx9QM5CCA4Vir18ke/ BlR5wFxe0gzYPaZw0dHoqOTFv585eOyGCI+9OQD6aumfne4rJhRd04qDWdqXB9C2eExP KgRKxOq2J1gWVzVT/Lj5fa681TWw+4IqWr1CcdRNVevDSyReB+/eEk+syo0zuTr2aORR UQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rp507r39q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jul 2023 22:09:31 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 366KKEOv024594; Thu, 6 Jul 2023 22:09:30 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2047.outbound.protection.outlook.com [104.47.57.47]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rjak850y6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jul 2023 22:09:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FoO7dAlX9IN/iyKyQOKDtDubVLjM5HFo6Ht+t6gjlGXztLlI+6PAdpaQJ6++Ayufn36SByo85AIpOeYXMnUN/fVsHs27sgeULwvJujZSljdfO1wGEtMEqZE6aAVpLybQ9+hrunH7q2/M0BNfN1eox3aeQpuT508dgH3wZE6cAw1y8HTww/tkkQ49XC0Ja9ZwQYN9HujwzhLiMvWmPfndRyUb9MkVw9XD6fnXykvv9MEfBef0xgzxVtTIN6phL0Eyqhh+PATPDasQaPZskD1thYY34sD9ZlW975/iXu8c/vBHLj8k6nWK/WLCZPDQrYIHqvLST1xoxtJGC60qnqtjSw== 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=u2bvqVA/3lrIuYA/L9/Q8HvU74A+LUn/Oqy2CtLfvhM=; b=X2qsXh7W89rP/EhGv7XwSCSLbV87t+6/QaUiMMtBfbwoWUn2hp67xmCjFqeLzdsg8CPDDE1vY5ewK/FuYIKH1B6QPpl3N6Xuf7veNaW0W5Gj15Pf1KQjrgCa9XngBL5XSoFWYiAQPvhy1f0VgpGADZ+kBhHuRRFp5v4HnwyeYzoXiLWOBR6Koh0uF9t5TbpIRX6RpqwVyDyf1bROVYvEiVwllrnCel5Iio991b4bzp0NDXqGoHrz88CRJWv7b9q5Tpzk266YV12WQLEcPYF6HTABPwyCC4ktk388sGxNJLSVsSri27y3rBdPKENa7W3cwIaFOx4wEAQIGLLpCPvwYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; 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=u2bvqVA/3lrIuYA/L9/Q8HvU74A+LUn/Oqy2CtLfvhM=; b=z/wCJ4SxLTOFwqFgAZ2B5jhDlRH+XgsudMgdBYO3e6W2y5LWGj5GKYPbpNqTLaEfMSTfdBr7Xcb0ukPgcssP2TJRM7y/oxbAXvhuagjCH338CfdizFZFtdfOvOSYBWitunN+CIUiSCH61KtFLT7YS7hfKxwx92s2h2eaDLDBaEc= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by CH3PR10MB6859.namprd10.prod.outlook.com (2603:10b6:610:14f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.25; Thu, 6 Jul 2023 22:09:27 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::4a17:13b0:2876:97f2]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::4a17:13b0:2876:97f2%7]) with mapi id 15.20.6565.019; Thu, 6 Jul 2023 22:09:27 +0000 Date: Thu, 6 Jul 2023 15:09:19 -0700 From: Mike Kravetz To: Jiaqi Yan Cc: naoya.horiguchi@nec.com, songmuchun@bytedance.com, shy828301@gmail.com, linmiaohe@huawei.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, duenwen@google.com, axelrasmussen@google.com, jthoughton@google.com Subject: Re: [PATCH v2 3/4] hugetlbfs: improve read HWPOISON hugepage Message-ID: <20230706220919.GB3768@monkey> References: <20230623164015.3431990-1-jiaqiyan@google.com> <20230623164015.3431990-4-jiaqiyan@google.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230623164015.3431990-4-jiaqiyan@google.com> X-ClientProxiedBy: MW4PR04CA0376.namprd04.prod.outlook.com (2603:10b6:303:81::21) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR10MB4196:EE_|CH3PR10MB6859:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c02e27f-a673-42ad-c30f-08db7e6daa20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bd6YOaEFjqINtcw29Txe8zw/dvnPthHuCzxigBd852WlTrbHJnoWsq7O//mY4xwA+U1dAUTignpP55rOKqxZv/Gnz1j3U/iu3aCdDHtB47cfkNEVxJZcLB45W5qmDW7Ipk7eoYztL6ReavZYaX1RzRGX5tNgRyBjYysERL9qICG0OLfZ11dy8sEVhX+bdFOpmsmYSvPpN5xn4/P8BvKEtxlVZWK0/1bQkTL7L2xrG5LKIL8Rx54ZRIzrna3A5twRFSkCugno1zP6VEgwPogot7x2DUvq46uqfFH4Z8AG/umbdTpyJYZws4MazMo2H4qBGCB898oIqVKOB0gfpa/I32/WybMIS4uU8Yv7TnHTWCTO/5uIQXlntll2OId/2qU7Ov0Dyl0LI42iAhh9b8nOlZM3vxwsTKepIn/9OkPCJibAqNLV2coDz1krNHY3Di1qyEdHsvWYDjppaUyNpcU7CEYjGCVT01VObZiR6Nk7ZGt5Qch2+J3WJVR7xwavficPlecRePjSSZyEs13/po60zSDP7FOJ1syh7QhP09GeCJBh8FAaQ1vKIX7WPPMkxpd1 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4196.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(7916004)(376002)(39860400002)(396003)(346002)(366004)(136003)(451199021)(1076003)(6506007)(53546011)(186003)(38100700002)(6512007)(9686003)(26005)(33716001)(83380400001)(7416002)(86362001)(44832011)(478600001)(66946007)(33656002)(66476007)(66556008)(6916009)(4326008)(316002)(41300700001)(5660300002)(8676002)(8936002)(6666004)(6486002)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?y4GCpiX5BpfaWKxtx8WeVUJk+ZsVqJxmoIGWww9rfc9SoaO8qhIKhvKWP9ab?= =?us-ascii?Q?UMXyEQOqi6CRbh6LX6+QI2nWyAEMH//zuK2yR76yYvoOC/pWix47gojsWG/k?= =?us-ascii?Q?93fi92E5gGp3YwEV1rJgmj2mMZhyf2XokPJH5+2upbMlN+ZDIm3TdAlub6md?= =?us-ascii?Q?YlCMNjFA393cnFj/DcwIjXT835Hl/kWbS7Du0UqDNaBFsN5rNkFO0kMMxRxY?= =?us-ascii?Q?C3iixs1iKzxfIJSzRifcMTutGNSs3CIsC+1tp+mih19etFJwWLJrDrBI2Wu3?= =?us-ascii?Q?QAeZbp5ezyzDsyy9PR1BTELTPUVwfdtfLw6+qgN40YWkVTyILP0Dy7UH54nx?= =?us-ascii?Q?5DqVAOUIGa0ovGbm/mRF32akx2inEAek6oku/7IDVlw6Oqx4OaKPOTH8vWSS?= =?us-ascii?Q?pQvQ2TplI9lvpBOPwQMTv7W0IM/RP0OxhupPZmplY+h25fRAKVJ4FnvMeZ0z?= =?us-ascii?Q?2pgOclahJyOef9zY+w05HYtIab8+bgWL+oFqloqIgOd1919RAUFGa3iGbxKi?= =?us-ascii?Q?oHkTBhyJLHdPiD+pkga36VLFrzNGYQhRn2vOx8DJ/NXnJSDpcCdPxGBHAXe2?= =?us-ascii?Q?aVjQsabjNzI5bhZATstO2YbUDPe/qc/fqD0jb+fBMOFGeKnMVBvc/Thyw+R8?= =?us-ascii?Q?4yDhbu+w53OW5nRoKTUrIeA+NcfaNUXC6gGeD9ue2ZaNVdg7ler39MSDYVDO?= =?us-ascii?Q?5kwSNJO/cX8gX7GFDMCJMStY5Lbwx15B2P/dBG8f0QEYmsFmbAdezwee866D?= =?us-ascii?Q?ordWrxGrhWG3Hn2jmuynMH1a/OAU3slBZBPGWIZbB468rZBYbYAsNxIkL8ON?= =?us-ascii?Q?0fpXTO3HYYCe7xa35l7YFpyi4zlk2iToMjQk9yKpVS26SyN8fPCYrzPoPxQl?= =?us-ascii?Q?SmpSmKKXxJAtnVpbKtxRNH6nXSrTJwJWQrrGK7N6Dws++PoqUSTBSiKW4lru?= =?us-ascii?Q?Og4EZAA+2KWUd7OBa4QKDHkgBHaAaCYlT7hys60AFGic2HAE3lmxU6VhYaum?= =?us-ascii?Q?YhVek71+egat4dSA+2komuQz5LW54ExweoFl1pU/B7RQ4+4YwKmpT8MBYL/S?= =?us-ascii?Q?ETG7DVtL2mcFsr48TiKh1rMvOcI4IOniOEEdrwPnk9tHO5ddux3csgTjzVcm?= =?us-ascii?Q?cp8rkzTRNqrKf1Dc2O6uokhxyWhbogUVLhKohrDbvw76FMiV0RNCgfvAeiTU?= =?us-ascii?Q?50iTtoxQXT6xYR5i/Gc0l83N8i+UW5FqQNHBqOktuh0/UYgRzBC1McA6YTR/?= =?us-ascii?Q?z1Li9jcmqdnj4GMYiC5DF/9d4N8+68lXlewOhG9/JukWzz601HCQ126EM6Ge?= =?us-ascii?Q?kWdScfOsbQseqyyktbAaL6xjvOhaVGQXHXrJra2UgtU+PTgofzMm27uNOyu2?= =?us-ascii?Q?i211LwVyvXU4f6y1qbRJaAO2ihx5whQcgum/OEU4/L7Ugu8JvTZyIzenFEF6?= =?us-ascii?Q?J91EZM4HR9p5/3HmAb2pUlrQ4LGlImaWKALrhLKESoa6vmRlLHKaW0rIlbzi?= =?us-ascii?Q?GiLoAooePHzQdhaSXVbNONtQ470ahBheyJ05vDxULrLKzZYGhjFDt/46vOJL?= =?us-ascii?Q?J1/cBbvQpcNWz8Cg8mBmlrMQu2YoLuqIdBiTyWMqXJYbi7LkXpjj4d+74284?= =?us-ascii?Q?Nw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?4cPkwwyDQFGKVigLWwZkPXhditpyqJcxU31eGVQxMMDRst8bcnq3nZJfdlcY?= =?us-ascii?Q?dPJgBXRnhydeBvvMgLxuREH6wDEO5jwxxP8aHWhp36jAmEt79p7r6s27wat9?= =?us-ascii?Q?xx758l3NoT4RTuOUTNIxdPtAvxzCLgj1F6AFl88L6RZQlntqtq6slEw8Ml60?= =?us-ascii?Q?q/1z2LbUMVTYH9aWreRFmRFTx1KyMNBREXoW+0MFF/g5Novi4KJqOWer72fj?= =?us-ascii?Q?VEmK6G9P4iCMJR4+vplV1pvs7MeKPIvf+tZr4Fkjz3vYHSNpxMexOrUiEgDA?= =?us-ascii?Q?xsl2pv4/e9N1W2CVZLGmGtQ09G+xGwv0hXrbZ7ZvKAx9aYLKqqM718FJS0dD?= =?us-ascii?Q?vTTuhYd0hlXbYMNutcfE/Zn59kKkbtKFyAz/e0KjrM1nlE+AGz2jrqNEz15n?= =?us-ascii?Q?KS5wmN/5uDmrOPCVvSrF9IVIUJ8HDcpTUqjxIqLljzE3YD40VFzvLKWfkL0F?= =?us-ascii?Q?sAnaSS76EaQtiIKJIuSDH+ApYAizKgGX2ZgAkZNgJTNIvQBGi7OVHkcw+BtQ?= =?us-ascii?Q?/Pjmbdkc3sr9FUV10cdFarxGGlJyqI3DeLMCiWodTh5hdiJc2s7pze8wBLrR?= =?us-ascii?Q?RIKoHtgGyM+2Tx969RAVwC2DkGYucVmmvBOi0an4G4BJnmW59y3t33IUVU+f?= =?us-ascii?Q?9a0k/O+TvH1+vTmEFRS7WT2IQk74vsNbKYBn1B9h62okKw0iwMrGnF/eDbhO?= =?us-ascii?Q?Q2fb3ry6Z0aD8eYW2uyFAeG1kpK+tYg8fzqUBt7MIWKQbub9IEDzkxRtHRTm?= =?us-ascii?Q?vJAL/PPdAnJQmD4NUP5OCx5zhIdcpbDLZZwpssymYypiPMjUwS/f0RswWepD?= =?us-ascii?Q?mK7M5gg4vVag4FSwriq8Uu7xTpukhHi0dwj2hoaPHeskDLqukZ250xY6s7Qu?= =?us-ascii?Q?5qAvBJp1HR7ED9Wf8z+coZ+b6/6rn/jwotL0oaBWFTrYfUu/g1wXthO7EUSY?= =?us-ascii?Q?/xcPHjo1griZlnxIaBUItKW8bKxtUk4OX1cZ7ZDY900=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c02e27f-a673-42ad-c30f-08db7e6daa20 X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2023 22:09:27.6975 (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: 0Q9K1N8jx5ZI6F6bpUHIdO7CJEr79V/q/6NR7Cm070CJeJTMG0eI9QDyBtsLmXJ5q5i2GawCgWtlvoYkmmSlvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6859 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-06_15,2023-07-06_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307060194 X-Proofpoint-ORIG-GUID: -pPof8znbL7NyNcJ3B8jWaTE-ANxYKAh X-Proofpoint-GUID: -pPof8znbL7NyNcJ3B8jWaTE-ANxYKAh X-Rspamd-Queue-Id: B11591C0022 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: m5p7uf4xegomkibk1fkdzmfryj7jim7n X-HE-Tag: 1688681394-564749 X-HE-Meta: U2FsdGVkX1+7dAChK14+UdfeJIZpSXB6FxguJHWyYQQbI1mqHEojlY1jHB4B+AlEXf3NYSCpUIFfi7eFeMaT45WrbYD6n53yJ4FVWLPzpjTmI4Hh2V0TztwZzascMjdSzV9G3MQDfZLlzFU276g8QY9zy8j2DaujigZ5HtdeEKM0lN5lW/07y8/SMEPPNiDovIPF/1d1pybPozm2wc8OpW4z2csYrfvMLWy2Z/BjSDQSaA52cK3buJNbHIAwP0zkYhZBsAOJ6Se8Aqd05AsnhvNfwRwWGxlaTvR3C0/1LP1h0EwndR5G50GhbOWfK0paLFvp3YVfHcVlzypRwYStKbq0dnvn6Jgs34gMsOSu+Hs+bfWHioO+NtUaAnTuKzKcUNV2Hdt+QO9VHypEroL74bI+ifS8K7/1VesKZrhBXceM3IHuB1p0WjkDN3Vj5re4Mb+SLYco7TuhccXqWVkZwrokrAhVpR0t134WvWby/9XDrE19bKsiSEuZt2P5LUFEWvBdK55ZwRMmhw4R5td7oX1mSQDjKDgT5+8jI/SRPS+o8oc5swvDgRdO9QAFoymDXd+IvCbBBeOhVfYTxLVyG3gS8LNTs6lCLh94bBda97OEoKwn/bZv26WY+T+acOsuGhTjW4F86xITrC2eQJUI5rQbpjGwCwTvuvDjeq01cJQdeQYsOOuiWFO9R9mVQ4SFmkTNoSueYRoAsmc5w/eaBhD/qDsH67NAQT7fnYcfNTv+F0NM1fcxz17en5PlRYcq1NjM4jiG4emcwu/wB4Jqd35cao098f4O0rYifSUaqbQtI8yDz4qbNC11MLpY4HO4TET953+CicCCSfs2967SBbJGt9zRo6EZciGpzitjw/OHG6GQkkBJ8mo62uS5MIS+XwHVJejnVgNwxbqTjA5Yt0x7h+SuDCEoL1lvJSYbOAXSLlYaS588HcOAxJWMbqLQk2+2VwQDXEYw4Xota44 Rkz4WVHV LV6W6gO0fMKnQAtVpL+vi4wFI7RLyjkieUybyPTjYQ4nixgwkLm5H1OT4gyf+5lw0Pb1wpLo0ISz2xDCt/Yj9uMqmiS8NH3pUrG7o3dza5r7DTDXGi7wVsmrlW7PVb1n9sTavu1PP+xRYv/JkDEbcqpDUuPKLFSuR+FcF7wrPi26IeB/jDkOJaH3ODSEbVjNIEnK96q9lyjbJLRBwGPH79Px1dD9e5Lx9/DvtnFFSAlwCjQA1bCbVEBPRfCNkZORK5ddj/TCOoYCHfFNcYeUmg95Rpc/ZQpRyltSKqAliv60mQqOwWXG9IEh0fl2B36Rq13FdazK8Fz5P65KKI/F9s8qnvIcYrneUe+wqBYT2Cwu0gART2QAaFD40zpRE6uAAIZWGeo49peUvCTAR0dufD8LRzakk8yL6tiCV 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 06/23/23 16:40, Jiaqi Yan wrote: > When a hugepage contains HWPOISON pages, read() fails to read any byte > of the hugepage and returns -EIO, although many bytes in the HWPOISON > hugepage are readable. > > Improve this by allowing hugetlbfs_read_iter returns as many bytes as > possible. For a requested range [offset, offset + len) that contains > HWPOISON page, return [offset, first HWPOISON page addr); the next read > attempt will fail and return -EIO. > > Signed-off-by: Jiaqi Yan > --- > fs/hugetlbfs/inode.c | 58 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 52 insertions(+), 6 deletions(-) I went through the code and could not find any problems. Reviewed-by: Mike Kravetz However, code like this is where I often make mistakes. So, it would be great if someone else could take a look as well. -- Mike Kravetz > > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c > index 90361a922cec..86879ca3ff1e 100644 > --- a/fs/hugetlbfs/inode.c > +++ b/fs/hugetlbfs/inode.c > @@ -282,6 +282,42 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr, > } > #endif > > +/* > + * Someone wants to read @bytes from a HWPOISON hugetlb @page from @offset. > + * Returns the maximum number of bytes one can read without touching the 1st raw > + * HWPOISON subpage. > + * > + * The implementation borrows the iteration logic from copy_page_to_iter*. > + */ > +static size_t adjust_range_hwpoison(struct page *page, size_t offset, size_t bytes) > +{ > + size_t n = 0; > + size_t res = 0; > + struct folio *folio = page_folio(page); > + > + /* First subpage to start the loop. */ > + page += offset / PAGE_SIZE; > + offset %= PAGE_SIZE; > + while (1) { > + if (is_raw_hwp_subpage(folio, page)) > + break; > + > + /* Safe to read n bytes without touching HWPOISON subpage. */ > + n = min(bytes, (size_t)PAGE_SIZE - offset); > + res += n; > + bytes -= n; > + if (!bytes || !n) > + break; > + offset += n; > + if (offset == PAGE_SIZE) { > + page++; > + offset = 0; > + } > + } > + > + return res; > +} > + > /* > * Support for read() - Find the page attached to f_mapping and copy out the > * data. This provides functionality similar to filemap_read(). > @@ -300,7 +336,7 @@ static ssize_t hugetlbfs_read_iter(struct kiocb *iocb, struct iov_iter *to) > > while (iov_iter_count(to)) { > struct page *page; > - size_t nr, copied; > + size_t nr, copied, want; > > /* nr is the maximum number of bytes to copy from this page */ > nr = huge_page_size(h); > @@ -328,16 +364,26 @@ static ssize_t hugetlbfs_read_iter(struct kiocb *iocb, struct iov_iter *to) > } else { > unlock_page(page); > > - if (PageHWPoison(page)) { > - put_page(page); > - retval = -EIO; > - break; > + if (!PageHWPoison(page)) > + want = nr; > + else { > + /* > + * Adjust how many bytes safe to read without > + * touching the 1st raw HWPOISON subpage after > + * offset. > + */ > + want = adjust_range_hwpoison(page, offset, nr); > + if (want == 0) { > + put_page(page); > + retval = -EIO; > + break; > + } > } > > /* > * We have the page, copy it to user space buffer. > */ > - copied = copy_page_to_iter(page, offset, nr, to); > + copied = copy_page_to_iter(page, offset, want, to); > put_page(page); > } > offset += copied; > -- > 2.41.0.162.gfafddb0af9-goog >