From patchwork Mon Sep 23 16:03:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 13809814 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 CB909CF9C74 for ; Mon, 23 Sep 2024 16:04:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 767E36B0095; Mon, 23 Sep 2024 12:04:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F12F6B0096; Mon, 23 Sep 2024 12:04:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A66F6B0098; Mon, 23 Sep 2024 12:04:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 0E9066B0095 for ; Mon, 23 Sep 2024 12:04:22 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BD637AC4BB for ; Mon, 23 Sep 2024 16:04:21 +0000 (UTC) X-FDA: 82596475122.30.5F2C4E8 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf14.hostedemail.com (Postfix) with ESMTP id 6DA39100012 for ; Mon, 23 Sep 2024 16:04:18 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=ReigIwKm; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=RSyriIYL; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf14.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1727107423; a=rsa-sha256; cv=pass; b=HTr5LqymK+6nqK8QRD5cbOHcLGn5yOvqmPyszPCWLRQt+ID0Ufc3Ga2p9dPz5xlN2M8qbP 2PGsTSZIw84ZsNQJLHoNxDjQNP60qaXz4DO/4vGvGgVz4QPsUixI8FiDd7yMareQkjMHkf V5wSZb8LRQS1hp/FAH6hKMat6JqXl8k= ARC-Authentication-Results: i=2; imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=ReigIwKm; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=RSyriIYL; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf14.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.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=1727107423; 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:in-reply-to:references:references:dkim-signature; bh=W0q67exA6YdXcrL3YepDeU7tz8LTl7V+/D0PXUIJ5u8=; b=wsoLEIw9F27tzZLZ9FgkgR5nv1szAHuEWBBsYLJ3q+yXQJJhk5AZFJU1rGi9FJuM+gEYHZ QKsYeU/+iTTyvjGWdoOO8vhr0XtXQhvhZ32cF2u96CKmFGfJT/nKc0xrroI0VprekRoAAj 2bt+ylaa+B7EEd3m63LoV1iXlfbvEys= 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 48NFtX9P021774; Mon, 23 Sep 2024 16:04:12 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-2023-11-20; bh=W0q67exA6YdXcrL3YepDeU7tz8LTl7V+/D0PXUIJ5u8=; b= ReigIwKmhPvAbU0nnhXVgzhmro2B0LyTxZotEdG/Y+9tql2Tflk9JaJ+H0dKptFc T6jcbPARjoQV1aYMnr24nQMrGTnw8qPgr7lGgZCGYMhTtZhPARhh2nRhX3Twmbcd I99cbvhD+vucbDsUYm7Pe9RPhFjzViav1wtZNYjY/5XVjwiwlR8KMeDCSLGhUDr3 t62IAn8wQtsMqMI5doFUpN1fOmlvd3CGE5eMMzLVzAZ82kSWdfwDK17hkKu97UM5 gv/812aXLcCddf2yTs0Xu+P1Oqt6lYIOmAUgv/sWp4Q6bXvzJpApeDg6hyTTm5io jTpGV1n+G30M0H6Dll6FDw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 41smx32q47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 23 Sep 2024 16:04:12 +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.18.1.2) with ESMTP id 48NFUeje000461; Mon, 23 Sep 2024 16:04:11 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2045.outbound.protection.outlook.com [104.47.55.45]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 41smk7qpkr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 23 Sep 2024 16:04:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ma8ulFKpyY0yVSUFJ992rFc5eKV1ahTQt7dFZV+F+gObsGQuAHk7u4hglXH8WMvdQ5yZXwA3XVqLhGh6fwRDEfsU3vT6ewOOLeOno++MW4Kd3yZytYKjNrh9y5x+qTDh7g5vMPdFxFjVoyR3IOdeHbpOoyhzKFkN5rXF2llHWUWatlRrrvIG6LMYuxeYine1WN13hgsLklidjWUPvsA60ZTZuM54hFY7+D2d2r+x4fxuJWTlOPep6szBUfN6t1CfotRvb0ZDscRswMlDOv3N3f8DbHgOi0Gg9BtafiyDUYTU/DaS9vYtZz4vVk8RWBswHF2xtlZ2Y25NWSlvDcqOyQ== 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=W0q67exA6YdXcrL3YepDeU7tz8LTl7V+/D0PXUIJ5u8=; b=ykEYuvLxKA3QFXC8J+LzZoKDENhVaGH7+DX/v4qnccQCQ5EktBqhKMBUSz9PZlYMIB9rofHQMCBzsP/vFd/93mkdf9J3I9l3/YZI3iAD2hxc2mj2w4BNnnTIPaHmfz3Mj+SiW7xjUBQu8ZsN7daLOivdrmWDQIhS7IjqbmFOAp9VmbknPucujN1fju8BIEfko5Ak4shH/JYxmvJF0NhmzV9kIiCOh9W3xfU21c8JRVt3quRkbz93AbfXtHfCG69iyeArj0t+m4kJZkbe05JuVah6TyemoXbO+fztVdodwAUzukiWwyktNpbjzgILpJX6WvM7ATbYMN1u2F6kgLawCg== 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=W0q67exA6YdXcrL3YepDeU7tz8LTl7V+/D0PXUIJ5u8=; b=RSyriIYLVO6A0lwpiijVMPpi5ucG3TW32ozKIM9Nq/raEGTkhekW6dwU4G6PljGO/c2grOWbjpHhjsuGYbSbA4h2eYvZ5KrS9+ZRYoybxeN9lt2waSXcY6GxD+/8/lsd29/kFTz5l56Dpy0FWqJRxNscc2hZQ7lrUpoLDzESxXE= Received: from SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) by DM4PR10MB6744.namprd10.prod.outlook.com (2603:10b6:8:10c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.13; Mon, 23 Sep 2024 16:04:08 +0000 Received: from SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e]) by SJ0PR10MB5613.namprd10.prod.outlook.com ([fe80::4239:cf6f:9caa:940e%5]) with mapi id 15.20.8005.010; Mon, 23 Sep 2024 16:04:08 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Vlastimil Babka , "Liam R . Howlett" , Suren Baghdasaryan , Arnd Bergmann , Shakeel Butt , linux-api@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Minchan Kim Subject: [PATCH 1/2] mm/madvise: introduce PR_MADV_SELF flag to process_madvise() Date: Mon, 23 Sep 2024 17:03:56 +0100 Message-ID: <077be0d59cb1047870a84c87c62e7b027af1c75d.1727106751.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: References: X-ClientProxiedBy: LO2P265CA0495.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:13a::20) To SJ0PR10MB5613.namprd10.prod.outlook.com (2603:10b6:a03:3d0::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR10MB5613:EE_|DM4PR10MB6744:EE_ X-MS-Office365-Filtering-Correlation-Id: f3c438b7-86c0-43c2-d0ea-08dcdbe95a11 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014; X-Microsoft-Antispam-Message-Info: I/lgZUYvPLkX21hO9tXjo5dGnd649UQu0DiC8DvVqeb34PURpX6uZDpdRcRfcSvSwSOWddGv18f30uMXsCS57i5FLLGJVOAk9Wm5Dg2lzsifT/kFZjmprFZfZXremJybjDUKYt8ihHJJOZkqTg3XvdfgIc/H8bqRtjUZZlxEkeYDx29Eqfc9H7wYAw0z6vKxqjOXglBMr1s4S7v8GtCqakR/wsFlBR+d5AnocS7JGt8P1UfvQMquQbk5EuA+FtrQESEmvNMuU60HQaLKqoiS94QCe2KqgkM7Vn/BQJnce4kRSCoXcgF1y3wg6Fc1RI07A7n2nxPLTDW6R55fugcezQJ38yHEehcFhfij47FkL6iFJ8GXjtRc5vkCtkICqxY7Ef5cPkHQpBx6N3NHo0jd9UmKH7XNtfyx63Ua/6HbX6ScUWM50eHqi6AmY8JAnu2rbzFCxv3BKz7Ki5F8rPyKyc83MLdQblWSiJhPVKvcjewGg+cUL1gd+NSz3y0qntg13EpwkChi8okdZ89rYxoBLH4lZ7DuTeXEQ+lp/SKZAM/bO12Wz+AsABXuBxtspbEQNlMCwAdwQTD4EaQ5tyKHOTAQ1i+EhfxifkdwGCAy/erKn1yJp0tiBhWEEMvTmMufgwf/MvojCgh0EBx4tu5gQngGONUpEJkroGqSkgLjDXonzthhHM5vWscS2rSJ3AIKwANmrShpAaQnPlY8XK2QtxoMm7ZpZvGWPaK1M1xas26JeVwkUw6Gv3125NdB7O35kXzHqbSATM6QsrEwF9Vhkx+5GxGnyVQWz+HrDqwMMzZjFUVTW0QCfWPeOiI+cIPDlD9NO4AzvlAbMTnVAaji34LN3+uAsCd3CFZG954zmZygUvstA3WmlltvS5qKc4aHY1MRV0K6/Q1TpQ0jfTRNmCjXit60GlNN92TMJBIdyk/C7nwA3+5a1OXRa8mHHYVqyfrG07YkTdaj768OJenpkI0errobkkTwbr+VvnFZ9O2mZxGMKwlcSdOidqdd59NVZqWl1g4kacpk6uohyLvluK0JbF15/7ja8rXfLKictS9SmajXNvBJcmXY4V+9RQHjYySijIyHNjph8sVKTSWPSvDlVziaWT+tQ8hLdjDjeCHZdVQ3tfpiZXfi7RRBCfHrX/T6L/T5VgPUrdS3xV8Dka35+km7zx5Cx46+c9qDpVSxVlDct7r2NMApiacPRlJnLe4zFT0bWtEEwR65spXzAdGe5n00CY2J/+I21Z4x4fx1/m6azQ54wxaT1Sjuu7YgXY5muGJg7jrbFgbn3Mn/EqWx5iZVIkG1CNg2nnBS56CL6IcxbGGAddvUeVNpVJqTS3vcltMUvZqB902ujY/18g== 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)(10070799003)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ELe0cC/VvYJzuHeb280kcJBxR9LxJa0/XuLYAyraZ8UdS1Iq6+izpSvtM2A/hpbd1AULIcUO9x9/fvSr7nVKbGFuzSdQFyqpzN2Hbhc5V0q4Xjp6ZTWebnxDLpQUVdOOwGoD1436Zmkk/1P+lnb5gBKIaFJ3wUShfXsee4Dej70VheAOfBy71sQjNfDkWRaK6UKzrHLGriYqPub7VBYVB0Zn1O1bWD6JrCcc2hmQav2lpljRB8JKt73Vt76+fMAzzuyweuMjQb9MZ8NkA2P038lTgtCaVc6Ksix610aEYs7Kz+2mIwqSr98eV+ifeQXrYZ9XByOulrUaoO2p9Vlk0NMgbjByYRzEUwWpdqs09MA11SXLw7oXDBXln4xTgfuQRro3eZxvHcEdhlX4arbu0+eRv/tSSCdSYpcKqJp3LJtqWxgts0umPo8AJHelWHAm/9kzMoQ4XmaXUvphzHffUzpOxUnYYSI98/5TnKRR7XR21WRAB62MttAmimJEXAFCKUT1gBtQArEXYpxu8+rCl18aibagIBw1RpNEp0FEITqDLafBb61Kb/lgNqvVZAv80SOgdzX+wxZV6H6G1dm6VKcNE72HUdQN4FZTLE/CpdCTyb+u0MXMNeML65JNcOv4a1S4w898qR+9mOcGNFS4bY3oXr9qx20RUCB709uXlMLYDNjRmzObVeDQJ6U1LMIdMgStUxQ+gKkkbI/cT5tTYb/mh3RQ/yrWyk6kKB7Ka1FtqrgjrCnkZUHoGPzh3H/qwB01CWDuKufzuslGhJMn+UBarMI9ygqE0NNZrB7WRVQq1FkldBKgy3P5aw6ijKA4AKJcMS4eAOYdV4FojbySCeTsaU3eHUV+Y57r5WcgCWanosDcLd+VKuCdzu4qZMq+DJkvc7B/2tMq6PN5Upd0WthD682I4qudt+X9sAIQqWbPe/Lmr9dLGKghVu0wzlmxTepYLlZZHk89SlLyWGfG/qysjKplGpvPlrVMIha14fyuzJR/aopBh/VuM32YC4kD6Af32/Q9ixM9uL44NlcFUMfGso6PvJj1RfUWvoJ+dxGGlLhZ8H2fz+vKbL3OK+gu5sxEj0VvWBOJ0L0fCCXeMB2grMLD3jzED87dShy8WWVz0x1eooWp0Xf7OBno1SjzqO9VKXwfyblRifRSfwkal3ziObaSvw3RoxaTIHE7bQs7CYDL9mQiNLGxK7Ey5Fh2nHfOp9WhNZy5yeVSeXxT5Quq8UOrrHfTB72+HLjqGs1pvY9j4o4FMPUyhPvlhgvZuev097qLmX9ZmWbnfjqE/EwYiQxebJnd13+iHy+8fbgwMKeuzrtHrE7Hw2nOJXZXBZmEQOPWeFWM273toyWt8FqYVj6wxNyhoulspDp0bqWNOUHouY3tGIGptvIGoPwSdXVneSNrs95otu03tzeIUjBjsVYLkumW94R8HMldQux+7d12D5EbyIH/l6cRyzwPWx1YoIPFP5YikP32FhC5UhdtBAbGMjDofkzjCmPGVIRoTftBtpOjfGCApZpXtpnl+7PxRyYGGxhqIy2CZkBtgWzVPdHK9B0/nwJ3wAVt56wiIb3Zudgy8CtteUX4cqJ3rkluEZP72n+Q185f3o+YgVVCoi1QmDDndqYKPZoGBrkFFUBlfbFlQhrtbBT/7nW6WkooUg1ckL84EpV9uqywPQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Q9SWoSQjloUIaay1zLP9PXXNbHfyYX57sUQc4uhmZOMigTpn0TT6qoUtH5zypjtLpPxa1Y7Llm7cRnW2k/12rrdxjNne1fOK6AxKf9Eh+vD+kC/3MftVHCblsEzUbtgnAckImrND6U/V4UdxnqZ+hK3r9rvr+QIFa2wriQzJ2r7H4KpiHIsKeAwKNh5iQO17L8hn7F992kiffTkNS/6lIdMf+m/MaD/XuGnkHz+QQiZjXF8z6bxLyQxbVedJo5bmv30HHBvAu7C9klnwVV0rWp9wqRgvZrhEqXugw1Sl+eq2zaKzg5Iwrt4wvF2C/rwANvNaj4DDd5y4ZiInQK4/yPSCIoqkcW+yXco4OMzgov5rBVQcPvIQmu7N7XSUoV6InBaoUkXSoKQWOXlE1zy2q1wqMC0J58T5bdBFmSy0we01a1hpV3I4AAb0PDvANlcfiodmsr4tcUkdOmJekXxC8VPnWhhlxWd0dYoFSaki1+mShPcb4eu3vpaZ5SdQzEO857AXph9kPnRUoapjg4gt79RxsIDm5rd6vVw7V5QaKgiZhwxYV0X8uyHV5Neo4jO+Hs09dP5K0P+7qL/UOqVfh3YpxLUH+ApSwjLfmt066d0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3c438b7-86c0-43c2-d0ea-08dcdbe95a11 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5613.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2024 16:04:06.5729 (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: hCMFRWTBx1WJlx8kreCh4bLMfOcDaHIzRnJDnjRe/h0MfZhvQ3EsA+6b+MSr2YoobYNdPo2oq2pMOBZqYRbJZX49oM3fhl40N/sDFEgcqSQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6744 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-23_12,2024-09-23_01,2024-09-02_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2408220000 definitions=main-2409230120 X-Proofpoint-ORIG-GUID: Cfg6OGNxv8c_XJD9P9l8cUjYFLk5aDDd X-Proofpoint-GUID: Cfg6OGNxv8c_XJD9P9l8cUjYFLk5aDDd X-Rspam-User: X-Rspamd-Queue-Id: 6DA39100012 X-Rspamd-Server: rspam01 X-Stat-Signature: khx4nmt1bqubn17xxdp9ysobh3kt4r9m X-HE-Tag: 1727107458-171587 X-HE-Meta: U2FsdGVkX19B7+GTDbBrM8ho8cl7wgUCYA/A7o9o6VUgtylwcMLDZI+AxfJcR1vmH4FxfFmmluV7JQlWm0iSx9dXQemSEqnkaYkvQp5Ml+HcLmIE4NXFuanmURr+8cBCr3t0kzN+D4ryUXdZE2nxazpmQzK5+goGedvTiSwcVUsCXMQRYKTOxhoGuFFeZuKnvlDFX529qzrz6Vi27R/RdYIEKHzLDjetjAhsmrlw5KlVEml9HcIpSLWM3GsWvGVwDD/E6JV7ZaFsXVN5LoP6ahr8y9eY7OR/dwry9tyOJHvDjkuNZwFf5GlDWT62GwHZJ+yiaOxaik/W9lMdmdi7zjY6QoUPc52DPFK1fKhICIwmQCWolHGYV7LNPhlVxmKdZLz1tkWUIIXQuc7kqu2N64co4rDIDpbfblGtfmFwR93guKgygICy2NYKXuUYFqbSCOXyod9CAy7J/7uFJczYehVrZH8A/2B2SKA7VFPTTI3fTuMrQ1LNkhcumYrQAAKVaAp0knsKv/uq7yoLER8yO01LeDME+s0tq2yJ7tiExvFw8ADddZUrUwTvdEl4myxG+Fl0YOlCvCVdSuepzDQSwC29pV9KOd2kfYFhUIbqO6cgOFvBZMK9dHOVD8oKrJnf/lW+PNJ0TO5z/3cdzO/YR9SSqE9ZPxkjH/c+WnW/mCFsIMz7utOKWs/QyE8xqFoDsJXhKfuHxYDFczUNqiTwzJ7CVNPLXQ53wT9kYzDAuD4wI/LLZlq2vy8o+a4TShJ+b7OPQRpRhOgI3C0482mL5VBlJxn+Mm9Ds8iRL3Zhfn1zB11M/CCVBc57Sc3u9KNxQKizdWd8mGeoVcuaLsyzBvLE29WeboESA5oMjvJq19lI4lT8AM8KUciu9yr9U34Rj2HPz/fLiBiBi14BZWZjgtu6jDEY7ip07akmWAif7r5SinlVuOM3QPzfpVjD146hB2O6+NPpUi7My4DzXsE Zd93ZQUR 7mzv0YVq2nfrhWsG4zFKkTTSaVk76pRpOzqp5IUcWI6EBGY7Ax50X92jKmuVoaLFN8XyaHchIHp2Ltr+AT41M5fArcW41ZFhLERM9u8qlXXSFO9HUPLMjdQ7GMbB/osfZAFzJ6lrGvVAT4vwP02XReKSFbkVYsR86bgBDUbxxwOn9V/KfEXSve03OxWOM1lmz5caUihPx+TNDIR4ey6UqavDiDz29Uu7cVgKES14YYEPp/oxM7lYRQT5lJtNly4h6kV2eoO5jIMWmkKi7rBqRGjLgbfNYK2bHlAVKeG0LI/2agJmFyLVPowdlVEFXcU7O4QDe4eV9MqjMLpY3qLIpvNFbFqt7kSS1Wp2Supdv2EgzZmlEOMufpF2YDh7L4yPk4PrKpTS7P9cwqcLCsYKvVBGSapPvZwV3o+rOzGwf1rwGgWgE9qQuBuYCjZWmpG/wA8p4k6ta/Bt5k0O+JItluFykE7NuvDOZfkQLWc+/CGpgkXGugRTCW0dlzeveKXpUJeZUT3/Ih7F0aGt7dUi05Lm/8T5pMjQKDwtnu4GTdRUNSzM03Epyz3vk3g== 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: process_madvise() was conceived as a useful means for performing a vector of madvise() operations on a remote process's address space. However it's useful to be able to do so on the current process also. It is currently rather clunky to do this (requiring a pidfd to be opened for the current process) and introduces unnecessary overhead in incrementing reference counts for the task and mm. Avoid all of this by providing a PR_MADV_SELF flag, which causes process_madvise() to simply ignore the pidfd parameter and instead apply the operation to the current process. Since we are operating on our own process, no restrictions need be applied on behaviors we can perform, so do not limit these in that case. Also extend the case of a user specifying the current process via pidfd to not be restricted on behaviors which can be performed. Signed-off-by: Lorenzo Stoakes --- include/uapi/asm-generic/mman-common.h | 2 + mm/madvise.c | 58 +++++++++++++++++++------- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index 6ce1f1ceb432..8f59f23dee09 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -87,4 +87,6 @@ #define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\ PKEY_DISABLE_WRITE) +#define PR_MADV_SELF (1<<0) /* process_madvise() flag - apply to self */ + #endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/mm/madvise.c b/mm/madvise.c index ff139e57cca2..549b36d1463c 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1208,7 +1208,8 @@ madvise_behavior_valid(int behavior) } } -static bool process_madvise_behavior_valid(int behavior) +/* Can we invoke process_madvise() on a remote mm for the specified behavior? */ +static bool process_madvise_remote_valid(int behavior) { switch (behavior) { case MADV_COLD: @@ -1477,6 +1478,28 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior) return do_madvise(current->mm, start, len_in, behavior); } +/* Perform an madvise operation over a vector of addresses and lengths. */ +static ssize_t vector_madvise(struct mm_struct *mm, struct iov_iter *iter, + int behavior) +{ + ssize_t ret = 0; + size_t total_len; + + total_len = iov_iter_count(iter); + + while (iov_iter_count(iter)) { + ret = do_madvise(mm, (unsigned long)iter_iov_addr(iter), + iter_iov_len(iter), behavior); + if (ret < 0) + break; + iov_iter_advance(iter, iter_iov_len(iter)); + } + + ret = (total_len - iov_iter_count(iter)) ? : ret; + + return ret; +} + SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, size_t, vlen, int, behavior, unsigned int, flags) { @@ -1486,10 +1509,9 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, struct iov_iter iter; struct task_struct *task; struct mm_struct *mm; - size_t total_len; unsigned int f_flags; - if (flags != 0) { + if (flags & ~PR_MADV_SELF) { ret = -EINVAL; goto out; } @@ -1498,13 +1520,26 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, if (ret < 0) goto out; + /* + * Perform an madvise operation on the current process. No restrictions + * need be applied, nor do we need to pin the task or mm_struct. + */ + if (flags & PR_MADV_SELF) { + ret = vector_madvise(current->mm, &iter, behavior); + goto free_iov; + } + task = pidfd_get_task(pidfd, &f_flags); if (IS_ERR(task)) { ret = PTR_ERR(task); goto free_iov; } - if (!process_madvise_behavior_valid(behavior)) { + /* + * We need only perform this check if we are attempting to manipulate a + * remote process's address space. + */ + if (mm != current->mm && !process_madvise_remote_valid(behavior)) { ret = -EINVAL; goto release_task; } @@ -1518,24 +1553,15 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, /* * Require CAP_SYS_NICE for influencing process performance. Note that - * only non-destructive hints are currently supported. + * only non-destructive hints are currently supported for remote + * processes. */ if (mm != current->mm && !capable(CAP_SYS_NICE)) { ret = -EPERM; goto release_mm; } - total_len = iov_iter_count(&iter); - - while (iov_iter_count(&iter)) { - ret = do_madvise(mm, (unsigned long)iter_iov_addr(&iter), - iter_iov_len(&iter), behavior); - if (ret < 0) - break; - iov_iter_advance(&iter, iter_iov_len(&iter)); - } - - ret = (total_len - iov_iter_count(&iter)) ? : ret; + ret = vector_madvise(mm, &iter, behavior); release_mm: mmput(mm);