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 93C06C433F5 for ; Tue, 18 Jan 2022 21:20:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5C606B0078; Tue, 18 Jan 2022 16:20:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D0B2D6B0073; Tue, 18 Jan 2022 16:20:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC0D96B007B; Tue, 18 Jan 2022 16:20:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0061.hostedemail.com [216.40.44.61]) by kanga.kvack.org (Postfix) with ESMTP id 80A9C6B0075 for ; Tue, 18 Jan 2022 16:20:40 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 4197E92779 for ; Tue, 18 Jan 2022 21:20:40 +0000 (UTC) X-FDA: 79044677040.14.DC20F02 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf25.hostedemail.com (Postfix) with ESMTP id ADB4CA0004 for ; Tue, 18 Jan 2022 21:20:39 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 20IKEZlG013780; Tue, 18 Jan 2022 21:20:15 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-2021-07-09; bh=2GI/FyC9Fd+f3mWeDhzM6dyhQ/6gPBjtaUMfsTe/i04=; b=SjhpDC/uP72XkvfuesEeUHwYqG75tJd0s0jqlf2WSPaBXp/dwbmoUjeEyYH0Iti5yzuh h+kTh9Udeme5+t0AIM1jNtmwkx8lZbcaE+fc3YmJjmyKOLRPHvRLeFhKhwajJJieUzn2 CRHurC4EUqMsZz0sPkgVt/ZEan7inDjqiHFOtyMCJdWO0ergOsfneUQ2PMzon/M9jS0L uqb/XyqDsTYWduZOA4VHLDS7GOA7+p/w1rUSXelXx0DGV31vG0hqjn5Ekj88hi11PfJo LaBS/eQQ00xgfaBpFIgOGpWfKu9Ynf2NpTItWlI0GkzBmvppwhnyIi+quBlpf74Tx/KQ rQ== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3dnc52u7f9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Jan 2022 21:20:15 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 20IKubiD030214; Tue, 18 Jan 2022 21:20:14 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by aserp3020.oracle.com with ESMTP id 3dkp34uybd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 18 Jan 2022 21:20:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VedLcVOom2iUF3p6n68PetB3WQsYLzNywmuGK6OtngKaOdvryy9it3U5RAK2cYPKlfbG/oITk/Zxau0/d5aA43vB4IEmHwq+AW8rqVw54SchzbzCMougzxpHElOem0LMjFj9ce5khlWrJXuvj2BaTeYeykatE9IE7TsHLvNjTFo1HFi/NJYYI/yx2TeNqlTRuACa/wmt+PRbrL4+bTTeo/qPGFr6pe2eNKEFDpW/EtE+fcbuEQ93dseVF1x9K9TmnIWIsJLbvx2fY7P9hC6RELT2M21LmIvXA/QXjJltsF0Bhi1frL0cFiBpltpJw/RxyopI3O7jB4+/RL9PHua87w== 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=2GI/FyC9Fd+f3mWeDhzM6dyhQ/6gPBjtaUMfsTe/i04=; b=iVoTedZML3X5aIlIqJwoIs9vZvTlfKk2Vl2V3uOhjgXeVOvPQpEbFIvSTbDT6B4wFdef8ZTtqA95gCILUXFmGBc6lYq3y/UmLPMWglynoBBb+aCjua7wwkNYVSY6/6B5Lo0W1H320f4sYn7pyX+OVLS5Ajx9OoXHhp5TYYwTiFaEdcW/etLZVEMyFFrTQmfsPpA4B7jMjwT8vdWZMrK9qgn8/XbWR56SgUZbbhxXv5mgHndGe5G4aZtE5NmaS7o/2Ob5Ah2F/lVBLrCiZIji/NADYQ2Qb3tvtONtKIZwc/SWZwswWo+S21FyvOzm7Qp305/4hlqiVKfWoSSHfrnZCw== 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=2GI/FyC9Fd+f3mWeDhzM6dyhQ/6gPBjtaUMfsTe/i04=; b=ZjTCbkQfniRHDIp0JhrZIZ9IAZX9rzBijXGCOk+1nlUTIHIoScGWdb8Pj1qsdKouEwCmNVY4JDV/1YLzXzKVsCYA11COwagrffDPNLN4t0lpq1JHo440HDh4JdWv4GV4f/cy7uetAeb1IWqPZO+jN/RSE1JpQrXsHfNT8GP4bGo= Received: from BN8PR10MB3220.namprd10.prod.outlook.com (2603:10b6:408:c8::18) by CH2PR10MB4374.namprd10.prod.outlook.com (2603:10b6:610:af::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Tue, 18 Jan 2022 21:20:12 +0000 Received: from BN8PR10MB3220.namprd10.prod.outlook.com ([fe80::104f:849b:6a11:c5c2]) by BN8PR10MB3220.namprd10.prod.outlook.com ([fe80::104f:849b:6a11:c5c2%6]) with mapi id 15.20.4888.014; Tue, 18 Jan 2022 21:20:12 +0000 From: Khalid Aziz To: akpm@linux-foundation.org, willy@infradead.org, longpeng2@huawei.com, arnd@arndb.de, dave.hansen@linux.intel.com, david@redhat.com, rppt@kernel.org, surenb@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: Khalid Aziz Subject: [RFC PATCH 1/6] mm: Add new system calls mshare, mshare_unlink Date: Tue, 18 Jan 2022 14:19:13 -0700 Message-Id: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: Content-Type: text/plain X-ClientProxiedBy: BYAPR07CA0001.namprd07.prod.outlook.com (2603:10b6:a02:bc::14) To BN8PR10MB3220.namprd10.prod.outlook.com (2603:10b6:408:c8::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d9be30c6-2d4f-4fb2-ee63-08d9dac84fde X-MS-TrafficTypeDiagnostic: CH2PR10MB4374:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ahT1t9IOV1iCjem24XL77SmmnDFnR0r6oEScTYcQ7xww7BQdOZDiHKBT9OWlzaScnSNREnLhIXaEVP5Pohmg2u5GYrZR6CLxcRtwi8F7/C6ynljL/7/X40P8uqqcbl4wlKAytrZoy4tlShYoNBztkQ0itlWndddO7o6tUDLM6F+n7/2sk8472INmTj0LFECBWE56e0CHFx64rDeFixHSrUb8h73pe65A/1kfNzmFpAcv6bWcidUfQBdmUdMvI3Mdm84AakZAD7Jrac6ldR6qDau6Q4CJlfndgaezBrdrqk6xC9xLHExOsrUoMKKuQA9BluObWvacpCgkPkF3fR1FZ1DptxGe7MUs3R5u+gViSTO13h8cZPTmYEYut88jK6RJcEI00aXlZ0tOeMmt80FGdBP8Isgo19G0W4RZYmyBS2VM0tT5lhR1OazDX1N+iGHQtYGFhx4CMEwPt/3DY1HXxEtEJ+ZHWq0lL9a/soLCRXAVNSnYp7SfOKCWf+4TTjyHIdWyE+aLzYDtW+YF4y5/K8xSB96anINQP249sV25shqf2KQocLGKh5FPG7x9wlOf6NRU3pB95X0T5+nYMScTpuNP6YFJA61dqN4cv563fBhN/Uhvbk8j5cYYr5HF0lKuqJGeCMCimN0GhTbCel5zastixdRdiwQ8C7k/Hpjph2DUiTqaVveMgol2k5+dzzBZm1o96Ej9eLFiEdI+KLvW1g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR10MB3220.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(44832011)(86362001)(8676002)(2616005)(508600001)(52116002)(4326008)(66476007)(6512007)(5660300002)(7416002)(38100700002)(83380400001)(2906002)(6486002)(6506007)(8936002)(186003)(107886003)(921005)(36756003)(316002)(66946007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eOooo4CcR0e5iYC5EmV2iI0khYIERKIKg/W5h5FH0yqgDe8gIUvqJHP5hRfG?= =?us-ascii?Q?BJ3qFyIfKHqF85cj/x6V3nE+jyk5/sTBY/7Uygr+SVvMg2bcWecboHG1lUUP?= =?us-ascii?Q?hzozdyBTNPtrojfGz8dTuJ7stoz9GTL4splbFcEZjQGjjP0bqRVKY7mJUU7o?= =?us-ascii?Q?eZ6yaeIbhYcwvmCWN989OF7fO7GANQcLIseYBLYVG0znFKqR4xPRoONrwvzb?= =?us-ascii?Q?mNWYopa2Khlhjf9y6OknAzALnEmyT5bujXks9HI4D6XyxD5D5eXZKimGCAQU?= =?us-ascii?Q?hVcMCnqwP060oKNExlho/5MVbzuLALlS1KjbXMz639XqFKHH0eLQBb2kwbKi?= =?us-ascii?Q?AliSIe3b3HbQ4tBkIJAP6CLmRVPySx9hrLYlJ7INjVBttunJsPI0zW3NblQs?= =?us-ascii?Q?TAWqzVJpXztvNq5oCAdh1xFRcjO6MNt2eW/LNzGBH70FDHDuRnL247QAJaPA?= =?us-ascii?Q?GjNbq+eYfZY27841rblFobOdsn8n2iRHkn8U3b7jkdsCu8Z85UmofEL2iwC9?= =?us-ascii?Q?YOF7VHTIDCLLVLVRwDO1D7I+v0KX3yQ9dtEkDKvGr4MAyEYO9R48JDGgUt6Y?= =?us-ascii?Q?kNcXjEYwiXWFHYbE/cC3kJ3JqYh3qO8TfNQyb63lh9oihPUXY2G3mfvTULb1?= =?us-ascii?Q?Y6WhNdhq26hWHPEblNmIc0qN0Shi1eLj1Vm/E1gx2OIftmUxCgvt3KhE50+2?= =?us-ascii?Q?lYNgHSsIhwALwKeVzmuxz0X+bdB4gRXxpXAV9JDkjnq7kMGUVtJ8c6ARzppR?= =?us-ascii?Q?dFu914Q9n59CGt1ZuK0wEKW+tQYxQ4qL8sMDxXmhLgSFLpfPtWEY4I/WnR1h?= =?us-ascii?Q?R3R4A97HB/pRqODZ9ogg00uvn59wjH23bQffF3k4lJfT+6V7B2YT7ASUdTeC?= =?us-ascii?Q?Zd0GvPOtCAuhA6CDR/vbUdjQ5ty4zuXt9yh48fdDSq2QEiOxZ4jK5v9fcjCf?= =?us-ascii?Q?necPo5k23IvX0Pm5NGKyJJkc5GIN4Pi3DnnFhWiiK1F6cdVpt+oZ7JNSj75K?= =?us-ascii?Q?zmlJ7PdRUqwHjW0z5AmDzkn5PC3ItoEYh3f7y2i51IjEbUn3D4HHcSzAKbFt?= =?us-ascii?Q?QsSyYaLl8hiC5b0fH4hrS9eVG+46uBI5CrupDVfoJQu49co6wYTNoiUWl0tV?= =?us-ascii?Q?PVRFALRGV6uqZYBPXbeIA/6+1n6m87y5gFF1VZqlDbgAHSDRyXj76qViR9rv?= =?us-ascii?Q?yrbNgP0JSbNO8E2s84tjpxy3Fb91iwAzuluhrTZhbonOBahI9GrVfDgjEaKN?= =?us-ascii?Q?BJ6qoCoTAba7iXIWO6Mzt/pjdbMobd0Hi/8GY/vLSfKspNE2blCNZisPfmN5?= =?us-ascii?Q?i5pOeEEBIkD/LmEoZcwbioVf35wasGMVUtES8HUm2RvaZZJ3UFgNHlA99J8q?= =?us-ascii?Q?X4uk12LPin0mTehbA4IQebQnA50WjrWndcQkEW2a9SMP4YLZAns6+LPBCH0M?= =?us-ascii?Q?EpbBlFKE+Z9JeVvZU0tmDyEYYTFFMSL62QIKiwIp8SYYY3LZBjUkOkACMJj7?= =?us-ascii?Q?hBs8drJyOuknQ2FW4ewzTpWBIm/C7uSGbXjJwnW8+GlJkjwQu1dY9HmehQnN?= =?us-ascii?Q?iiW3No6RTybscnrgIiUOBBX1kXbyEdi2sw/o9V5CsG0ys7GH1xhS0JTRomz2?= =?us-ascii?Q?RP0y2gy/zJZlw1q1OLJu1FoN193mTvz+244na23gY2kSvpIO3txwS69I/D6u?= =?us-ascii?Q?OpviuQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9be30c6-2d4f-4fb2-ee63-08d9dac84fde X-MS-Exchange-CrossTenant-AuthSource: BN8PR10MB3220.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2022 21:20:12.0147 (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: 64HI8jpr00PcTa1sByLpjYhij8abPzUBSopdLOdS17yY66+5C6SCEQDX1HLzra/7qjezRj5RARENDrcwUFBOZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4374 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10231 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2201180121 X-Proofpoint-GUID: 9JI_DYADL2dZieeENYlWOc3YNv6E9ewe X-Proofpoint-ORIG-GUID: 9JI_DYADL2dZieeENYlWOc3YNv6E9ewe X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: ADB4CA0004 X-Stat-Signature: k16cdmoej31tpjo5mmwmadrg7nxx8dsy Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="SjhpDC/u"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZjTCbkQf; spf=none (imf25.hostedemail.com: domain of khalid.aziz@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=khalid.aziz@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1642540839-301273 Content-Transfer-Encoding: quoted-printable 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: Add two new system calls to support PTE sharing across processes through explicit declarations of shared address space.There is almost no implementation in this patch and it only wires up the system calls for x86_64 only. mshare() returns a file descriptor which does not support any operations yet. Signed-off-by: Khalid Aziz Signed-off-by: Matthew Wilcox (Oracle) --- arch/x86/entry/syscalls/syscall_64.tbl | 2 + include/uapi/asm-generic/unistd.h | 7 ++- mm/Makefile | 2 +- mm/mshare.c | 60 ++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 mm/mshare.c diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/sysc= alls/syscall_64.tbl index fe8f8dd157b4..bb403deca1ff 100644 --- a/arch/x86/entry/syscalls/syscall_64.tbl +++ b/arch/x86/entry/syscalls/syscall_64.tbl @@ -371,6 +371,8 @@ 447 common memfd_secret sys_memfd_secret 448 common process_mrelease sys_process_mrelease 449 common futex_waitv sys_futex_waitv +450 common mshare sys_mshare +451 common mshare_unlink sys_mshare_unlink =20 # # Due to a historical design error, certain syscalls are numbered differ= ently diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic= /unistd.h index 4557a8b6086f..27349ad579ff 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -883,8 +883,13 @@ __SYSCALL(__NR_process_mrelease, sys_process_mreleas= e) #define __NR_futex_waitv 449 __SYSCALL(__NR_futex_waitv, sys_futex_waitv) =20 +#define __NR_mshare 450 +__SYSCALL(__NR_mshare, sys_mshare) +#define __NR_mshare_unlink 451 +__SYSCALL(__NR_mshare_unlink, sys_mshare_unlink) + #undef __NR_syscalls -#define __NR_syscalls 450 +#define __NR_syscalls 452 =20 /* * 32 bit systems traditionally used different diff --git a/mm/Makefile b/mm/Makefile index d6c0042e3aa0..fca44c0d5e74 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -35,7 +35,7 @@ CFLAGS_init-mm.o +=3D $(call cc-disable-warning, overri= de-init) CFLAGS_init-mm.o +=3D $(call cc-disable-warning, initializer-overrides) =20 mmu-y :=3D nommu.o -mmu-$(CONFIG_MMU) :=3D highmem.o memory.o mincore.o \ +mmu-$(CONFIG_MMU) :=3D highmem.o memory.o mincore.o mshare.o \ mlock.o mmap.o mmu_gather.o mprotect.o mremap.o \ msync.o page_vma_mapped.o pagewalk.o \ pgtable-generic.o rmap.o vmalloc.o diff --git a/mm/mshare.c b/mm/mshare.c new file mode 100644 index 000000000000..c723f8369f06 --- /dev/null +++ b/mm/mshare.c @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * mm/mshare.c + * + * Page table sharing code + * + * + * Copyright (C) 2021 Oracle Corp. All rights reserved. + * Authors: Matthew Wilcox + * Khalid Aziz + */ + +#include +#include +#include + +static const struct file_operations mshare_fops =3D { +}; + +/* + * mshare syscall. Returns a file descriptor + */ +SYSCALL_DEFINE5(mshare, const char *, name, unsigned long, addr, + unsigned long, len, int, oflag, mode_t, mode) +{ + int fd; + + /* + * Address range being shared must be aligned to pgdir + * boundary and its size must be a multiple of pgdir size + */ + if ((addr | len) & (PGDIR_SIZE - 1)) + return -EINVAL; + + /* + * Allocate a file descriptor to return + * + * TODO: This code ignores the object name completely. Add + * support for that + */ + fd =3D anon_inode_getfd("mshare", &mshare_fops, NULL, O_RDWR); + + return fd; +} + +/* + * mshare_unlink syscall. Close and remove the named mshare'd object + */ +SYSCALL_DEFINE1(mshare_unlink, const char *, name) +{ + int fd; + + /* + * Delete the named object + * + * TODO: Mark mshare'd range for deletion + * + */ + return 0; +} --=20 2.32.0