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 X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,PDS_BAD_THREAD_QP_64, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16011C433E0 for ; Mon, 1 Mar 2021 22:56:02 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7155160C40 for ; Mon, 1 Mar 2021 22:56:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7155160C40 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D86958D00B4; Mon, 1 Mar 2021 17:56:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D36F28D0063; Mon, 1 Mar 2021 17:56:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD6EB8D00B4; Mon, 1 Mar 2021 17:56:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0004.hostedemail.com [216.40.44.4]) by kanga.kvack.org (Postfix) with ESMTP id A3B108D0063 for ; Mon, 1 Mar 2021 17:56:00 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 4E5463AB6 for ; Mon, 1 Mar 2021 22:56:00 +0000 (UTC) X-FDA: 77872814880.03.F2EA6E0 Received: from hqnvemgate24.nvidia.com (hqnvemgate24.nvidia.com [216.228.121.143]) by imf03.hostedemail.com (Postfix) with ESMTP id 7D69FC06CB9D for ; Mon, 1 Mar 2021 22:55:51 +0000 (UTC) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Mon, 01 Mar 2021 14:55:53 -0800 Received: from HKMAIL103.nvidia.com (10.18.16.12) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 1 Mar 2021 22:55:52 +0000 Received: from HKMAIL103.nvidia.com (10.18.16.12) by HKMAIL103.nvidia.com (10.18.16.12) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 1 Mar 2021 22:55:50 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by HKMAIL103.nvidia.com (10.18.16.12) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 1 Mar 2021 22:55:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y9qWKUqrnjnTYqf51DVnGXnDC+NCg6UTWGjhFNStUgs6f+JLyB/2aLGO7oBc0TrJ0bNxyAiqsgY5AErYMOQwbZ2JvDCS3a/Kgqn+TIWGhcFGUXjZoOXb4fTDVopF0pV3iJ4NGuJo41KK7ZgCi8rDyp6DNxWCOIMeTy0GDmA9u4qlDd2DSXsD4Ii39RKppIde4Z9S83ErzPIdYndVQNsD1nbk1oeFp1TYm2ZVKYTIXIwlukh/pJAkGOX2yFpZbgfoBT6Zoc+gVWGHJH1tysexccR9FbsjHyiBZQwiRWX9w8/KVkrxFKl6TUBYBhqINdTHR1Cj0ybLh0p8rNvI8ZW//A== 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-SenderADCheck; bh=UcRAqZsNAc5tyn8qB8O86feX/k1gTclG2+wu/Pv3QX0=; b=WgQTyQVfC239V7s48Yqcp76BTlxwbwm+M9AMuw3eNzfH3y8/DzTSSeFgv2s2RiqQha6d9z6oC/548yVVHjl9dG4MEXcUP1n3yEbaRlkAZS0fdkBH9hHaoVjUNzu46Odsuy3D9IVMcR2uHZSq2cC38a1ltV06ldj8yuxoU9Ftn4IzYW0t4Rf1mkapRbAN22qVYjUgL5mpXIzJybge2NaVvpor4zuApXdObdlqQm/HuW+Uj/fORwvR8eWyKjZ6k7a1TK7W8ITMf+kL7Cg5Lfe0rAbVJwDKjbziNZIzBFOYp54x1OWPmDRMj3WAdxataACceMuwoI9B60k5xV6Uz1vrww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from MN2PR12MB4344.namprd12.prod.outlook.com (2603:10b6:208:26e::11) by MN2PR12MB4160.namprd12.prod.outlook.com (2603:10b6:208:19a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.27; Mon, 1 Mar 2021 22:55:48 +0000 Received: from MN2PR12MB4344.namprd12.prod.outlook.com ([fe80::6412:fe3d:f2:87db]) by MN2PR12MB4344.namprd12.prod.outlook.com ([fe80::6412:fe3d:f2:87db%8]) with mapi id 15.20.3890.028; Mon, 1 Mar 2021 22:55:48 +0000 From: Ralph Campbell To: Alistair Popple , "linux-mm@kvack.org" , "nouveau@lists.freedesktop.org" , "bskeggs@redhat.com" , "akpm@linux-foundation.org" CC: "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "John Hubbard" , "jglisse@redhat.com" , Jason Gunthorpe , "hch@infradead.org" , "daniel@ffwll.ch" Subject: RE: [PATCH v3 5/8] mm: Device exclusive memory access Thread-Topic: [PATCH v3 5/8] mm: Device exclusive memory access Thread-Index: AQHXDA+zUEPg2OP9KEOGgyZB5NMUAapvwr6Q Date: Mon, 1 Mar 2021 22:55:48 +0000 Message-ID: References: <20210226071832.31547-1-apopple@nvidia.com> <20210226071832.31547-6-apopple@nvidia.com> In-Reply-To: <20210226071832.31547-6-apopple@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Enabled=True; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SiteId=43083d15-7273-40c1-b7db-39efd9ccc17a; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Owner=rcampbell@nvidia.com; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SetDate=2021-03-01T22:55:50.8180700Z; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Name=Unrestricted; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Application=Microsoft Azure Information Protection; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_ActionId=a2a37e20-6c80-4404-9a3b-3c1c3dd394b8; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Extended_MSFT_Method=Automatic authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [2601:646:8e80:c510:10c8:3f69:ba2e:72f8] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f69f8736-38b6-4757-9a39-08d8dd0527a2 x-ms-traffictypediagnostic: MN2PR12MB4160: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-header: ProcessedBy-CMR-outbound x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: O2sGsCLzGcijgxrr1EeHuyeyLDVCaZBAChg+Z9uQ8uKOy0HbaqAs88VpsCGQZh8WHqBbvRn30WSY+7ZcUduUAQbNN81C/WZMbpws1osX9UHk6QdBCtLWMvl2974igCh2SHA0j+LGF0a7ayKm0i/fZDBkb8EqWsws+Vlr9C7ir6dzFxpWsiQiJc66Iey3J2AXjp5p6SSLu3hv5AeRqvdnswmatTXpjjwVGgZ312oJi9p4O7YRHn0xgCJfM0LJiMSoCORoWbnFcIdJ5OkXmhAzA/68xjravKoNZ7fIaFItM+gde1b95Ui5oO6yQ3RBrUkV3T0tX1vvTZM/dHNZ4F1DC8tEXyIdElQrnuERjM/oLclO6/jLgm6jVTU6teGi4GfcO+XhRzODuxOrSfSiN106t6x2dqahw91xQdzJEuzf/Z8bhRopOcuy+Jt4cOmwwwcSEhumduNWNCU6v6o5DYj3G7xvui2aZACq5cLd2psrHLqj1kDIZ55GgtT5eso3OgOR+w4iabMU4sN5RN/OCgt6ww== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4344.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(39860400002)(366004)(396003)(346002)(376002)(2906002)(9686003)(53546011)(66946007)(71200400001)(54906003)(66476007)(186003)(6506007)(478600001)(110136005)(316002)(64756008)(5660300002)(33656002)(55016002)(66556008)(8676002)(83380400001)(7416002)(7696005)(8936002)(52536014)(66446008)(76116006)(86362001)(4326008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?dUrgjAPaX0bcyS0tElQXZNvxmhZqRNVXLGg8cxHPLd/SVtEXUVyPiiuy2wwt?= =?us-ascii?Q?szSlOaVAu7I3vlA/bLE1ipGJCBEHJ/dNFjYDOQuqTNqiHbD0xGd7xjYBV6lB?= =?us-ascii?Q?ipqtW3mXKyMDdeKBjLRbLWcw+S+u3LM4PAVK+BLS0xus53/9a9YJX6emixcE?= =?us-ascii?Q?0+99EbBhJ/MDiWYSkEDO/Dl547kbMyJZnnuLqsg7kl3dCh54/RHfovjinTgh?= =?us-ascii?Q?gDY58cefGw2uuxjcim8lJFzk43IZ5NroCTLVV8ykJl2w0VopPOVGLJtxr6vm?= =?us-ascii?Q?JMOJV4lUw8Gm921Lz78XpW74JCRiiExHCRBrTSD1AcYV7EBoZ93pvsdZsHuL?= =?us-ascii?Q?3QiY/0C8JjPZh6Kzp+UT81pHSdIOMmjJEpRNNPqMIWDs2/GBbkJO0h6ZYusf?= =?us-ascii?Q?bUr+KuTreLYhAv14cWj+TX9ZrpgijI9hapGtC9Q307VPrQNi9H0T719a0Hko?= =?us-ascii?Q?LBm5Eu7kT+gzYF2WXiPltdUWla/10NKHmFHiXp+OVaFxzhg1C2SXqoHiIZkI?= =?us-ascii?Q?TmiAoYudxpXeJFCSvkXqQR/gud3/F3+w093jbV59uH11tiYhaIc3dGWuS6My?= =?us-ascii?Q?ofefrCWPPmUwRSeXL06PdV09evN+6/S4JXcwPhFH1Bvcr2Ck1iFz0P0FZBo+?= =?us-ascii?Q?Fy8FECLJZyjldrQaWf2JvBeoOLqqiHNRgVtor23B9OfSEdoY04SJS1G5bWr2?= =?us-ascii?Q?4EpfeiMPi85N2XI1/PS80M5God6jLaHs30uGlhY6GH7doCWesej7kKLKvuaY?= =?us-ascii?Q?6+038fQ4RDND9Fhqe4vdSbyUsQ/Ym3cX9HZZyiC1GZ9V85TDYQQ5tgQmM37T?= =?us-ascii?Q?tQtm8TWT6xlFtJnkQrQ6Otu6vaniTMrzkDl3JnpBdoFOL5z9tBXMqMwZhNyM?= =?us-ascii?Q?kUE6nYYkF2StNyU/TSsz1eLeoUb7ZhlSBYmk6ZODsjLv5kxrfcVarvv53Rrw?= =?us-ascii?Q?rTTh9QPLSssJ+8Q0OVhKOHRJhB6183MRjy+U0uq9pgfD4N1CF/XUD5oIOmH+?= =?us-ascii?Q?hjZGX56d0Ib2ooeMCYMnuSqV+vEq+GEJa67Zo12VvST8q2ElAcgVnqh9g0jz?= =?us-ascii?Q?R9nmasgIP5VwXvvAZ/sm2XhFIvhhuFd3+kt/0hHFvCES3ZZI67dId/hwZqI9?= =?us-ascii?Q?j+V4Bqtwkkkh04vMZvqHfv1PQcGXJUBTUWlT29CvLBAGf8kvlNe4jhOdjbM+?= =?us-ascii?Q?hJ6U2v3oIhUXeneXkUXfd6eBYGumOdMffp2RJFSRM4gAOR2eADIjaE7Fd4zD?= =?us-ascii?Q?/W99+uv5Ul/KAP3OTgT9pZcFylyAmrwYHs4663y17S/KzYIdVw3TQXjU5QOB?= =?us-ascii?Q?qJ5N0b/li+/IYn0BmJtmgLF6tWKGnkvy7pE3wO+4WQD1sQErIDSR5zDhs/GG?= =?us-ascii?Q?Z0QrltXIpBqNb2665nNLIVDh6R/I?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4344.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f69f8736-38b6-4757-9a39-08d8dd0527a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2021 22:55:48.1223 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: DD7Z3nJYJp9x5nPA9HvtL/Y6hiXYXgbS76gc623jA1kzhMIcivgHZwWIbKrFqAdqVPWhv28g3Bl4Ui5+O93UHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4160 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1614639353; bh=UcRAqZsNAc5tyn8qB8O86feX/k1gTclG2+wu/Pv3QX0=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:msip_labels:authentication-results: x-originating-ip:x-ms-publictraffictype: x-ms-office365-filtering-correlation-id:x-ms-traffictypediagnostic: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs:x-header: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=aWShgIOPd2W6kIuuKXzDpWqwYIaz/i7KU9ttu8Njs/vR/k4kQew59ipswv+3eBPjC ravXV11N+/GUZOBvT8ekQauIHnIhty0R+aHA0i/xTvpYCEdC+uKJ9YGIQhXfdAz/jL UmDg5tW7TtHBJg47dYYAgO1tBRb8FbinJ4mHAWkDitJN1UL1SBXnHAmsHIj3OgGreR k4xMUi6wm+0IMgeDW/4VOqLoLFryv8CfVE7MMnWufgQhG+iP0H1o2I88yADi/KFJ3u T75giv2/pOLSCdE8JC/fHXjnb89rcfS6ZH9VAUt1ylswlhLaYLg2HturYxuNmueI7D W9P/Nom2V5edA== X-Stat-Signature: pr5uyeix4kh5r5nn5ooqbdm4hwys1kju X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 7D69FC06CB9D Received-SPF: none (nvidia.com>: No applicable sender policy available) receiver=imf03; identity=mailfrom; envelope-from=""; helo=hqnvemgate24.nvidia.com; client-ip=216.228.121.143 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1614639351-976239 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: > From: Alistair Popple > Sent: Thursday, February 25, 2021 11:18 PM > To: linux-mm@kvack.org; nouveau@lists.freedesktop.org; > bskeggs@redhat.com; akpm@linux-foundation.org > Cc: linux-doc@vger.kernel.org; linux-kernel@vger.kernel.org; dri- > devel@lists.freedesktop.org; John Hubbard ; Ralph > Campbell ; jglisse@redhat.com; Jason Gunthorpe > ; hch@infradead.org; daniel@ffwll.ch; Alistair Popple > > Subject: [PATCH v3 5/8] mm: Device exclusive memory access >=20 > Some devices require exclusive write access to shared virtual memory (SVM= ) > ranges to perform atomic operations on that memory. This requires CPU pag= e > tables to be updated to deny access whilst atomic operations are occurrin= g. >=20 > In order to do this introduce a new swap entry type (SWP_DEVICE_EXCLUSIVE= ). > When a SVM range needs to be marked for exclusive access by a device all = page > table mappings for the particular range are replaced with device exclusiv= e swap > entries. This causes any CPU access to the page to result in a fault. >=20 > Faults are resovled by replacing the faulting entry with the original map= ping. This > results in MMU notifiers being called which a driver uses to update acces= s > permissions such as revoking atomic access. After notifiers have been cal= led the > device will no longer have exclusive access to the region. >=20 > Signed-off-by: Alistair Popple > --- > Documentation/vm/hmm.rst | 15 ++++ > include/linux/rmap.h | 3 + > include/linux/swap.h | 4 +- > include/linux/swapops.h | 44 ++++++++++- > mm/hmm.c | 5 ++ > mm/memory.c | 108 +++++++++++++++++++++++++- > mm/mprotect.c | 8 ++ > mm/page_vma_mapped.c | 9 ++- > mm/rmap.c | 163 +++++++++++++++++++++++++++++++++++++++ > 9 files changed, 352 insertions(+), 7 deletions(-) ... > +int make_device_exclusive_range(struct mm_struct *mm, unsigned long star= t, > + unsigned long end, struct page **pages) { > + long npages =3D (end - start) >> PAGE_SHIFT; > + long i; Nit: you should use unsigned long for 'i' and 'npages' to match start/end.