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 68868C3DA4A for ; Mon, 19 Aug 2024 09:06:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F37786B0085; Mon, 19 Aug 2024 05:06:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE7F46B0089; Mon, 19 Aug 2024 05:06:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3AB26B008A; Mon, 19 Aug 2024 05:06:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id AFE286B0085 for ; Mon, 19 Aug 2024 05:06:18 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 62BE1C10CB for ; Mon, 19 Aug 2024 09:06:18 +0000 (UTC) X-FDA: 82468413636.02.72608D8 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf11.hostedemail.com (Postfix) with ESMTP id 25C7F40013 for ; Mon, 19 Aug 2024 09:06:14 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Vz41yVZb; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dCBJbnsC; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724058299; 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=zSMt5VZnx+S4CsaExh5dSi+dp5VbjXM/Yev/onLa3eg=; b=GCQEODwO4ljAJ5lX90fuiYJIQz/mgOXpyIXBDzvv2HjZ51LhbriqmQO0uwSUxvuBVOEVlk 1OnbRgEDRLiYmLXb/pnx7zqKqPPgpFSpTyg0SC0GkWWwdoKfXqZXRny6/KCLhxVu4Ox6zr dhVJyWeeSVsvUSUUrwckRo2VXXkBEbY= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1724058299; a=rsa-sha256; cv=pass; b=Q8l7f9Imz9df9GuEGmLfc2semholNRaJdI95RxtJARt/2sE8WgSxVtQoP1ydW73o5tTxJv YTkcY+ovcXJCeE+geoVNgtEIlASkzu6otmDgAZsR2EdwZd13Gx0tgTlrA8FHJab5bPHy0U 6Vh13WPIYUyW7yGUjh6fxTUl0w4qIRg= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Vz41yVZb; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dCBJbnsC; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 47J5fVSb019692; Mon, 19 Aug 2024 09:06:13 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-11-20; bh=zSMt5VZnx+S4Csa Exh5dSi+dp5VbjXM/Yev/onLa3eg=; b=Vz41yVZbXdDi/XwkiZTiqWgltT3/dc/ JBn0ZgDMVs3fLz0h63wVi3fEYJm0lYz1UKxaUm19l+p7S9PGOlQuTI9sr8vSd1zD XYvwht1DCAyydQ2lakVZz/YvhkSZ4sYe+qJbjKdDNYC2FsjovGAx4jMe9zFj8XqQ KehRLFoHpGkd4KZTeFNxeul//dQjSj3mnuNAA/bwkuscmey+1SQzDEpqlfjqSOw2 iGXbUAsOJtUYqjEClrnQUXVO4vk/gKB+4uM+n/whmTkZsFDUL0HMZsPckM0SSUpH 6qyqa2hTVWBoK1pNFGeL1EKTcYGAMKrv/sdXEIqoAUYN/M6TVP0czpw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 412m2da65x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 Aug 2024 09:06:13 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.17.1.19) with ESMTP id 47J6t83C004209; Mon, 19 Aug 2024 09:06:12 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2044.outbound.protection.outlook.com [104.47.66.44]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 413h2dujw7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 Aug 2024 09:06:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h+8GBNiTCHp79GKkdoq+1LJvnTHXqoFVs5EZoUdZciOtLbHh+WEFSHUibCFRZ4/cyJrJMImMFnesw9yJXHHN/vwTyIJccvjwI07+jD+RqEG9bVf//tVPmDU1QTTVBWJtnNtuevX7kN+BuNv9I9k28YABhFhYNojJuV2U9G+QsknYGgwQMftHoDoLVXsAtRhb/pztPPMyWLGXA8oaaQM/zCtRTRyux9kxMiDaMX/G2ljSHvgPNpB+vMCP8MDaJSNy2hgV46JOhNlsbNFa8xLKUys2oJT+Oi/cmLFhxKV4Ratkbwih+Teh/5j8LTvDPHjm6aRSdh1WNRSwIf+Pik0X5Q== 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=zSMt5VZnx+S4CsaExh5dSi+dp5VbjXM/Yev/onLa3eg=; b=k0eo6mIyS98HaC2duysIN03t/9yBZARrPGeNRsNps5RTigo+T5LHlD6MuNJLgKhEPkl7CGuMKrxi1Xd1uG2ieS/zOaGHcAOkMqWC9wNu1SuEOZUECOOZ/HYqGCjDOsIFeUJcpxt0ZHOtWyDW2ciwu4q6Dr7q9LODVQD0HKMRhFApSCa8sJuqQBbmGn1F2EPX/XXsziSx1SDB4U/iarczQI8EY2IrWlnUQJ7J+syfgyBjdmvVM7eoAykf7Wb2nnfZHbQtnDMiQGMul9jvqx2+OgAhgbosky8lhbXIee8CgqX1ER4m+vLocRQ+xSdE2p9fL9drr8M2XCWMB44jiQskuA== 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=zSMt5VZnx+S4CsaExh5dSi+dp5VbjXM/Yev/onLa3eg=; b=dCBJbnsCcULV0vEixnBaLB6ym8QavwJD9kbWYkERPjfMwm0IY/nkgHQfMzfpY8VtHzO1m96t7a2Q/bB7jCXD1E8/VJI88jxVfIDV4zmXX/dZhKWHP6pHjIdLcTs9BwnlOuU+ApPe/X/wcE8OIXDscPF0CK7zBCNOV27j/BeIImg= Received: from SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) by PH7PR10MB6129.namprd10.prod.outlook.com (2603:10b6:510:1f7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.13; Mon, 19 Aug 2024 09:06:10 +0000 Received: from SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e]) by SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e%6]) with mapi id 15.20.7897.010; Mon, 19 Aug 2024 09:06:10 +0000 Date: Mon, 19 Aug 2024 10:06:06 +0100 From: Lorenzo Stoakes To: Kartavya Vashishtha Cc: akpm@linux-foundation.org, Liam.Howlett@oracle.com, vbabka@suse.cz, linux-mm@kvack.org Subject: Re: [PATCH] mm/mmap.c: make brk() check RLIMIT_AS before page-aligning requested amount Message-ID: <334b96f7-b01e-483b-86d3-a801c459a96b@lucifer.local> References: <66c29336.050a0220.395e9a.76bf@mx.google.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <66c29336.050a0220.395e9a.76bf@mx.google.com> X-ClientProxiedBy: LO4P123CA0108.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:191::23) To SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR10MB5613:EE_|PH7PR10MB6129:EE_ X-MS-Office365-Filtering-Correlation-Id: aafd7cfc-b65c-490e-738e-08dcc02e2ae1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TrIDJHBqbu6coBAB61SBa3aCl/nGj0bkVzsQunZPFD/AWbNzO2PPC+WgtF8W?= =?us-ascii?Q?as8s6A4VQMJ+5bqk6/h5kyM2yd+ymR3uyWftqmwdoK5tVmnicVlKU8+MySHV?= =?us-ascii?Q?6wwziHoQDuIDkId7eNY6g1qS9OScJ29Plc2trvo6xMUgeq83LM/SZ2vNHBHV?= =?us-ascii?Q?luT3DKine1EGtColvaNCXHxt1DJe+V7GlfwlWe1hZNQRN9kRnsAhvH3MzIy4?= =?us-ascii?Q?+gTZ3PxvmGt35mi5EufKv1PiIcwkYQdS1JRsUytM0q/RKdQ7ugzaQr9K4DFC?= =?us-ascii?Q?efG4Xrd5+OdG7CMnDzpaCruSyq1MNYZcnuWqDxOdUBZ8n2xlq8pYyvo515/i?= =?us-ascii?Q?5YkWiFcGZFeyeaZno093yGeYTjyzBVydaQTsw+vDy+kLytq/j2uIFeC2qcMk?= =?us-ascii?Q?pxkGJjK86n+xDUN8PUjMkdp/9CO6PSOb1UfNP81pGzzkdV+bjqGAdhWgS4cf?= =?us-ascii?Q?0LL93QPo7qR+LYM+Yshlslvrs0InqxqmoIL0pfDH+Fh8G40WYkzyL8Ds7YmA?= =?us-ascii?Q?msSj4DnE524A1U7Z4kZsHT2ca6spOVrNQ6erqeQATA1EZZYRQdBG+Kxntx6n?= =?us-ascii?Q?k1D4fp/UEcdXW8nOuIRUgG+gx6iSMxPo19DLQ2uUPKz8S1TqUtu9p9rFh1LU?= =?us-ascii?Q?xZ3L2HAyytN30DCHBwshHSUKHlb/ibXznoUcF5uAF7s7/Wp6eCvNqmzwgZYE?= =?us-ascii?Q?xAmDzsEE37u4HjkZtPMG4PmGjvldz2l8usLl64BfpwXbo/JruZRXv9G2u9ch?= =?us-ascii?Q?+/zRE5UuP5RB7zum3KQGxUwd/F9aHCgwnY41wJUo6ybJzaU/MaXZmpS7/l9u?= =?us-ascii?Q?sxTtlA7WD9+zBQDJ53Wfw+pPpQe8tyqoKgca9cCDri7++GB1AL9CB3Vw7T8M?= =?us-ascii?Q?Xdd2UblBPptZozwbXCf0rCZLa1Z1lSYV8P/F92g0rq9qZhCj1f5rZa97no6C?= =?us-ascii?Q?5c6zMvzmHyHmCcGrDHvRkxMIwLYYoffszhZugGMtwuYp3EpCF2WnjBWQLRge?= =?us-ascii?Q?38cZ8opdRZg8tWxhN4mXnUrVAgTj1Qjdz4lWRYRzZ6iukW6n2Mnt2YXGzQmT?= =?us-ascii?Q?U18hO0EMsVJ6E0St0N0GmTrxss6vF/Qfm3mh4wz+/euNcqwbuFSnDRSUwmBu?= =?us-ascii?Q?E6OrHSk0qJvy58GAPAs2/2SIMRd9tQdE15arpOYEUKGtQ0rmJ85XfPgb46vy?= =?us-ascii?Q?XHApB9zOi1JmTGA+GvvZWMytn1xo4bmSB25mF/WJkc8gAfJEfIoMfOxugsuf?= =?us-ascii?Q?y8Ww1STqlkNbkC8D+2xqsr3nDAENRt3YrW3uBGJByKn9qSLAVhMfl4kvAOjv?= =?us-ascii?Q?c4f7NK5QIfOVMUTVNsdQen5PsXVqz5Nm/bROxRLMeI3E9w=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR10MB5613.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MJcit5uB9gw7INj3dvF50jFqWvAb52DJhmDOiwfAbaefsjvjc48186fXnOJ4?= =?us-ascii?Q?qiLLLJ4d379gT0RRAcdmyFupJ0xgiknFpzs56XJYxYdRtx6jJXPTklAeOSpj?= =?us-ascii?Q?aSY2VPRG1HQBD94IkclZ5mTSDXAva6st+3nHr0qjAX1ozwC3nIy6Gegg7/Di?= =?us-ascii?Q?DnUGmystv2PiftxfkUh3LPKy0+Tu8DTt1Fxsfx8pu/kX/pEnQYNVZoBroIQg?= =?us-ascii?Q?7ojqaLHIoI8VLA+q+bSIQaCrP9HxzgCgVOCJZ8OgJrjXrIYck+S/VB6/tMX1?= =?us-ascii?Q?aYuMwdDdhpB6HHIngDN62PTGCJ/NIESsf3yLFHhv5c63B8afyC8Xd8dlBfWl?= =?us-ascii?Q?dv2aSHNzGAkLzdG/RqXRrhMpZhBXpeZZjlVt59Vs6JMEEC3z4qn3vfSU6xuW?= =?us-ascii?Q?SBdwmU61bN2djqYZuGQdmOGZaoQ/MMCQKVOHPdZbdKu9nm/x7MQM8ogmVXYY?= =?us-ascii?Q?Hu+MtrmN6RZedriSCzLixbTrMu/1X5eM/7orKCF46MtSJZSvnK1kJifRwZuF?= =?us-ascii?Q?9MrVmuNA+FLgQ9E+VyMLzy9DVsbM3kWfFT9l32iLo/tTufnPRvJi7nBkMo6S?= =?us-ascii?Q?IfzD6rT6+yPSIRoGM7p/eIE+BiO1qWnni504Pj4nqcHaweBhoxNWAQKvpLql?= =?us-ascii?Q?Q4lX+KFSsMbTTnXOjADWEVyOSSBLNEq53kJnPlbaR5a8FADgDmV1xBJa6zbO?= =?us-ascii?Q?EZYxk1jrirsOgabvwV/8lrnQhWm7v7B0KtWNhEKvfW0QSfJ31foRxt7zp90T?= =?us-ascii?Q?QwkFGQJiyajBcpD2oOVMidTUaFe93nNLpzlDILIYAtx9yLDL66SBUCYKn/XL?= =?us-ascii?Q?tLf+cyjBEr8Foy6bVTREPKWOozjjTsDcTFN7Ld5Hf8WVEr3kNZELKt52+jQz?= =?us-ascii?Q?qGwcCdpHs86gZouhIjTqnvX8MoZkmPTy10szrDsBXEUZS15cU0HZ4Pr2zS7J?= =?us-ascii?Q?7prK628e5bPepP9UUOSc+Dt2IZE5jVd44jejp51KdSM3OBHbFxZwPO1KQ3tw?= =?us-ascii?Q?uROeT5uUDgf3rjM+ZDiXdQJR8nKprOqHO8y9UvOh935I2FYBJ2EV7Iel0d+x?= =?us-ascii?Q?+U/DuDqrbKp7OJAUQ33VCOvmclipjWsiKbi9hEANmKkTqX3+CkGAU1lE5/2T?= =?us-ascii?Q?dnrU0bo5lrvKwaXIeK+B8Q57gHDxzWGedfkpcvZ8lSUL2qKsqWeIvGS7hshQ?= =?us-ascii?Q?J0jiocWgcrt1WuRi6DsdzKXwSqyKnZOzlkwxTcJ2QWRTuajk8tS2Km6g7R78?= =?us-ascii?Q?/LSEiJ9qM+8oUdcx40EnrKp1aGL61omKdSoQ2kloVw16krTbAyDi/z8rZhop?= =?us-ascii?Q?Agut2XRYJcqodSoL9bARHUCPL4c3U7K3p8cEVoOj5jl5BkuLtUxT5HUFcEuN?= =?us-ascii?Q?Ebv6+HalJDxI0hI+KwMksNRv/LxCmnKDRp3i1QY/V1cbpW71oSiW2J3ZstG+?= =?us-ascii?Q?7m3QjzvLRAjsmkH/lq2THC+/WNn82nDoI+k9WjZL3x0bNrk3AQQujwbR+nLw?= =?us-ascii?Q?ZE9qfzGVeqza4Hh0TXtbFZF10BaHKDeprVI96w1zl8eXD8+X9A9Hlh4qByZj?= =?us-ascii?Q?FrLGNtClt/t/oCosVWKVI6DtvUUzC7naKvBDFMY1NnZKKWNj8BOZUwsflwvQ?= =?us-ascii?Q?px4OXQO6cUv332p3sYs5ucC+EpmlN9iSS0dzmiWV9IrSKo0y0ZERfURJtvTv?= =?us-ascii?Q?hh1Dzw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7GNn7vCYRjWx6SCcsUfe45DI3rID1/e/qy/VAbqWLZlaSGcculO837MHT0jSm7T+dZrVV6WKf42ibRqtjfrZeMagB6Gts0sFDt5f/O+9otbbraAkLhSccF07G17b777oNSaQzgYMLHoKNZAYGxDq4GjQxsya6l5HrB4ISu3GmXmZkzWwjx/xygE/iueEE6a4qscpd9BP1RdoMNpNsUXGFbvlZ7/rIlqXANDgR71FK2g9EnueJ4rm6gpDKWMhJ/7VSukBHLGn8gTj9XI/e255CYCxsSFpJXcZtR1cMwgQG+mQUqx/59NbnabYrE+QhfavNJs+TwXVKWeYSxM0c8ZlKszZ92Sl+tBiOR+5RJ24Zu3BSnUJQ6U0qZB5PB/vD8z0kL/UJlkJcDM0gkcrw3BuZ+qt5Z02H1I5KeHxPxKMVQLHaYIdz1RREDdQOaNMcY5pt9vNkUP2Wuk269ObUhO9W+Dp5TU/UQj8ZO/vyA7NNNniNhMNtHFxuQTs6GwBk3Prp3/tJudWQUNjJ6Cc8m50K4u+Lw0C8QntrLkRBLPBn5Vl3w2RAqBfq5MjTXZ9ffOXqvJjWcufP98X1jQSHMUXaO4whO2H4oIbUPl0lKp15x8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: aafd7cfc-b65c-490e-738e-08dcc02e2ae1 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5613.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2024 09:06:10.1210 (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: jroHvwTfHymFtIUQir0cozAxCDVmlBZ7kaMsD92fzw6DK0LSdzo1JEOam0Qx2HlPHcnd1MydiEPKL0mSF8KabFx3G0Wj7gLiGkXdzX8IV90= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6129 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-08-19_07,2024-08-19_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2407110000 definitions=main-2408190063 X-Proofpoint-GUID: e78LOH2q8nnm5JJmagCDLYbTqgGHacm5 X-Proofpoint-ORIG-GUID: e78LOH2q8nnm5JJmagCDLYbTqgGHacm5 X-Rspamd-Queue-Id: 25C7F40013 X-Stat-Signature: h87teapxtet6e14cgfaefy6edceyhkbw X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1724058374-311992 X-HE-Meta: U2FsdGVkX1/vQYd3vFW/VDc5Zm3CWK8/UNL3vu3aA/Fthh+54z4S37oJMjS5H/hcOyyQC+M++irMyiw/MZYiWe6laRx3WSPQ+4L2ZbNG2rg9oiCw7oXMDo5vb5eDkJW38ovi9WIIeYGOZ+yTsyJ1W3BAw737sr2Y5Pt0xgtB8zNmZ1EmbPll4ZQ3XwvSouOX4oHN11NVFeoL/jyBtRYiePNVTQ9mPKzu6INhYWmuqSivDn6gwIyIWTi6drs55XuW7bNDYRFf64o9Vz/UF9dpzSY9APRoHMT/aaz8GMeM1BT5IctabH/XsCSw9DVBNhJajKYZaV7+hdZNslIeJ1OTQi+oaeRgFlXe4IoHVbg3o344Z9UiXHj5z3XavnjNC5R+fWY5hA7ShImY97VmJiC9yTcN4EQSMBWV6uKkYtnZGUrYYaLZSyIvbG4w6pMbf9hPDM+ARxhKdCSodB1noCxzAsTOCpv8Rp+7XOHTUhl+7vExyxBDn+hvzSDJVESrcWf8++X7Zu6GGDeu17pG5bLurvCjwwp3tQxtW/E+ltYYPC5hJahHdsNJ3B77ja1MlYNF0aYu9/UZG38DsWZ+fxYPxFdEBBXz4A5wxWO2lFI3n0H0vrfZ0mkVOsABZTAvubKJ4OZPiWrHMlifA2uQt/M8sjb8jOAYXEA+EqPKu+Ho69AoOHxcPdCT/a+ZsyfexkZnup/rrn37Z3bhp/2i0NSNWPlZcfknciksmOURUlbFITji7GCxFBbxWKBluWP607+99yPSiVfGflngVAd4O+YjgtfHm/qQaz74OuciLnK85NrUNkxhx3eO5tdgx2e3ipiaVdwjBgfVzSuBe49nQqAVONnZl4bj7qZ/8W5PLimkCJLVHBItUDslz9XRbpKUQf6Vn12rPefawhChxUKmhaw4Myz9tZZ7Zv+0GMAOIto0k5Ssb3D6K9cgHNca1oK038AR2t+pQViVTQZXr0cNMNk Mi3tnORT M5NLL1eLuKrlbPNdOr9+waYIPD1owx0rNvJCK9RYryFBcmtlFd2jfv/yVLwXOGaW4K4DBnLdqsPopdwZXAcWsVkDc/JlN0t8XSVoytqL7XWPMmiv3KC2tut9DrhiQrWKUQOeZ4Cf8m7JMtgsw5hV7kNJR0K6pFP4EHwrnbO4N03NUqAg6w0g3i+/cPF5aliVAKFFGGo2V5WwtlGj2+aUPOlRMkwXY5uzKBLUVwLvpCkxtTtfpU7Ef9YRWrvGZuI5eBbZxSFxX6lFNz36yDT9hEnBK7sP4168jpePgaf34X0hZVIWS59kT6Iulf060bP6pacipOyQGugQ50S0o6trXwHlc2IWGiFNuI5YBNECefQjySCULkQ210hCtgr3Im1ZOh2ORV8WKbnncE7HmxcoRVvc5YLmtR8/dbtXoQMYkTNan/36NXLWV3ZSaRajbuCGVqlqjKMrxRy7a9kvHUidv5SD2uA== 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: On Sun, Aug 18, 2024 at 08:35:00PM GMT, Kartavya Vashishtha wrote: > Currently, brk() only checks against RLIMIT_DATA when validating whether > the requested amount of memory is valid with respect to rlimit. > > RLIMIT_AS is checked later in the `may_expand_vm` call in `do_brk_flags`, > but that call occurs after aligning the new brk to a page boundary, making > the following possible: > > 1. Allocate a non-page-sized amount of memory with brk() > > 2. brk() will internally page-align the requested amount, and allocate > the necessary amount of pages. > > 3. Set RLIMIT_AS to 1 byte using setrlimit. > > 4. Calling brk() again with a small increment (such that it does not > overflow to the next page) will succeed. > > This violates setrlimit RLIMIT_AS, since the call succeeds despite a > 1 byte limit. > > The following code snippet reproduces this behavior: > > ``` > > int main() { > void * mem = malloc(4096); > sbrk(32); > > // set RLIMIT_AS for the processe's address space to 1 byte > // This causes all future calls to sbrk to fail > struct rlimit lim; > getrlimit(RLIMIT_AS, &lim); > lim.rlim_cur = 1; > printf("lim.rlim_max: %ld\n", lim.rlim_max); > setrlimit(RLIMIT_AS, &lim); > > printf("Mallocing an additional 8 bytes, which requires more > "memory from sbrk, but sbrk SHOULD fail\n"); > void * ptr = sbrk(8); > printf("sbrk result: %p\n", ptr); > if (ptr != -1) { > printf("sbrk unexpectedly passed\n"); > } else { > printf("sbrk expectedly failed\n"); > } > free(mem); > } > ``` > > Signed-off-by: Kartavya Vashishtha > --- > mm/mmap.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index d0dfc85b209b..5f7fc6591323 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -253,8 +253,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) > * segment grow beyond its set limit the in case where the limit is > * not page aligned -Ram Gupta > */ > - if (check_data_rlimit(rlimit(RLIMIT_DATA), brk, mm->start_brk, > - mm->end_data, mm->start_data)) > + if (check_data_rlimit(min(rlimit(RLIMIT_AS), rlimit(RLIMIT_DATA)), > + brk, mm->start_brk, mm->end_data, mm->start_data)) > goto out; > > newbrk = PAGE_ALIGN(brk); > -- > 2.34.1 > > Thanks for your patch (I think your first? :), I don't think this is correct however. The address space usage is not changing between these calls, it's staying exactly the same (in fact, your efforts to avoid going over a page boundary ensure this). All memory allocations in the kernel are performed at page granularity, as this is the only way to actually allocate and map memory. As per the man page: Lowering the soft limit for a resource below the process's current consumption of that resource will succeed (but will prevent the process from further increasing its consumption of the resource). So the limit will not prevent usage of existing resource (i.e. the address space usage). It seems that we make an effort with RLIMIT_DATA to actually proactively prevent usage beyond the limit, again as per the man page: RLIMIT_DATA This is the maximum size of the process's data segment (initialized data, uninitialized data, and heap). The limit is specified in bytes, and is rounded down to the system page size. This limit affects calls to brk(2), sbrk(2), and (since Linux 4.7) mmap(2), which fail with the error ENOMEM upon encountering the soft limit of this resource. Note 'encountering' the soft limit of this resource. In the case of RLIMIT_AS: RLIMIT_AS ... This limit affects calls to brk(2), mmap(2), and mremap(2), which fail with the error ENOMEM upon exceeding this limit. ... Note 'exceeding' this limit.