From patchwork Fri Nov 11 23:26:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 19061 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1022079wru; Fri, 11 Nov 2022 15:41:35 -0800 (PST) X-Google-Smtp-Source: AA0mqf7aVTGc4Sf6lz8HAMNCJgqInn8dki0q/hsAKmkP4mzbXp70hxOQUoDo05h/IFEqfChQrEA8 X-Received: by 2002:a17:906:5947:b0:7ae:100a:8dc0 with SMTP id g7-20020a170906594700b007ae100a8dc0mr3484377ejr.424.1668210095154; Fri, 11 Nov 2022 15:41:35 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668210095; cv=pass; d=google.com; s=arc-20160816; b=kidFdyjE2O3sKosy9K4ryIcoe6J6CHbJl+RMaRzlPMn/CyALj4lz7KqM4+zrzGPCUj nLeD13NVyCmIxi3zSp1QGHE+a7Wn/F7YNV4elNCu7Id3PNVyiGvQnTUa/TJ0VwIz9cAF nOMW2tcpf1pWwUIhVk4lcjW9JxwjaKT12iJoJ2sST98ArrRg4n3Mc6vIar0/CnQlCmHK 3MPSEML2trVVhn7FBg39WsZ/0VF3VjtxesMC1QnpaQGWYptrCSiDfPWsipKwol3vb230 8ZOipdSmQVumOW3pwC/nruIVqYCNazq4d59z2ylDJMQruF15lNFtyez4ahGtrdMv7gbe Fgaw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=pMXhVD3fTz8Sa2qDgNSakVPt/MNcI6pVDm9NsXh0kwc=; b=IUBhiNt9SlhyRNRplooX2puwZOOHO4qlFH+1QYQMw4Yh4zvAQ1dn03JW4vS1fYk0Rs z99Rua7rUCu0Dr3f2P683yW+mImnl89GMFrN2oEZmFSHTIDUaNTXpnpfTHqx8a9t/npj cpJlL9nDZrMtPSbRZQXanNzbjqD4zwl4H7Uy+DAWqq2LBDdB4P6f1HMVtsMaN+NTmnSK jF+bpzYj0IVfRhmIXrPoL2RB6Zzq1Hduy/wjjgignT5kXRlpc4XSYX3QWq4H5w4wi/92 UGltmUzGJpWwWaHuHy8YOJXURotTdMl1gOAFagEK5lLbinb6H2Z+nuhoh7x59sLvELwx OVwg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Yc14aha+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=YJUahfUq; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t10-20020a170906064a00b007adb2868da6si2603595ejb.646.2022.11.11.15.41.11; Fri, 11 Nov 2022 15:41:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=Yc14aha+; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=YJUahfUq; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234503AbiKKX3M (ORCPT + 99 others); Fri, 11 Nov 2022 18:29:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234374AbiKKX3D (ORCPT ); Fri, 11 Nov 2022 18:29:03 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A571659FE2; Fri, 11 Nov 2022 15:29:01 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABNLnj8010286; Fri, 11 Nov 2022 23:26:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=pMXhVD3fTz8Sa2qDgNSakVPt/MNcI6pVDm9NsXh0kwc=; b=Yc14aha+slHvMn2QWtMMCJMv5MmvWKCZ/mlKE35mqUJmwp6yali16123M+AY92aZRMjB j1LP7WRV9p5ivxmJWSUHVKzAnzao6U0jhf9KxKRBQ2Fhsn+MRHwAqkNfCNWsRxWs4e6a sZ9Qsvc4m63+POw0qBNmLRExRnxoCd3+e9eGY00kyKVdssbMhYJ8e+tXifHY6KNRyn02 qkoFtXcA8ImMK6uSYnNVrEV1GEEg9qyF9BAB7q2isv5XFaxHIhM4GFiJK9OJK7/AV6q+ ZM6lE2TxFgBScUhzVywUwXEpL/OLuXJYyboj8HxZ2gyI2trFiFxOY64Dr1DVa55bc/tF YQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ksyktg16s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:48 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABKle0n031606; Fri, 11 Nov 2022 23:26:48 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3kpctrcccf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EsPMR3c8dhYXbf7LFcOjukvNfOVwWOQuLcRLBc10FvgpB9ZBABIcns43iwfQYhc53j1ZoAUiwklV8ZsYxu/a7XGZYUTVxV2kzK7p5l/F5Zw7AZwGJT7/boDYlaKYIhoZl+Ub6oFSH6QNpJ0TVlyMMMdNxyadfiZHndFBmz0BczUi9irt7CTWoVs2rjF9rpisw+h0VOD1qI7hRRNO0MgRpsB4h0nvjre02HbjGzTqYEOzPPsB5GVLQIZDSUJaPMYqxKdHyqkBXZh4OSVwJfitNT7cwGOarthYA7YDUjmTx0ijIP/mY87c9ZQANotefL5UXuKcAWiOmEy8NZbmWpUBVQ== 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=pMXhVD3fTz8Sa2qDgNSakVPt/MNcI6pVDm9NsXh0kwc=; b=A/cUzppmnLWRPRev9+16GJdQxqsGaSds/e0twN97Xxm2qCkrzlUHAt1xXtsws2nPoVJaGnHJH5tHD59jmHpW1cwCVTNOk98ZLch8pyhseD1WwiIMxoO0GQgyGJG8REvmg8FyO2JD3Wjs79WU1IxPXpXILYrLEsC5iL8Fu9oLtqIV2rS+e5WZJ+0VGA1UxUSCTWYtUB+g0YMLOV0R1zl2C4wEFdIeRJfaYkj23zLJOGokazMscUhF6jW0St//1KOUQSTC/uyqcJbWD7c8w3bIIDjfqAPVhl7hPB3SrW6MRCgEhiSeBuFOfxrlIU8jGOs8rLfQGJqcp+RdQynt0ZEgJQ== 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=pMXhVD3fTz8Sa2qDgNSakVPt/MNcI6pVDm9NsXh0kwc=; b=YJUahfUqsY/EhzSiMED85oE0lOtZ2qJf2rC6ZDp2Cf6ZdfHi/y3joWUh2lRvAh/cHL3nH4PqUFnNn2d0zJDImkGDXuwBenKeMv/mLiHP2ZjJdYlc8XN9ON/fcu3uhCbbMtwRpz4HC+ZMP12wWJ18vmZytPAeVTDgfAvo9hlu4u0= Received: from DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) by DM6PR10MB4139.namprd10.prod.outlook.com (2603:10b6:5:21d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12; Fri, 11 Nov 2022 23:26:45 +0000 Received: from DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da]) by DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da%4]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 23:26:45 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Naoya Horiguchi , David Hildenbrand , Axel Rasmussen , Mina Almasry , Peter Xu , Nadav Amit , Rik van Riel , Vlastimil Babka , Matthew Wilcox , Andrew Morton , Mike Kravetz , Wei Chen , stable@vger.kernel.org Subject: [PATCH v9 1/3] madvise: use zap_page_range_single for madvise dontneed Date: Fri, 11 Nov 2022 15:26:26 -0800 Message-Id: <20221111232628.290160-2-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221111232628.290160-1-mike.kravetz@oracle.com> References: <20221111232628.290160-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW4PR04CA0069.namprd04.prod.outlook.com (2603:10b6:303:6b::14) To DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4201:EE_|DM6PR10MB4139:EE_ X-MS-Office365-Filtering-Correlation-Id: 2de7c00f-f50d-4b91-999c-08dac43c32e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +KcGULEqPhhAv3fQi3U6ag7W+FEKDevJ3+HXH2yCSab+vBGdNx5ftS2hQtlWizUKUbXp+0ksIasCDhQIC+kfErvLt/BUSFtee/j13MnlkYnmOKCZPDbXZQ7BEE5qYVBfJykZ+yNkv6HpW2hqIXLj6NndqnyPr9D/FAiV6VoybY8vaRrQRZfDo34TDHczcY3G035nxWp+xuzvEgGP0LNnCVsP0TbS+F4/sr8+rv5aUfhBvFQQMbx5KdZ2DrgFbezJBU2tPf9MtpqbVGHKhqnkn28T7P/+LRhqcZJ0xNfqK8YLTT/gsTxWzUvqrzvhbnryoHNKggWBQtOOtN//QTCwfaK/+MxUwZm1kZ+SRzBRctg7VGJsq55TbWK41p0wB5k8eDp6/bMv3op0TybuDTydlaoySkx/4J8BppxpuH+S6w11AFx0G2I3nrnIykztNtNpVc5SWz9xiBGVTR9DP5yASfQ1S6r7PDMkihETb5rhnKK5BuZz14TNXzEqZYJjbXerQtxK9S4CfJfTS/OFonATOl5Z/1tRTi/Shotgfh2SbjF+5bc3c0mFvX2yC+wnigzpTSYJFDyxWNpfJnCij/nHKzWrVAgLDlefdfkySmgNz939l/cffdaZlYOiICfH8T84c27Pno7qGlJ8uMnT9VHhZpORweiyyZPCIRZ4UQd905TweHFb6VfxEKIx5asNT6vxAiq3k7tHYtBzT0xIc02aTw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4201.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(136003)(346002)(39860400002)(396003)(366004)(451199015)(66946007)(8676002)(66476007)(66556008)(316002)(44832011)(4326008)(38100700002)(83380400001)(2906002)(41300700001)(86362001)(26005)(6512007)(5660300002)(186003)(7416002)(1076003)(2616005)(8936002)(36756003)(6506007)(6486002)(478600001)(54906003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: J6Wb4+8mnB4BiaE8WIVM2nV/jd4NpJ2rx0pu7rv3AejF/t0cA7N80kc8jCBJmE4gGGg94fo/9Ygw/X2TyJIkZwN6lQelLeZwy0R35fhiy4yOvkEaEKHu4YCAurgV0TjSZa8rU9tnLLqr0IshnoJSdJx25zWoP8qoR+vVM0Cy17m5uT4fFVcplEBMWfPsf5O2BlyaAItW9xmc1tUN+fTxQgGh99WzyUChIkPMc7C14zN6nj07gLmdesMBi1cF3AZ9adJGoBlkB/ZDBGhhaoiDhZwvwHSyxVo8F3roFWFTt0j6+2xv54XX4e1KTeNB93TrjpXNIDfuJwvxSJz2+j3hI9TYNFztycJzGReAzB8SfTEffhLPaANSITpHXp9pRWdPxZxZ/9Ljg6sk16z9/l1jQf76dzq7gJgMmDhbAIeLCIE2PIU3x9VRq+RuPsgHIdGOgN4rAmwYip/aVZW3rZ8WxiGK9G2S5uhpeSDZdRfnf9nzB3RlGEk86djMg8uHK+TUDBINJg9Ox4gXRa2V2WgNyASfC9JPz3cQCkFFgMCQSN6Qp2zT/7d2aH/acAUbm8rKlvXYaFJJ9cxQDxLP5/uX/EvkRipsF9pw+hbDqBexMIKTIVv7rM8iX9f0W2h4V6vdieN7UCKRAnkWGf557ljeJ40M6TUnkQhdM7YsTt2b5IspbO7rurhWgncsEOEPzleJTWwwHCHkzf43cR2R4B4Dywn19n6CTpw/54CtvH9AldKoom/QiGxNq7tNpHpGKL/GmoFkASxN/pOSET0BUFDTA9bjpPFjBUG7eHw8h3HyLLPPocpQIFHda/OVeKy4+F7O+9fTJTrJG+28yrHX3dqfl+eWg1kGzQ7SNZRbk0droeaNhuW6n2j4IMK7L06YRwebt4Z9QOHMiceeoeNkjQLSdXya2I270HDZ3qSEpWbwyzjbWKbkUeRVUClCY1OmTzpbSjYtHJubt5pXWfq8toHSbN5l8mfGLSmiUQE5nOvEk9G8vMw+uaLVTAQMYuSdKRimzFJhWS9REwnPBFGn4pJ0mNAsRSO9RMcOcsduRtFtCbhwzmq9FWM0wTIO0ayT+clZJ56i22Ay6pApqXGHZ1Be3LfYozmR1/ig+KoYqsxjcJIpj2XKFZY2QYiEWFoG+VGDJXyrHil9/9ubKnnts9EF1lVquxGl7W1arXYdZioO9M8rfk5k1xIZlwGK+NwX0i+1bYe4Kt1C7iueJRMc5oYoNP5Uok6rx9agc0YlgTLa0JLs0Zd8mqXBN8qALFjRxitUA1mTLs1CCLzYO/3FSjzFWwsU4PqjtOcDc09bjk6F0jC4jaW+THQKoRfVGQfqw92PC0ocm/9B4Kzl4vi0/nKQy8f3anAO+AKmlY0xqYaDQmDUdFFMoHQMe+lLLTaLN2vUUsbK11YqC42MyL4ihEqozc65sTFYTtXpnafuhV/+eqDcsjEns1uDf2oCOD/mgZGvebaitUdnGfmGtLJKbfG+ht0hFJGAPi7cVUOptoyCO97ZaLqKpC803ZWNycsGLQrMbVP4zpY7JVK7Dvbxjib19I0vWnbf0LVxH1mMm6YcEDEZQgMt8dJ/piED8ZH2KDqZi9415OxXCnFl2Hl/PZwwcQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: x5DASo4NEHMaItg4gibizPgpi7yU2T9zzWx/kRHLVZxeVYL8ygklX1ylG2v2fIoGBcLolGaDL4nzakzXdwB6CKpz2g1m7+YXNfZUObD/R7iGw127MmL2RTZl/chSYN8bqn+48zrYq3uaI7kzFrBBpJ11FdxqR20Tw8IYTEecR+6GBPUuL7ggDg+VThwbEgvF/lwsF7iLJUeKikJtgANdq4I0RipGN0QCnuZOzSZONf/QPQT00EX5V7xekOzK+D99CYBfTBlWar/P8cztpxJLq2gO/JI4L+BQqlU9rUBTBbxXSHrOVA1EcnCy+0A8sjZyzfOeAsQIQowDyBpgznIJRQ9RKG8+UI4fCkFMYg5lUA2IzmduJTqgDqoCEjae58axwVGJHloKE7b/kSJCB64Zp66rTKSnZNfKdzGKAHMKcc45tQvUvPG4FxRYN1/I0TF+68NJOJn8E3+vBgt0YGC8ckNNkcZ1f5mgae2ErxG5ALrTqMkHzUBnM/xBqc4GoMG/NlqjkrITiDM55HJZoF0TgY85anMvVJQ5iapViGpu5Z6pk/tnYoVUzyTXlMV/+19GdJwxg81fa99Eni2Kw+vfIvMjR1SiVFO+/gwjXsOFXh9FvlQA2zptyjoaySabHr4kb5T1Cs76YYed6hhRXVCIakfRwkyhpqzJBqPWeUUDNojdPQoYlZHxh6hXajEU5fDgVQh9dqdobED5qi7iQ7VSs/bwijzW5krlgSeoqhu9Ho9tbgxuKD8uZ/EfZu9qk0YNQZ0hE+NVkJq8kjtmyu7RltKRF4+nE7m5X8wiYbIUqWTW9D6DUQ9zRandKM+cX9XYB8JXBVG8uhCpgE0t7nDqgiwC7Udg5YI67MdkTF5m8dZbefxN60aAVHh26fReqUQ7sxUuLZwYX1vUgBq+Dh9HK/lwGloY2x2Y6rcYsSeNQcvl5+kcrVYJi/r+tThUCV8rZZXdWkjrJWkUqC9b/J4RaBnWFxYw09s4ngD7oGU0cF4JLAFxTcYEnP3/kZHn43cSlGA6NJZdeuYlHFFO66Itcxwpd6ejTUqemDcdwCztSJH2dwM3RgtBVsjfkk/yey9h/80x/V9SWvT2h1Biv0YnYMLu2QQqii9SoKXdFa4oz0HuKHoHsSG5SsnetdlMgN/auak7Qkz3phTXRLyJTaM06d14txqsodi4Ks5+l3pAvpk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2de7c00f-f50d-4b91-999c-08dac43c32e2 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4201.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 23:26:45.8233 (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: MKhS30aUwK08Hn6G2ZlkyrlZrAlaN/BGKSpzr0mrV79uzpQEBbqR2LGdvWzN9ONXaEosqC7TQ/wsBq1iowmvxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-11_11,2022-11-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211110159 X-Proofpoint-ORIG-GUID: acLj3til2iUgZUEp2aP7XRApArtmgo9Z X-Proofpoint-GUID: acLj3til2iUgZUEp2aP7XRApArtmgo9Z X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749245068766115425?= X-GMAIL-MSGID: =?utf-8?q?1749245068766115425?= Expose the routine zap_page_range_single to zap a range within a single vma. The madvise routine madvise_dontneed_single_vma can use this routine as it explicitly operates on a single vma. Also, update the mmu notification range in zap_page_range_single to take hugetlb pmd sharing into account. This is required as MADV_DONTNEED supports hugetlb vmas. Fixes: 90e7e7f5ef3f ("mm: enable MADV_DONTNEED for hugetlb mappings") Signed-off-by: Mike Kravetz Reported-by: Wei Chen Cc: Acked-by: David Hildenbrand --- include/linux/mm.h | 27 +++++++++++++++++++-------- mm/madvise.c | 6 +++--- mm/memory.c | 23 +++++++++++------------ 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index e8fc35edaee0..9e7cad65dfde 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1881,6 +1881,23 @@ static void __maybe_unused show_free_areas(unsigned int flags, nodemask_t *nodem __show_free_areas(flags, nodemask, MAX_NR_ZONES - 1); } +/* + * Parameter block passed down to zap_pte_range in exceptional cases. + */ +struct zap_details { + struct folio *single_folio; /* Locked folio to be unmapped */ + bool even_cows; /* Zap COWed private pages too? */ + zap_flags_t zap_flags; /* Extra flags for zapping */ +}; + +/* + * Whether to drop the pte markers, for example, the uffd-wp information for + * file-backed memory. This should only be specified when we will completely + * drop the page in the mm, either by truncation or unmapping of the vma. By + * default, the flag is not set. + */ +#define ZAP_FLAG_DROP_MARKER ((__force zap_flags_t) BIT(0)) + #ifdef CONFIG_MMU extern bool can_do_mlock(void); #else @@ -1898,6 +1915,8 @@ void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, unsigned long size); void zap_page_range(struct vm_area_struct *vma, unsigned long address, unsigned long size); +void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, + unsigned long size, struct zap_details *details); void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, struct vm_area_struct *start_vma, unsigned long start, unsigned long end); @@ -3529,12 +3548,4 @@ madvise_set_anon_name(struct mm_struct *mm, unsigned long start, } #endif -/* - * Whether to drop the pte markers, for example, the uffd-wp information for - * file-backed memory. This should only be specified when we will completely - * drop the page in the mm, either by truncation or unmapping of the vma. By - * default, the flag is not set. - */ -#define ZAP_FLAG_DROP_MARKER ((__force zap_flags_t) BIT(0)) - #endif /* _LINUX_MM_H */ diff --git a/mm/madvise.c b/mm/madvise.c index 68a23104687f..b2f1860a353e 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -785,8 +785,8 @@ static int madvise_free_single_vma(struct vm_area_struct *vma, * Application no longer needs these pages. If the pages are dirty, * it's OK to just throw them away. The app will be more careful about * data it wants to keep. Be sure to free swap resources too. The - * zap_page_range call sets things up for shrink_active_list to actually free - * these pages later if no one else has touched them in the meantime, + * zap_page_range_single call sets things up for shrink_active_list to actually + * free these pages later if no one else has touched them in the meantime, * although we could add these pages to a global reuse list for * shrink_active_list to pick up before reclaiming other pages. * @@ -803,7 +803,7 @@ static int madvise_free_single_vma(struct vm_area_struct *vma, static long madvise_dontneed_single_vma(struct vm_area_struct *vma, unsigned long start, unsigned long end) { - zap_page_range(vma, start, end - start); + zap_page_range_single(vma, start, end - start, NULL); return 0; } diff --git a/mm/memory.c b/mm/memory.c index 98ddb91df9a7..ebdbd395cfad 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1294,15 +1294,6 @@ copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) return ret; } -/* - * Parameter block passed down to zap_pte_range in exceptional cases. - */ -struct zap_details { - struct folio *single_folio; /* Locked folio to be unmapped */ - bool even_cows; /* Zap COWed private pages too? */ - zap_flags_t zap_flags; /* Extra flags for zapping */ -}; - /* Whether we should zap all COWed (private) pages too */ static inline bool should_zap_cows(struct zap_details *details) { @@ -1736,19 +1727,27 @@ void zap_page_range(struct vm_area_struct *vma, unsigned long start, * * The range must fit into one VMA. */ -static void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, +void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, unsigned long size, struct zap_details *details) { + unsigned long end = address + size; struct mmu_notifier_range range; struct mmu_gather tlb; lru_add_drain(); mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, vma->vm_mm, - address, address + size); + address, end); + if (is_vm_hugetlb_page(vma)) + adjust_range_if_pmd_sharing_possible(vma, &range.start, + &range.end); tlb_gather_mmu(&tlb, vma->vm_mm); update_hiwater_rss(vma->vm_mm); mmu_notifier_invalidate_range_start(&range); - unmap_single_vma(&tlb, vma, address, range.end, details); + /* + * unmap 'address-end' not 'range.start-range.end' as range + * could have been expanded for hugetlb pmd sharing. + */ + unmap_single_vma(&tlb, vma, address, end, details); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); } From patchwork Fri Nov 11 23:26:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 19059 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1021476wru; Fri, 11 Nov 2022 15:39:39 -0800 (PST) X-Google-Smtp-Source: AA0mqf77qH/tkrn+mK0kBgxIJdxB9NBfkY5xfOxWD15pWRIfqHJZfDl6vV9W8xTdbCj4+qrUQl7U X-Received: by 2002:a50:d4d1:0:b0:467:6ffe:e94c with SMTP id e17-20020a50d4d1000000b004676ffee94cmr2056916edj.417.1668209978821; Fri, 11 Nov 2022 15:39:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668209978; cv=pass; d=google.com; s=arc-20160816; b=infp38bp5vbb8XvsN+Y0BU8C199pyJmVyCQ6Id76s6stFf3Dn+C0deK0Ubjhwzbj/n yJMBbeE+NisPYDEUYj0057q2w7WSEeamfD70PHfkDZ4fXxl1I8p1Z8lutku6MgDqaYgG qqVmRWCJb2I9C9AER9DvaOcVjSAvDxN6xVvag6WM3N6/sQunJlG41TY+soIkugXHD2K8 vq4P6x37rJV5WOBeyVy81A0KF8YfVmATfhb+ywmHBUDrhA4n+vhkF8cBeDIE0zuwF8nT WLxycEMzULKJ5GjOQWjuTK6CCZN3BkZF8XsTeUFeQqGHLMJJOeuH7iFOBGhjuqxbOA31 rhrg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=yMaCSqYvWytoN8TaHtwTo11mGnaLkaG6R+PtD0saZ8w=; b=voWAFBi90sTv2J49GpBeeOmnzSpPGo4TUMhW4uvTZ7s9OS9xNnjFuN6kbmHsxWBxTw GikMPfQ/DzvrdgThUkBy3BQW6O9N5uE1BwucuStnXv/ywJ8JqmZNDE+ktT5QyFznQGGO lob1y9Cn1HgEzSNUqWCDZgwPCvAW0080xCHaC1f1p/nWHnwDupzZOZEbY+oeJMjTCtnO vS2OjPiSgfuRjr3FKDuLEbyHNJBsVn5+9tq7m/xP0Sbpan/Pe7oUr4zxjezL9++DpPhf IniyZEmEK1XUwed91N5QTjQNAnLB3J/AD6zrNfZJrRBCS3okD4Zhuv5wSONF5QxOANO5 7puA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=gRGtLKLO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MGRY7E3M; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t9-20020a508d49000000b00458ff6921e6si2946027edt.79.2022.11.11.15.39.15; Fri, 11 Nov 2022 15:39:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=gRGtLKLO; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MGRY7E3M; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234570AbiKKX3S (ORCPT + 99 others); Fri, 11 Nov 2022 18:29:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234373AbiKKX3J (ORCPT ); Fri, 11 Nov 2022 18:29:09 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C863F83390; Fri, 11 Nov 2022 15:29:08 -0800 (PST) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABMsfch026818; Fri, 11 Nov 2022 23:26:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=yMaCSqYvWytoN8TaHtwTo11mGnaLkaG6R+PtD0saZ8w=; b=gRGtLKLOa52hi65esLrCv1kYmsI5eAWTNHSBuO/07aAqAUA676ErgTg14T7TqSEQWMSp X/MyOS/T4MGTGlwWOqWdF286ovDrcXy7hg1XkQ/qciz9BhiaP4FAX+wVRsd25zOcSOdV Rf9MCitMmE4aX1YzRzvLYanQc8MPcTtCfoco+lQ0bitqGB0ItyXQr2FZk43H/U7g+KIf IVtB1RB88qctHukpb9A7gjf6YW8FUzv6JIba6ggZKZgmc+FH54OSoY+7xwdqAfpYXfrB 4bTftjhlvy0K41GwBVOSe0LzxZ83QhpIUNxQvWpw8QV42DhvsgQSXZBlBE/NzhGfP0pm lA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ksyktg16u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:51 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABKH5c6031687; Fri, 11 Nov 2022 23:26:51 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3kpctrccd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q7U2n5YyvsvGDQJJmtiOgm3Ynv4mW1nDwbSggAssCIu2XcC65aEfni8hXleCFRazTJaro6cmWQ+vHKl+7VUaZsFdMpF4msVLEvyD0iK8GztwyXlgRHvX/kDnI7YMwESSoQCxVpg9nqBAonQaxmT/bII5+SW63NB9AbEmsKZoj6LnSPWn7wmK5omO6n/4YnBi8BvungTecqbJQLQ0C5bXJZOe7grI2tYXAwWBbca/EIv2cxSU0WqUvzu2EHri4kfQGxsKzdZuKVPvtDFWEKlQTWRoebE36CfR4wcEQ42Su7WfQMrbWfSdmoLWvf7lYxrmr9yzT90boAKyYfZ00172Iw== 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=yMaCSqYvWytoN8TaHtwTo11mGnaLkaG6R+PtD0saZ8w=; b=KkUJm8l6+jlB33H2ZKwYKcTCyQhE5UPXtNUCLhkUgmTl1kwUoAgIr2g/Kgq2LJRANeWTRXokpjRO+gTTtkISiPbIMH6RkWr1QDAV7qYdHc4Pe0NtnlwXq2qi3QAwR//QFtPAYapkiLgLrOHwxojspBfQ8ElRx75lwh4/SH/g//8k30MhshqKVwiwH459bEcXaIDaZxyG02lD27h/Bgmk7TTbk5SCWYjyDynifyD/ONh7W9UbmlPaMGxJRElpISxmNmaoYQcmjLlTy3dOcFotzATtBihGmFvrlpVyWuH3mG2rvfjnn5B+IldE3jSvh4RVDLoW79H6hz23MS2WuC/JCw== 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=yMaCSqYvWytoN8TaHtwTo11mGnaLkaG6R+PtD0saZ8w=; b=MGRY7E3MIjiJkTM3W0UI9sdO+GgmjwpabCzLF2glBu8odjs+iCUyQlgmnFkozkTXFrJxKZvQhU1DCXg1Jq3+qk/xCnlW2YFhEUBAQaY0qvO1iASu5Uey2Nnxf91bsJQ5X+t6JhJ/WKLzDGPf30ViQ5wLHG0reVQfwEHP2dUXNcs= Received: from DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) by DM6PR10MB4139.namprd10.prod.outlook.com (2603:10b6:5:21d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12; Fri, 11 Nov 2022 23:26:49 +0000 Received: from DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da]) by DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da%4]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 23:26:49 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Naoya Horiguchi , David Hildenbrand , Axel Rasmussen , Mina Almasry , Peter Xu , Nadav Amit , Rik van Riel , Vlastimil Babka , Matthew Wilcox , Andrew Morton , Mike Kravetz , Wei Chen , stable@vger.kernel.org Subject: [PATCH v9 2/3] hugetlb: remove duplicate mmu notifications Date: Fri, 11 Nov 2022 15:26:27 -0800 Message-Id: <20221111232628.290160-3-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221111232628.290160-1-mike.kravetz@oracle.com> References: <20221111232628.290160-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW2PR16CA0045.namprd16.prod.outlook.com (2603:10b6:907:1::22) To DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4201:EE_|DM6PR10MB4139:EE_ X-MS-Office365-Filtering-Correlation-Id: 0790d17b-91be-4e6a-4b84-08dac43c34cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EjringiJj0J5oVjntOnCNYKWSOfQWnw3e3FOE5p8vVHR8JtectRbW2j6ulUdqFyHNrYvJK2Ar7ojV1/7GyxbtaVoP7A/cnlTr15xZ8ZB7uEOXvFLgySXNhYsYvtIirQCZ7N3LuOmceZeqMoc9rSv8em+c89PS0o2+uq3rRq21bkc2fchaQCrLJaxfDgp97I3mn7Woks3x6epxtg7sxjhh6lYgpaHu2U9J/L721usrgvQVcbgR94Q1Sg5t+HpsRL4aBFUFUvfMz1luk3bPStU4ChHX8XgTGu2L6xZkq4HFjR+liBuiwAASXB/areGXFNAAC3aFr1Gdn/e/0wxBlHbaZwJkoYUbbJxdXg5/Qz950VlwcOh3S8/oGkkYLTJFRC3gcEWxWJE+iZ0zFpguzu7TYjAeL4x5h03+X62ZDWO0PwKfERwbOSXO0WnAIOfqarlZbMBQGkJrrJBh5fSCx7vQ6oftbOUwa7jybuOwh0UWejqyR19I5pg4YzL2FdRPC3QTuRdyc95aqjOLUq4Smib1/Ithm6q4EzxWqbh4NyKdyfEA6sSIs9jwb98PEV1XvtEmLy9uN1HnhU4bPtrWZtUkDzcP81y7jaXOh+YP/n9FZTwvhmBFPQ9Geo9t/lkdPrCej4OYdMeRdd4wR5n7i0O1tAeksLvUbA/Qp7uj1m8DutXcTd6mq5FgvBp3Fe4H6fsHZ8Lapm7QxCsKjOBQykqMQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4201.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(136003)(346002)(39860400002)(396003)(366004)(451199015)(66946007)(8676002)(66476007)(66556008)(316002)(44832011)(4326008)(38100700002)(83380400001)(15650500001)(2906002)(41300700001)(86362001)(26005)(6512007)(5660300002)(186003)(7416002)(1076003)(2616005)(8936002)(36756003)(6506007)(6486002)(478600001)(54906003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dbay4Bhlx6Dtl1C646H2kLvtlxjay8i3Yv2zrLoWv/mfyVaWYM7731JMTwShTxVVmIbfwhymKj8jmPRJ1SHu9RjgNqWLzKKdlu0CWwTtmrMZyBZ7DUIwkVZGZtGH7VFONrTlgydDndJjL4GuHgjnrydr6yh4pE32930R/dSFmIMpcjNZ7J+QSw/9Gp1tyXmSY5MnfIYtdZ+4CFj753jHshIqDM4ZqPtggsWnjWy+RjJMl9uC+k1c35vcnelmu5emEBSVhtRKkOl6U2cXKceRjtCKdaOTU26MGMRAK/veiEeFbdNvdaHYQ2be/poSKNLptGfX5sgsJyx1WnQHp4q8CHU0UDrmaOlAUXcsoEDwynJIaaCUh5QgG3gdlew3kp2vdtJVrf9EKvPi4y9uRApDxiIDpYvvEvUd2L9jgkVc+7sXrv308EHi7EUqQ2p395S+ZEtHQO8S7ivieufbp+lcwjKFfT1GrK1TRJ1v5twkVKlPOGGZG2nbV2amym+DrBz12zTRmGkiYWuSE6pdsSgFgpYD3F6KAkP7ZeUIIssZBHwnpOhsQ0hbCGYBrit5NEkrZIvRDIpLgHg5jNsCpUqHAJ5kErvhuFuYFaHkczI5rXRjurornt4r+AEOOngjg5Bx8PwtTWkL/N1zkUwxIlz4EAgHafmrcvw9/WAVjlAUPq0bgsvdYoP/DuAl2qCkSywbc/2FtPoJdvn+2ACgTBNn6OFNqqXi3iVLN6VBuxr6EdpP92d7NY3fmSlef0cR5ehFW7o6VxPc4tCgWNxX9D2VIKNmZaJY+ZJCnQWv0V5UrJj1BROuEK2GD0XZOCzonW5e1xtd6zVGNt0lnV3YdrQ7tRhlixdbNU1N8AEhWBAsSk66e1BvneWkuuX6YqQ8gHyHmyjpJw+iuSZTUFcKCV0WYuKWwW8Hz6T+GWrqgNwGJOJNc70g9LcTMsOrKgegblkbRF4AmOMS19HQniO6WCCeO00tKF/9cPMSC5hBkvdNU5dLaO8jh7ai86FuhpXvB9ZoqMuB1+V3dyqKDA3bOSzGRNDHE5Mz6sIuKuXmR9lQz8RBtxlFblIbUEmO4DaArqdzzBiiNlKbGj/T5riDvRlusdrsnnHuM2R5ZxTcuUlYHWyJQzmzRh2XDXlDFT4tqxyz8DniYf/zXPurLpuX3FlrMS9+NCjQZ43aCWJbq+cbx6WsAbaKJDYF2BqWRmvZu8ihTXlsk8Wj+vuXeciYVa6VUn9LYYlkQ5jQJ4hbZG19LHMLq4sLNqeqXXTAmCz7+o0TYs5lMjhd1H/YOi0C+evx2W5E1rIFMrW27IlPvjeiUv7+/WNnywnKNewLKM8ysrIrthR4Cp0fHOquFDjKv6ziFNEyu4y+i4GqbwB/sGJmx/Z9Qr6GiakQjK+lcu2artCztgT0oRbNF7+KFQdfBZWOb0MuObAc1rI/nqU5i6NhbYG3EFFA4AvC2Ndy/cALKGejsc2lAqJXB0dr5pBGngTmLeNnLjC5QTR5II8Lca+z70UGI7Cb4sUeB0QhUfqsrYX95XtDo9rEimm5xQ+qTMAfvjZ/mdWabVEGiLGm39x7VMe4fxNNe2Z6ZFld6QYA/abdFIlF5kKpeszIqD0wZIdSxw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2jnLygPb1MKuSgxf3AUQsc4WTDTTpN1DKyX/J8rsBVZbV700idQDc1Y+NKAM3S9tESOsydesEwBHMH5SDbirKzW1r758uSmd2ZvIK53OF02qs2HYN1oxn6xv4gO7vF3BYaget6VVLsRNjDjJOVl/XCB3PM8z18LGvqt9y2IewvRnA9CzcLUEm1Vb5l2GGpde/BNsMPiqx0iSWcketlkLaqQnfv6GDW+VsEAaJa+jUjlBba7bhEUWW9sBOtEErwlfkEUYiuuefMV5T+EYo+9hCy7nYNW2KJIkf5MbgPpqlGlknWwD9LYBYB6QbWLd2sf43V1OaJy4wDgmJaz5ngHqvlNFoweWuLJ/XnZtA3u6I3cDwPzish9RYo36Ny4q4PhRcGj4Xc8E6DJ9CHGXbgIZPfQl6IjPhCLTJExvLdRtYtKBz0115c9M/nIVjiHgnAeGdYuHLzw//U8VDXYS0AnADlCQ9F6M/oA4OxZd6LgSGCrmkr/Xb8NVK2KwCmOCxQym7WGbUgq0weRXaIkWCSNXfF/i6v9XXIHMSqtPhZJs/o/mroIh5RpJx6BEraNk2irGJbz8on4l5NZ+I7nQBf3JA32F0yhPQ6cVeBZtDBflrxhv2DyrrVsTjJEv1TYOVL5mOTPluhfnzwleC2G1heWLOo/6xAaf6NLISgnlwcU5E9QOigt3sCVyZSMZijTgODYR4BoKjQUA2LsciCFhRivlSmZwrvmXm2T7Ds3TtiGch0zI4ByJ1cTdDxpEbcwf2JllzxSfyV7gMdyaSZLvi7eAjtR3JSKfPHig8rZzxf9/boeTwc+N7E1LNiv2PZj9cVo1/MbVSazCTYzOsIllvB+XVKQCV4RwntYEoqrP4kqVBgrlOEfT2oMDkDrwuyEEbj9/cRze0tyI4LS7V1K9FQdOvd3jvbXkkb6Bn9KgyLgoyV/SulXvUPbAWvIgXPJ9KPz9FGLzTr88KH1VtlJRH1VG+yvGtrghwEv344mBfm1ce48/Vm7KHt3cwFRShSgQB1Xh+J1aHjxrd7GTFLpn2rV/bwXypr5lFdYhbeZP/6DvtOv8YPTkd0Mtyt6D2wu24okwZbFmewWB8jodsjskDPvyslc+i+ju+WXwL81uaU4GyCS+DJuUKjpKfagG9cVWjzu+sPvCrjoPNafDxc/i071GFo4QJahNf+iKiYVo5YJQmv4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0790d17b-91be-4e6a-4b84-08dac43c34cb X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4201.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 23:26:49.0416 (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: xTYDyrlOru6XS1HO1LVwku/irFYJLtib4a+owjDaDMTSfpWEltQIMzASSxwuppmwFvdVHe03YcZyJ+ywdq/1+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-11_11,2022-11-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211110159 X-Proofpoint-ORIG-GUID: jdR9Nyf0C7udlYk92x5vnY_g-DZSolVQ X-Proofpoint-GUID: jdR9Nyf0C7udlYk92x5vnY_g-DZSolVQ X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749244946671075672?= X-GMAIL-MSGID: =?utf-8?q?1749244946671075672?= The common hugetlb unmap routine __unmap_hugepage_range performs mmu notification calls. However, in the case where __unmap_hugepage_range is called via __unmap_hugepage_range_final, mmu notification calls are performed earlier in other calling routines. Remove mmu notification calls from __unmap_hugepage_range. Add notification calls to the only other caller: unmap_hugepage_range. unmap_hugepage_range is called for truncation and hole punch, so change notification type from UNMAP to CLEAR as this is more appropriate. Fixes: 90e7e7f5ef3f ("mm: enable MADV_DONTNEED for hugetlb mappings") Signed-off-by: Mike Kravetz Reported-by: Wei Chen Cc: --- mm/hugetlb.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 9d765364231e..205c67c6787a 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5074,7 +5074,6 @@ static void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct struct page *page; struct hstate *h = hstate_vma(vma); unsigned long sz = huge_page_size(h); - struct mmu_notifier_range range; unsigned long last_addr_mask; bool force_flush = false; @@ -5089,13 +5088,6 @@ static void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct tlb_change_page_size(tlb, sz); tlb_start_vma(tlb, vma); - /* - * If sharing possible, alert mmu notifiers of worst case. - */ - mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, vma, mm, start, - end); - adjust_range_if_pmd_sharing_possible(vma, &range.start, &range.end); - mmu_notifier_invalidate_range_start(&range); last_addr_mask = hugetlb_mask_last_page(h); address = start; for (; address < end; address += sz) { @@ -5180,7 +5172,6 @@ static void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct if (ref_page) break; } - mmu_notifier_invalidate_range_end(&range); tlb_end_vma(tlb, vma); /* @@ -5208,6 +5199,7 @@ void __unmap_hugepage_range_final(struct mmu_gather *tlb, hugetlb_vma_lock_write(vma); i_mmap_lock_write(vma->vm_file->f_mapping); + /* mmu notification performed in caller */ __unmap_hugepage_range(tlb, vma, start, end, ref_page, zap_flags); /* @@ -5227,10 +5219,18 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, unsigned long end, struct page *ref_page, zap_flags_t zap_flags) { + struct mmu_notifier_range range; struct mmu_gather tlb; + mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, vma->vm_mm, + start, end); + adjust_range_if_pmd_sharing_possible(vma, &range.start, &range.end); + mmu_notifier_invalidate_range_start(&range); tlb_gather_mmu(&tlb, vma->vm_mm); + __unmap_hugepage_range(&tlb, vma, start, end, ref_page, zap_flags); + + mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); } From patchwork Fri Nov 11 23:26:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Kravetz X-Patchwork-Id: 19060 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1021500wru; Fri, 11 Nov 2022 15:39:45 -0800 (PST) X-Google-Smtp-Source: AA0mqf53ZwFpX1JmV9I0EMo0ftnTbSO2GG8Itd+d2NE/1zNQPgRQ7UkIWcCEcm9px4B0dV62jWTz X-Received: by 2002:a17:907:765c:b0:7ad:49b8:1687 with SMTP id kj28-20020a170907765c00b007ad49b81687mr3687887ejc.407.1668209985631; Fri, 11 Nov 2022 15:39:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668209985; cv=pass; d=google.com; s=arc-20160816; b=YFOsGEh85FqmwPOWNvwQlspIid5NBrEOgmJA/3vd56L4BFeS+xNyP4GRKBsz+VKrDy OfSRnJQkyZ3pxROdQg8d19YWE0zlggUfGcOat7r0YQH7Ua5NZY/l6ENwZHrpQmOIVObr NHSPpJD6onSaEE3/97dr8P6UD5Vz1kAMmvNRDtBGZDWgafFHf7PeP8oyMtinXphaizYF 76VOU/rNYY63IlEztIeIjKcFUp4MFeCpdq8i3Jrzuic5uuhn/4b1SMDtgAkClhHDd+rc TLuqEul/AfEuote1N6SGtiCpBAmXT4nUe13SR50uWui7zOzXnkswKbMILI+yap+KujuG k0FQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=H81csLrJ59W5pI2KFQFYj/lp0XhS1ySTEqlAmdoct7s=; b=LH3pbi1BR3cq0x19oo7DMke0CoPgbgc933rKwjDmY65/mz4yg9Ae8Ohg5bKd3ZqtbA BHcW1tgqU2941Td4pQk8Kge3dkJ2CB6ZaR528z+xi5gbLspb8jKuKidMqnHbuuKo5Q0S 1iejHXtf0pY6BBaYqqjuuJ3xOm1b5f1lwtXYDVucxAXSYm5KF4QPjZ9XalozYELTa8LJ zw72K6G8g72tdNsi7UhCO05sCXhbnebM896u8qSNRRoFYLJW/tivajiwLgc+5tzfDJCz 7uZFwLT6/lJy0vMpAb0Dq7pF1fmvdvKG/qjdWmYDvjGmu1vC1hWhK6rmRaZ8fzQYyGaY 4yyQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="Oz1/88M4"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KxLKEkjp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ju12-20020a17090798ac00b007ae0e8f697fsi2416398ejc.652.2022.11.11.15.39.19; Fri, 11 Nov 2022 15:39:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b="Oz1/88M4"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=KxLKEkjp; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233477AbiKKX32 (ORCPT + 99 others); Fri, 11 Nov 2022 18:29:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234527AbiKKX3N (ORCPT ); Fri, 11 Nov 2022 18:29:13 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B9C483394; Fri, 11 Nov 2022 15:29:12 -0800 (PST) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABN4TIr024620; Fri, 11 Nov 2022 23:26:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2022-7-12; bh=H81csLrJ59W5pI2KFQFYj/lp0XhS1ySTEqlAmdoct7s=; b=Oz1/88M4jxuWAKp5euIzwjWz5sIqrqawpiBLgEJ+SZjOiWK10gCsKDs1+FyalY9mIPGl TQ4skQN+dS2aj0CiBbY5Os62oX0/jq/aHxH6C9E7IRIoOKpJCKV8RSyXh0C77Md6GB+p 7g5Wg+AyU6h+J1Yg2BxraPvfHTk8T0L0AIMxNWMHda3qWEE0habZylSM9cROUWNGoWqV 9Pn9SD78lzMCBpcQ/AJoCJR4mL+3KxJCeSV9UtQHQMjnS08Q3gAJjGIGqKiKZvXvkSB6 rSb2Y/AM2a7BqcFDijQ9kCQyKmgSTLWxAJkLy/n+fQEl58J1Eve5Eqx+hz0WbJrm2/bK Iw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ksyr5g0pj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:54 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ABKHkiM022406; Fri, 11 Nov 2022 23:26:54 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3kpcytucmq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Nov 2022 23:26:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fwkz9SEaX6VpB2yLfj/P/x7fHeMw6JjxChrXJLWTF3j9Ks5IancyBkeA2yKzGookcFXKQFiDBKglahrvSkm9j3kUtUQiFLKF8UZ+RlPWPcMZiTXt6jrkqtWMETpncMAEY/nOP6vZ9nqGunSU7vy4sP8BX64b9jBtg3VDOAhwiVhy+Ei7Uk9TRhsppu39cnJCJLe0K2zzq4++2QeJLPmV084iEPaK4R8CyLRdP5tltOp90CTbGq/+tyE3g00ye2uH5/dE3Mykz70EjavRBKk5r8ttNFyuXyCLhD/jj4ZzQOP7V6LWET5NzifMlDkT8lbzF+MiVHN/K9M8dgv0uV6y5g== 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=H81csLrJ59W5pI2KFQFYj/lp0XhS1ySTEqlAmdoct7s=; b=lCU/oySynoqNY6t+PS5FNOHem0dtGfEFLrs2p9rvddp9C3b6uya/3vC4rET93dQ2O8/EcYOTguJPcc5atNmhJBLtbkSfuZh7RDeFQYF4sGH8yY9SrgRigeutUD0djy4c9soojxVWMzkHBpdRBGeip3w/NcBDVePZyqmgCK0ulFTOtR4YW1MufC15QVKUa1uFm3bzGxsPEnFvKIytYZv7ny9Yuu69c+iNDDVCqaXPf6Buu5fn0dwOco/zqdE95gNfaAJ+g0IHbtm1yZnAQjZMGEeXWIGWqVjMdfIzcARdbx+P1mLSuN1P+jeLsgys42ZezNhntgi2wNbA3cBrhv38+Q== 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=H81csLrJ59W5pI2KFQFYj/lp0XhS1ySTEqlAmdoct7s=; b=KxLKEkjpu+/T6rzZJlq8VPBuS/11JUdsdqsKyxTQ/nKHQSzfkpt1+dal6iWFTNeyWG38L4B98eII5DOGAFO+SVuXUt7gJ8WfFrejU/mCcz991pnzDKAtg15t4gQmCBn8veBpsfTapJBNoYY9689pb1RzHRKRnvA6flzZxXtxO1M= Received: from DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) by DM6PR10MB4139.namprd10.prod.outlook.com (2603:10b6:5:21d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12; Fri, 11 Nov 2022 23:26:52 +0000 Received: from DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da]) by DM6PR10MB4201.namprd10.prod.outlook.com ([fe80::4786:1191:c631:99da%4]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 23:26:52 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Naoya Horiguchi , David Hildenbrand , Axel Rasmussen , Mina Almasry , Peter Xu , Nadav Amit , Rik van Riel , Vlastimil Babka , Matthew Wilcox , Andrew Morton , Mike Kravetz , Wei Chen , stable@vger.kernel.org Subject: [PATCH v9 3/3] hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing Date: Fri, 11 Nov 2022 15:26:28 -0800 Message-Id: <20221111232628.290160-4-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221111232628.290160-1-mike.kravetz@oracle.com> References: <20221111232628.290160-1-mike.kravetz@oracle.com> X-ClientProxiedBy: MW4PR03CA0294.namprd03.prod.outlook.com (2603:10b6:303:b5::29) To DM6PR10MB4201.namprd10.prod.outlook.com (2603:10b6:5:216::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB4201:EE_|DM6PR10MB4139:EE_ X-MS-Office365-Filtering-Correlation-Id: 8312ddca-352e-4762-6e85-08dac43c3689 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wo8mYLhwBWUvx/Cs+6IlsxZfr7eQEQJQgNTcia81ciJ2ULhfMXlOgTKqOZwRZvkzQKgYdShpGKWKeMEO2BFhJIdLW0NfDS/yd34+Qq/PyO1aifdaZCtRECHKoRWOVROU1yaVlAXvaBWgyY03UgeYKsA8ZjSgQeMRZgmNRWUpy4FYKkc+rUtx0rQ9nuykTFp5+HOSX0iNpNi/dDE5L04Eg4/uFOm458vj9Rv4HKWevALgoCpXJ3h6SppfEFjiNamsdtluBmpK65u3xiOiESanSb1hGmUuaxzI02D7JNNC1kzTvT1nRVjW1uuHqxg4caA/ZnTox9lV0l/uxh45nRxLbQsVgbQXzsCVLzDcudYkdCKGm46pwkCo/JQpbGfc/HGe9cQaEwA2E6s2jDn1WDJCICt1/wxmIa1OL//k0PFtO79DMDnkf8HkSd3gSgoeRPm9r+sLDyIdk2JxvqQIzQhV4N6e78sEKzXI3D+Eg2fcQjUKb3uBeqiyJXbVa2kdfiOaajYWY7dcqN9qwygQYipQ1P4z7fiPpcL6ylOTyPrjcd1PmWoryswp8Gn9JmkMETrsTJwvT46C0MP2kSv1YgoBDPyvPMFtWb3uxNYnGbApwKFyj8ja8e4wkQomoR2Y2gpSLkTDOcKWB+iaTFKZCO8uY46hxDuj4Ev09+yhzon+Hyi8IH0U2wHgaKGQeszswFYRPpnUPl0kK9XUwkaygDm82hbYZLB04aI4FWtewFRaRvU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB4201.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(136003)(346002)(39860400002)(396003)(366004)(451199015)(66946007)(8676002)(66476007)(66556008)(316002)(44832011)(4326008)(38100700002)(83380400001)(2906002)(41300700001)(86362001)(26005)(6512007)(5660300002)(186003)(7416002)(1076003)(2616005)(8936002)(36756003)(6506007)(966005)(6486002)(478600001)(54906003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MSfT/CQffUS/FEi1NDckCaODCy67H6tqjLFFF5LRs/XFoZapisJFffKSiwmb9q6QD8WAz7DMftDI+XuQczA/nGLBHySjnltAWHiY04dWL4BmfmPPMduLjPh4DdHGNw/bzRhOtJreg73a3483HhsEXUWvtWRSWEtBE6Ld9blXMWXyzUxe7PuXkVec65VWDlISvw+cMc9QAYIwMGxaSjjib8d3+B4xb7iRGZcMg/TMw4QcvLSGtPJRapf/eTrEHlRn+L1uBuSos7tzjJLpUT/6+CF/jdhxDYuuaoTMHLBRSwBsG1CoAsWwEXZbH1FtiX39FXwull/g/ME7LN8W53CcRn2uINSYTBqvgqYU7xSTniSpxILKKJhPtnHtat5YW360D0mN2cT/bZ7PQp1NNy+A/55bMLmNMMV/7t0CSXy+bhaZ8Dr5z9pc2Aj4Nk+aw9ZsW+OD+kAhNVTktZH+i88po2Gt4YNhz29XuOGD2huUxdXl0ioNix9tSLrog6wojDZkmK/vL7RNfL3QIzNuQCWwmEyr2IgKKekyHksyyqI6bj6FghRaRh7vJKTlHI2mcQ0SOio/l3vC93XGz0ZtP64+b3K0HL7tFN/70kD456oCBjSuo8RqKIdPdT8nlNy2hML6N9A4pe/cy/wlVA4G270gu55Dugrdug6vVn+t8OGGln9M3QVuFbUpv3hhhrNh/yN0flSKM33BCNXbQsUDkTL6TxU2BR0RlR8r2uTV98NNXieJy/i9s2LDWVu4ZpNkCaUdE2GR62XCmdTLyzSkoh9ACa02+lf5PHc7uIE1G8vnLbvaBdmsM5U+3Nx0zLTfKxBPDD863VUBdieDj6jnamCJVxa+gsQuzu7pqFmt4Be8LOsLylSswlmh0/fVdpvDY3GBqT42rNDuUmIoSne5B4BkKSJ282g9hLOik+RIEWyk9TmegtkMFo0MclQ99QzV9Uf8Rbr4QkQ9fgThAxKM/AMqUde9RTeCvEgPNCM7GaLqKBIQYGmku81FARhVzNAl9PnJ1ICsOMgTDbl1IJZsGZU2UPWuIqpqmV2an3kH3xeVJsPe/RDLIGa0BgvghGOSTFqQaYclNo5+LFcjQOjLCikpX/JOSEV5fRPiEiFUH5awrxdfAECmDZx14GC1jCuJftgvqwdoHPCxl/Ke2DrN8vEJxm641SOwzWe5Z2w2Gy6pfnTe3xS1d+kTgDGbVYc1WJCo64b0p9Yo+1Cb9XBzF3qI7kJEZ8108/0BXDaqTZ27nhE9VmmOwj2Wf6c34dxPRNcPmVWk4Y3s4mhE96d6s5N2tL5P+D0fk0cNvKeCVs9FdJUAv0hSGo2IOqemM5b9z+6Fk1OB9lF9r0Gdnlsb4ZznIdLXHZRYy7vHaE2MTDo6zC98G0kCG6DByTlEb6ayoNfgQHhUOIAPOIfWd1TarwjyGxJ0JG8BGTwUBjB5X/zv9RDaSWCu6r+j3voSULogDGctBQVka/d3WJkpQD7ot3u1M8uPzJ2irMBkANGVDMuTTRIoLjQuYT9FnA9VpEQn4vWOJcKw1tNNjE7T/Ap2JNT17gJpU6UmafjturN2HgOPKYeFo2ScI+6ZBaNtTr5oeEiENUBoW60qmIWOXTv6SrEX0g== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: JPCAavrchR1BMrTIxwRoDBF5JH2LLSXaaIAqnfyHqiSCoVhe1gN1UCoxaG3G6dlpUxKY1bG/RVEKJJo0NkEG2o3X4jVl+NQLUGZr4yqv7tqmFHJW3g0ksJye8cz9ikjf78I9uoV6A1M4VNLhDsZfo09A72YdkYYn2/9AFY3RIQbv2qlhEcKYHI5H5vDkD+2hQRUDZonKIlXo35cOiHF+q23bSEUTAomjRf7d8XqLneGkW6FcpYwWw38TvwZYo7Hi1q++M0rC5Cgprpad5Jmu+74At8IxthTKHa0nxnUcLnpdDCxZDLxDhHw7hW+nK45Q+dbt6y2JZNv3M1J/Yw1Ay95B/vawTqvHziHzIRjzhk3SflHoUgIt5JpN5OBAP078BzTI+Xb3aN9AJl7aKmDK9Sd0p13dc/nqH2PdQQYfCSIzm0DIPWiiXv84DUg1/GvvucAoSez1UufhF7K0IChU73ohf0k1t/SizdVeyas0oUnQvK8V1XoCBjON/mGdWfCfk7m2WeNoGv3fg+aQMCaM08OUCOOJ2o1CYD6eT0Nz3ogUf+0gT2Nr5Wa0bCjxDYXHDxhuuY3EanqELJ/+rXP7qBDqfBGBdmawaNFsvMyf23iWynaz5G7AyXTtcRmAfU2njgTuJWBC4rq1QKJZs6XudJl+TqniEkqdZT7HRhop/RqWP9hL7BeuF2IjU6SQn16dHwcPeE98BKDxiZzK93MYb30FT9y/YMGVRIPXsuBrqOokF0PYWQjXjMcsl5Q11gbmKCTRf44JoC8HEGY/usGYbPTWxpZzKkH1rN+CokScG560+Rimc5KpIYEAjFVpqabwY0p3mPkZUNZws3KICohO/HbO2w6gpIEM1oaynw/8bv9X0ZhQZTXPBs9/uX0CLA4ldLuPZ6w2FCxKidJyQ0zssMnuo7Ga5JWrLhWMoYLjb1h6D82x7WVKhh3l4TcgPomB/dmFILmkJ6npe9RIYHCVeKAxGTedKE3API7Qm/x95q0sqbuaCq683jTUSBpS0UWortoZUZSy599Cezdm6NmnPwtCIeWBlOgQ2PpT+bN7g99Fn2h2s89UwH8DvKcAmH6K0FTsmL7lD/77zadCzdi1OBYCzjk2No6H/Kyv6TrfaUgYU57AOTQPMdmLpu/E65uwb9YkDuVIdYaZKX6+So9nClZK/WAt9MiKBGGBFdsY7cw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8312ddca-352e-4762-6e85-08dac43c3689 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4201.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 23:26:51.9342 (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: riII9JniIrw0eDCrA64BLssku8Y+9jt8GofcuESrvQKjeSvQXBo06GH33Xpp6sS0kLyDfgocUKbIuP87R3pxAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4139 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-11_11,2022-11-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211110159 X-Proofpoint-ORIG-GUID: hcGCgWUR5jy2wwiHVzT_X5IEyK5UL6EB X-Proofpoint-GUID: hcGCgWUR5jy2wwiHVzT_X5IEyK5UL6EB X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749244953932501956?= X-GMAIL-MSGID: =?utf-8?q?1749244953932501956?= madvise(MADV_DONTNEED) ends up calling zap_page_range() to clear page tables associated with the address range. For hugetlb vmas, zap_page_range will call __unmap_hugepage_range_final. However, __unmap_hugepage_range_final assumes the passed vma is about to be removed and deletes the vma_lock to prevent pmd sharing as the vma is on the way out. In the case of madvise(MADV_DONTNEED) the vma remains, but the missing vma_lock prevents pmd sharing and could potentially lead to issues with truncation/fault races. This issue was originally reported here [1] as a BUG triggered in page_try_dup_anon_rmap. Prior to the introduction of the hugetlb vma_lock, __unmap_hugepage_range_final cleared the VM_MAYSHARE flag to prevent pmd sharing. Subsequent faults on this vma were confused as VM_MAYSHARE indicates a sharable vma, but was not set so page_mapping was not set in new pages added to the page table. This resulted in pages that appeared anonymous in a VM_SHARED vma and triggered the BUG. Address issue by adding a new zap flag ZAP_FLAG_UNMAP to indicate an unmap call from unmap_vmas(). This is used to indicate the 'final' unmapping of a hugetlb vma. When called via MADV_DONTNEED, this flag is not set and the vm_lock is not deleted. [1] https://lore.kernel.org/lkml/CAO4mrfdLMXsao9RF4fUE8-Wfde8xmjsKrTNMNC9wjUb6JudD0g@mail.gmail.com/ Fixes: 90e7e7f5ef3f ("mm: enable MADV_DONTNEED for hugetlb mappings") Signed-off-by: Mike Kravetz Reported-by: Wei Chen Cc: --- include/linux/mm.h | 2 ++ mm/hugetlb.c | 27 ++++++++++++++++----------- mm/memory.c | 2 +- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 9e7cad65dfde..d0e8d5007343 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1897,6 +1897,8 @@ struct zap_details { * default, the flag is not set. */ #define ZAP_FLAG_DROP_MARKER ((__force zap_flags_t) BIT(0)) +/* Set in unmap_vmas() to indicate a final unmap call. Only used by hugetlb */ +#define ZAP_FLAG_UNMAP ((__force zap_flags_t) BIT(1)) #ifdef CONFIG_MMU extern bool can_do_mlock(void); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 205c67c6787a..0cdefa63f474 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5202,17 +5202,22 @@ void __unmap_hugepage_range_final(struct mmu_gather *tlb, /* mmu notification performed in caller */ __unmap_hugepage_range(tlb, vma, start, end, ref_page, zap_flags); - /* - * Unlock and free the vma lock before releasing i_mmap_rwsem. When - * the vma_lock is freed, this makes the vma ineligible for pmd - * sharing. And, i_mmap_rwsem is required to set up pmd sharing. - * This is important as page tables for this unmapped range will - * be asynchrously deleted. If the page tables are shared, there - * will be issues when accessed by someone else. - */ - __hugetlb_vma_unlock_write_free(vma); - - i_mmap_unlock_write(vma->vm_file->f_mapping); + if (zap_flags & ZAP_FLAG_UNMAP) { /* final unmap */ + /* + * Unlock and free the vma lock before releasing i_mmap_rwsem. + * When the vma_lock is freed, this makes the vma ineligible + * for pmd sharing. And, i_mmap_rwsem is required to set up + * pmd sharing. This is important as page tables for this + * unmapped range will be asynchrously deleted. If the page + * tables are shared, there will be issues when accessed by + * someone else. + */ + __hugetlb_vma_unlock_write_free(vma); + i_mmap_unlock_write(vma->vm_file->f_mapping); + } else { + i_mmap_unlock_write(vma->vm_file->f_mapping); + hugetlb_vma_unlock_write(vma); + } } void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, diff --git a/mm/memory.c b/mm/memory.c index ebdbd395cfad..2d453736f87c 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1673,7 +1673,7 @@ void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, { struct mmu_notifier_range range; struct zap_details details = { - .zap_flags = ZAP_FLAG_DROP_MARKER, + .zap_flags = ZAP_FLAG_DROP_MARKER | ZAP_FLAG_UNMAP, /* Careful - we need to zap private pages too! */ .even_cows = true, };