From patchwork Thu Mar 6 21:49:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Shi X-Patchwork-Id: 14005374 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 C144BC282D1 for ; Thu, 6 Mar 2025 21:50:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 68A8428000B; Thu, 6 Mar 2025 16:50:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 63939280009; Thu, 6 Mar 2025 16:50:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48CAE28000B; Thu, 6 Mar 2025 16:50:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 2569E280009 for ; Thu, 6 Mar 2025 16:50:10 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B70C41C7771 for ; Thu, 6 Mar 2025 21:50:10 +0000 (UTC) X-FDA: 83192469780.01.4E24D1B Received: from CY4PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11020078.outbound.protection.outlook.com [40.93.198.78]) by imf02.hostedemail.com (Postfix) with ESMTP id EE9468000D for ; Thu, 6 Mar 2025 21:50:07 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=os.amperecomputing.com header.s=selector2 header.b=k2rIq0Vc; dmarc=pass (policy=quarantine) header.from=amperecomputing.com; spf=pass (imf02.hostedemail.com: domain of yang@os.amperecomputing.com designates 40.93.198.78 as permitted sender) smtp.mailfrom=yang@os.amperecomputing.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1741297808; a=rsa-sha256; cv=pass; b=oyCbSNawbGH1hnwp2UPq+8tM4zD/3ZfQQdr5tV6EYQz4cEX7AChIGVoogFFG3Vtfq3igvl t9fXgtcpv9s38iCWcr1FcbwrGV84VAGGzyq2TpA/MaGGCVd8wvixLT+K9iChyCnh8tCSVw maeMeABeXxG0+MALuEAh+AV0souBqoc= ARC-Authentication-Results: i=2; imf02.hostedemail.com; dkim=pass header.d=os.amperecomputing.com header.s=selector2 header.b=k2rIq0Vc; dmarc=pass (policy=quarantine) header.from=amperecomputing.com; spf=pass (imf02.hostedemail.com: domain of yang@os.amperecomputing.com designates 40.93.198.78 as permitted sender) smtp.mailfrom=yang@os.amperecomputing.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741297808; 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:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=5TBkLf7pYhVulBWnbhXYgn+prMAvjn84aZKC/dpgd0U=; b=sPGe9z1S0y71xA7P1e5/fn0QdXm8mn1RNS6QvyPbYO01Hdxp84U6sywwgM65m8ciaj3awA /v+/3U3lWLxl4LofX+X3Nt6VcAhMeLRBg92KrT1jOGS0DFVzTGhOGP4rDEKpxJQhNWhIty 8HpZaPKcJTyF9hjnN7nqbkVzEhBJc7k= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ixRCuitLuoTRDt/l+l8yA7k1yamcXJBQpsH3JJOHmyuUXmMhmywTgKMtOjJ66CYZbUTeHMlHn+qrmkJ4KY6bZ2ATwzl4g9QzJwCAHYKd1F82cxzs597RX9YsCrv4bCthnmCev1dK24JHsdbsf0kJtoRMISGOqdDt8LC5QU+IyCdlfbVbJtMQS14h/B3DlYWaGA809Q6hWnpof+FnZ4r2HJyADQbnYY7ooyXE898i20odMbzZoCfHAzYvPSDRZ2Acys945PIyo0Rpiw+av/wibyFotVfhU7qmwalfB9uu86cbxqwTLC+2UUqyXcKxknmfX0HFlSUz+jl2/PRimkIZdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=5TBkLf7pYhVulBWnbhXYgn+prMAvjn84aZKC/dpgd0U=; b=lv7xnUx15yDgs4wOH2EXdFCnpk2S1l4tmAjRXQzMb7/9TZNNPBbNAgBJiAklP2UmUL5wMc5Uusoi4takxpE1RsIOB9NsqM7gu9+Exike9lq0yNvRamsZW5j3myiJ4eKrHaN2aYEyhWl0T3uit8DHsPB9bfZSBIjbHivrW3Tki6yMTTDRPPyfR+0WgeNtXlxhLfbnOvcljpCR9knSOt7oLYOGAHezKJPUwXOEmsB1RxV9PN/90MswSt8xTXpkcZRZ03Xjer5osH+OtpPtZjWoMzVHu1f2a9ym/JL8obc2BWhAerb+dE2MGOOXxjOZBfbDDHLPTA0Z4gU+Am+kTuMhVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5TBkLf7pYhVulBWnbhXYgn+prMAvjn84aZKC/dpgd0U=; b=k2rIq0VcIkktKCvlbMaKiJGlu+JbO/vzBpDf2BommVbWOkZPQx+rdFRFQ3VsZr0fMcgzO9rfZ0x6SJyFYEDPM1WpYQcM0ATY7Yspug0QZ9koVRUw60sDqequVEcjX4m3XvEeBbeQIEykF6QEQ4v/6VGJ/OZpVvmXNBBJVqPftw8= Received: from CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) by CH0PR01MB7091.prod.exchangelabs.com (2603:10b6:610:f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.19; Thu, 6 Mar 2025 21:50:03 +0000 Received: from CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460]) by CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460%2]) with mapi id 15.20.8511.017; Thu, 6 Mar 2025 21:50:02 +0000 From: Yang Shi To: Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, vbabka@suse.cz, jannh@google.com, oliver.sang@intel.com, akpm@linux-foundation.org Cc: yang@os.amperecomputing.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm: vma: skip anonymous vma when inserting vma to file rmap tree Date: Thu, 6 Mar 2025 13:49:48 -0800 Message-ID: <20250306214948.2939043-1-yang@os.amperecomputing.com> X-Mailer: git-send-email 2.47.0 X-ClientProxiedBy: CY8P220CA0018.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:46::15) To CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH0PR01MB6873:EE_|CH0PR01MB7091:EE_ X-MS-Office365-Filtering-Correlation-Id: b09eea70-a34f-4955-9809-08dd5cf8d96e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: g7oH2BVqe5jk4rVUJ564D005PijSfzomyJdUaBbEXUP7pQWO8UsXFRwPPtPKhHE9bjofduARbgCPG+UrMTSXQ6a9+anX+JRUtF56rRMRUXaZ/lWo41Fy7FFC7i4uSOAUEg2vWW5r00XcIgBsGconTjBDkS7qms9o3vZGbVJ2yfkD4By7FFCS7XUGJ7uT8X4XqhWyrIUzHrLkl77oqpCwxMSRmKt/1MOJIDli7GtHmru2PWZJKwCw6OGsf/TUeGAX3aCMQrgOw69XBTcLWnIGodNzNnQgyhGjP/UiLqqtWTaFuga+BP1wc1ajBQrB3HCWRDmuS2Dm/2sJq8AnLKI3lEry7FcitvrdiZiPEHm5sp5zawQn6AZfW+vzQ2va0Y/96vaV16ONnM4Dq50OxTyNwKDDKiSTfjemZLSy4axIiLx6qEb7ukqaWhT7/qTnWasQuFQ2tW+K1tDDyAPDYpJPtiA/1dTWApwJsGwviXmwgoZj+mqjTQpGvLVFp+2mna2sisLPZ1nSAkQE/ml18ZjhdpH0Gr+HYTmlYwEvcfDKqjtmlggri3zWHXQR88oNweXuByg3Vw5IieDmDerv0KYGfWyDp7M3xwGR3x5LWsrCn1Te5bj8o+SzvM853nFcKXeODLhjSAskJLO3+E781J0PfEOd54gfwZqVusVomnyC0JCJx0xuRnFUt7nmRVgDYuf/7ymcoeZ6xxYVn/pGXqcOzqCf2OJgqoYvqjjjlJNPdHvebZscR9kaN9rArMo9iRMVoxmlDKR9Z1pLx/tS7073kGtQXSHFosm2E3f9ZwlBnDwr2j2PCGtmcPafgCYN/e+FY55S7/vCXWqya99O7JgR+xRB6XrdjZST93/YMjANQmyx5tL450E8SLJclfzbIH7kd8Pmrt78JKiCQW0DOHC6NE8BZdSTPcSBC4cWHOENfeNOMh4ZAWecUD/jypLkdLAIkhMAMpi9dCilKi7NSUq53qJOUTN5nX7UmL0kUg2rvxMW7wG9awHuXfvBwX1UvQ79Lm0oa8U1vHeQOlAS9/vjki7GIvBbG57U6ApSU9DjpJQpe60TEzNu52t6T2mR3AAXhETzKNxecULbbFDeeOtrLZucZyHmQNvbkMIyXlWi7licrQ7M+gZFpurAvPHNLijAldxCIb62562HrrLlW790SI8g11Vxige1vHPJs/J5y+nLbwe9M5upefzVobdfkYua+vgQepH0kvna1c1FDfkN2d1I0OqfG81XzAhYIXeAwznLA4dIpCT93cLROyAIR8cee9BY/GEA/7B4NzVAgVGX0zaNDhsgjblcrceA7STaopRZLDFhJINve2Ylc1u98iyyMmCIWZBBFVJ+YqHVe1cPfT7GyX0wnGvoOtQd8MDEYBDUpHuiEeqQL8VgJdiSpZndqkb8cZ+iJXBTINvNBM/4eoVGdjc2th5NmYqeRxobhvqgZKb9wfFB4OLzcV2JTXmj X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR01MB6873.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hFFSTV7HtcbIRdFUTbOmxRgTnJvOBqF10yFV5RdUa2+meqSJiHD6mwIEuTyzjefuL6qbqjan2452ODq0ENIFoXbF9au65yKJZh2zvu3Ln9dlSH5216tepR9KNFWngazmSp/421H1YjAMlMmVJ0b8xJyw6zFsMKAehillPSpXri8IvbeZOsFcoRxPO4uHDfn6gvKmRSy0KiyXeLesatOUb89LNAFYKkZ9Zu6AFqKSz4mvjc1l5y+s9Zr+F8EGNO1zRPZDb2UISoi5ai7TC6QkB0CBakjq/fP5uUOnhMfouzXjXqnOJMFDmOECnUiBOaNxlMKc/5YYoSaiuqbvPupbrF8iRrcYlJV63NfcxtuT9Jlf1RYBUmDnb9CM4VAdeVt318H6o1nLcQMy50hYZAynifkPltNbW3WGaj4zNfMfC7dSSynXAlFZI+SLEgv0EBFbaDc+imondRBXH9iMgPvsOKaOTq/Fx/wrCce5l/PDYzcF7wlTaWI0iq3szzl6ozfPbw9lleUE+TZKIVuycAPOkG9LxHzbac1VVSD980yo65Ehy30L36kiWbTRZo5va0HrvWYMM9pe6VyDXho2hMQMC1jBCC4UoxMqmLomP51qWhCoxPfjQ4J7FneBBn+WQRMNdohIhBTOG/ufy8MBCEH+aQpFMNBDlhHyAr26k42MYjfkZOojTPfryRaS3P8ND9PPy4IRpjPSxDfJ87WAL72Y/CTo3ZyvHeUW1AG0mq9QgHQE9UyDLDi2Jf6R2rxo2yYITW5ta5M3JXoRcmUT3AQ5XQx+01a+mKN+TCcAc8vA0V61409mAjfRt70UO3a6Mv60o2Ojip5QBGNGrgphpY1lQf4KJdClEDlMWeWU2OjePSadCUsMiLpiV8AjiBbJAxE2klYeGuYNPwytduRTElgj7BLhuiLnjEfdKvAWGNlRVK4UM8Z/JnvsI0fWOWU/xTeQgFtgkjLdOpajonmEmJnybbyfIHqHsbLAHEgmSb+axBbWvLDQrK+xTB4T67iA6sBJAbRDA8E0MIIKURHRBYjnzDpBHqDqE0hXCpg/MyVeVhuFiGGzCAUvXP5STGhu3VCqEo2zucYX6U17EiT+9AzE+LXwIvu4x0d00D2Igg+CuHc9M16aEJ2GVB70Z3YLqGRwSHRIH217876+gguPRDdhnzE+AAosuRsGdW12P2yg7pHPO6MLv7gyvzbjdcIJBNs58QhvzSK1VHKOowwDkzBp2ZLOXFJ/OD59Af1xyhM4GKvDscrudkTdbHiZWZs46ndAKhzf4lneNMOYFJ78uTMNSb49HSb+LIg2VR72ssfg/BiS6GOacpT8KiZBTVR9Mq9lMAAVsSUfvC4wRsT6PftNPFwqVuzqAhqDzd5sKmuZIK8Hy3roBkcY+P7z/1L0xMWCU0c5znu+9hhIX5K4CL5ZgPIsuluEFlYRbL6Ae2Z/KU08hi+7dOwdDRT0Yc+9QBp0dM9JFhXdyQ9BXVTsdstKa/dfxJSu9Ost1cQvBNi7HnfiDEclvlPAM76RFtvSxBCtdsJpOpJmTnhE2jKkSlK2R7i6B41v8di6XfOp1h9s9A5EZCpkZovEsyB9uApsAm7lN20TcNUINjmi7SKy1JL1fHdz44INr3FUie0xqzECrvY= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: b09eea70-a34f-4955-9809-08dd5cf8d96e X-MS-Exchange-CrossTenant-AuthSource: CH0PR01MB6873.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2025 21:50:02.7791 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CvM4InqV+eia8LFFEF5Iv88vJNAXmvKRtA2dW42HtNEpPefUtfBoig+wE9pY/rh1bq9pUFh5BAIerWDMRxJPILj3xre1LoGe/U8uu3ekAGk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR01MB7091 X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: EE9468000D X-Stat-Signature: i3b6ecq8zaki3pripn6zyth46u9kynbr X-HE-Tag: 1741297807-482757 X-HE-Meta: U2FsdGVkX1+rp7MxLQmH6y2pjCieWoAZisiYB5JzCXhmlCu2QSPZO2lPhFD6ne2qxNTwFO1d1+z1rKME7gTnWmeSabyXqgTtU3XBnBKtKNJ5CL8Bqct6GObF/yruh/TMepweO+pcw+uoDkk7mPU5QD6nfk3ZuoPjan5Ti/PgCMFg8Fn3ShyxKxnCgaqwEAVv7NV7yhKRpPzeVM6NOIy3YbjzOEJs0nm+idf060DX13o04X8RszicsfAkMvdfYaJbtB1aZVb0a5NN7rLdsAyPSGI13C2wpBrtiLSiGwRbS0tJlpUUjk9PaVJbY670EaVfmX1q4EsDEFZLDqgbx/03SeF/XHE22pfCmzs/P+G0o/wUfls3o57wa7LVd4VvebotMPMaJjX7Z+MLSplN4Poc/pEuv53aXlK/dVsIJZgHvc1IamXzwxikx3fAdyYFGoHjnTu426EWYruODIgBBd32ZjwTPGSFYx8vqppPHocyYvcBWWz5iCfB0Jd6bXfdDcyCKK+chiZQCYpzh7KQIJ9FsEca1aLCnZPuqGujBO47nu9gZdCub1u0Sv978CNgpJjRM7OJVj3LjAoY4cw+cqNZKOXjK8PZ5clQfCAz/GG10mVMF9CEy73J/S4uaWTrrGdrF2FTRwei+ZKtoSiN5wYXgdJGngRycTTP/1jV1rq5DOVNDHHgljV/EIzI6K0OTwLuvNBsGawzW2l33GRkq8gQOq6OW1nqwvSbuXyRcd1EDCG/KoBHdc6Haoq2DVF5WNMaGTf2QS78SfYMnr1G9fctdxmK/YtOWlOrdhaQ6ol/sKI+DLbF7DfVE6dXf8ZQtRKMeZu2xtmK+MSkIlSA8Wvww+wMfRE/XyQQTtwYCPyq5BZ1skpYcjS2F8LfV5OcA6EL1h5Iy0S1HcFLksi+IiQXQIDHtimjGxSrg8gkbSE3TTASRILMWNN4R2uO45853LeAqKbscgY5+IB9YKmI32f QUbb6Nbm H2dGvfRebubptTH9UjiuHAfteqMd5T5xiaLvGQC8U/X8mS3Qrw3jwNF/GsiyYMgDLy9PBhoeeqpU6ClUuSxdJ11PCXLolbR+9qvDQ2OpbiKulXi1et4TdfcucVLxMuKlpneZrGBSXL53smTYMyF74W8faYgkUFcc/gZ4LngtxMOFa64SJJSxxWK+S3KHSzteDekRAcDSk7pm0XGTpcYI/k3kGt3+6tQ+9TmBWc0+TmyUdlKVv6RZL2dVa/5Phn3a9tI91Re2/ATcF6ICWaWTfBSHHEqjlDlK4JzhFWxTfaxOHhCh/2KNkxF1OvLSjzXVCxlg/gJasSKC2U2gTqCn9CtWIorcsFl6yvpnqDdidwrg0DcpbxMiiV/MdLN2TY13VCWPM1KHg3k3JIt+AimEDqEw6jGKray5wP97a/Gm7Gw9awhDOIc2F7E9I8D8s1ji8V1YoFlY3f2qGsVL1kwq/Ig7oA55bkw97icRrs4OPuFiMXSXOd4wtUNXsO5V4HJr03fSEjLbciPbODdbmry7NA/BqiBf8j2mpNi3d1x7wgpfKGWA= 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: List-Subscribe: List-Unsubscribe: LKP reported 800% performance improvement for small-allocs benchmark from vm-scalability [1] with patch ("/dev/zero: make private mapping full anonymous mapping") [2], but the patch was nack'ed since it changes the output of smaps somewhat. The profiling shows one of the major sources of the performance improvement is the less contention to i_mmap_rwsem. The small-allocs benchmark creates a lot of 40K size memory maps by mmap'ing private /dev/zero then triggers page fault on the mappings. When creating private mapping for /dev/zero, the anonymous VMA is created, but it has valid vm_file. Kernel basically assumes anonymous VMAs should have NULL vm_file, for example, mmap inserts VMA to the file rmap tree if vm_file is not NULL. So the private /dev/zero mapping will be inserted to the file rmap tree, this resulted in the contention to i_mmap_rwsem. But it is actually anonymous VMA, so it is pointless to insert it to file rmap tree. Skip anonymous VMA for this case. Over 400% performance improvement was reported [3]. It is not on par with the 800% improvement from the original patch. It is because page fault handler needs to access some members of struct file if vm_file is not NULL, for example, f_mode and f_mapping. They are in the same cacheline with file refcount. When mmap'ing a file the file refcount is inc'ed and dec'ed, this caused bad cache false sharing problem. The further debug showed checking whether the VMA is anonymous or not can alleviate the problem. But I'm not sure whether it is the best way to handle it, maybe we should consider shuffle the layout of struct file. However it sounds rare that real life applications would create that many maps with mmap'ing private /dev/zero and share the same struct file, so the cache false sharing problem may be not that bad. But i_mmap_rwsem contention problem seems more real since all /dev/zero private mappings even from different applications share the same struct address_space so the same i_mmap_rwsem. [1] https://lore.kernel.org/linux-mm/202501281038.617c6b60-lkp@intel.com/ [2] https://lore.kernel.org/linux-mm/20250113223033.4054534-1-yang@os.amperecomputing.com/ [3] https://lore.kernel.org/linux-mm/Z6RshwXCWhAGoMOK@xsang-OptiPlex-9020/#t Reported-by: kernel test robot Signed-off-by: Yang Shi Reviewed-by: Lorenzo Stoakes --- mm/vma.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mm/vma.c b/mm/vma.c index c7abef5177cc..f4cf85c32b7a 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -1648,6 +1648,9 @@ static void unlink_file_vma_batch_process(struct unlink_vma_file_batch *vb) void unlink_file_vma_batch_add(struct unlink_vma_file_batch *vb, struct vm_area_struct *vma) { + if (vma_is_anonymous(vma)) + return; + if (vma->vm_file == NULL) return; @@ -1671,8 +1674,12 @@ void unlink_file_vma_batch_final(struct unlink_vma_file_batch *vb) */ void unlink_file_vma(struct vm_area_struct *vma) { - struct file *file = vma->vm_file; + struct file *file; + + if (vma_is_anonymous(vma)) + return; + file = vma->vm_file; if (file) { struct address_space *mapping = file->f_mapping; @@ -1684,9 +1691,13 @@ void unlink_file_vma(struct vm_area_struct *vma) void vma_link_file(struct vm_area_struct *vma) { - struct file *file = vma->vm_file; + struct file *file; struct address_space *mapping; + if (vma_is_anonymous(vma)) + return; + + file = vma->vm_file; if (file) { mapping = file->f_mapping; i_mmap_lock_write(mapping);