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 AE991C0015E for ; Tue, 25 Jul 2023 22:53:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 172696B0071; Tue, 25 Jul 2023 18:53:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 123236B0074; Tue, 25 Jul 2023 18:53:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EDDB28D0001; Tue, 25 Jul 2023 18:53:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DF72D6B0071 for ; Tue, 25 Jul 2023 18:53:22 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9A38CA0E06 for ; Tue, 25 Jul 2023 22:53:22 +0000 (UTC) X-FDA: 81051637044.19.459AFF5 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2076.outbound.protection.outlook.com [40.107.244.76]) by imf24.hostedemail.com (Postfix) with ESMTP id 62EE6180011 for ; Tue, 25 Jul 2023 22:53:19 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=rZvPDHuB; spf=pass (imf24.hostedemail.com: domain of jgg@nvidia.com designates 40.107.244.76 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1690325599; a=rsa-sha256; cv=pass; b=lqEQmEX1oGmF8KFiacdQ7gwBoVHYms4fqWO0wP/2xgXqk5y01K1B9+gVdp57Ry158VRMfb Ca6nwWZ0WioSGJKImNzepTTgoItba786t1EML3giXa0P601C7PyZaQveIt7RsAUqXYXHA/ lLWtujTacK1sgyjPb+a7x5iMR31hdqU= ARC-Authentication-Results: i=2; imf24.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=rZvPDHuB; spf=pass (imf24.hostedemail.com: domain of jgg@nvidia.com designates 40.107.244.76 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690325599; 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=IPqDxiopXCIRH2Oo/WqX5FaqPDBIhfaFRSzT1J4ZKx4=; b=Hth92z/9yrqFCmQ4CacmylJPX7DDW+KSERSmG45WHXRhG8laSyZxNSfBZXjemZa4rkj+Sw ldQ6fBcHZ2Azwef6MJKT4Xz1kf7ce0k0/SxcFQUIleUbtWdeTSLVRd5FY4W6BHT6i4eiik gwK/Fi30Zcr/nNtOajc1JMJ/+M/c7T8= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wnwdnoq4K65sOaQqrZVuwWmPS5joEeyM0ekCdU/iF6Hy1bZ4sl9rQureyKYLaYZhFQPdng7jM60gAaLvYtlJ2Cj09JncFZO9I9XShnRQJU1pcc76uo9Q6p0OC2P/EsPpXAooxohpfcKMkSMhG9ihSzPUQLRJTfZa4fapmUvxekLKOMXj7/cgUF74lnQVDBIhNcu+UMIJ9n/d+FYf5kUW/bfB8uoHK9N03axVOncqhFlBytuwEKQXEBqELZInmK6iiruIm2IGoIkOM01abOaIIqKJMOhHOQ3ysoCviQJfnCWDCLWTANxacW5WcsvY7Sz84uEm7GHRpP79CFWUYtcuvw== 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=IPqDxiopXCIRH2Oo/WqX5FaqPDBIhfaFRSzT1J4ZKx4=; b=oYWy16468mKIuVtv2TipDOYUynFeRAf9BhUMuCRLNJTIkrJPiUhH3FRJO+ZZhovHMkixyWQBvpEZP+eJeR6poxp10u7m8ylVlm/CLAe5fcIE1Hry8H057itaP1Xgm4FIiOtAyF3IKjc0PAaW2IErtCRvNstdTAKPtOIFSVDK/M03lICDtkRpx39D7XvWrJcTP3aMhp0NBbSBCszCPp43Lg+hWRIxXJBb2rpWl/L728vLNSjvg17LPUMul1FoF7qezFK5JxuI6CqIeB8t8AVq0JcgMuDEBYxIi/Rwts/r9H9SC04eoCyZXr4bJisQeFHKtx7EaD/vD6zUHWyPM+X/Ew== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IPqDxiopXCIRH2Oo/WqX5FaqPDBIhfaFRSzT1J4ZKx4=; b=rZvPDHuBowwgxsZeiSA2HCpBueuClFlRLZ4VFGaybnsu5dFsomxMQttfViLPR65xxGaYhGsg5L2gvM6bcSqBg63ZSGKZyuSWO7Py3atFj1wPjcElbeNH8CgNKGIHsxkNBUYjI2ayB+zxotmwnBW3nC/dcc1aE2LEjywC/MDkpvP9CutGdB+MSFaUN6kaSxlngWPh+q3OfxtIM9WymMn/0ePnjt9WKSlDt3z5KCHHUYDdiwmzZ4x3vjPguHrsmsiJDuJRkJGgz4CJWGujW0Yox9RchT77m0m/0i9gUCBPIvgTD7MS2NpoEBCrJhVchTVz+sVi9YiFO6y3ojabSBogUw== Received: from MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) by PH0PR12MB5484.namprd12.prod.outlook.com (2603:10b6:510:eb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.33; Tue, 25 Jul 2023 22:53:16 +0000 Received: from MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::79ca:2fea:f0a2:d1e9]) by MN0PR12MB5859.namprd12.prod.outlook.com ([fe80::79ca:2fea:f0a2:d1e9%4]) with mapi id 15.20.6609.032; Tue, 25 Jul 2023 22:53:16 +0000 Date: Tue, 25 Jul 2023 19:53:15 -0300 From: Jason Gunthorpe To: "Kasireddy, Vivek" Cc: Alistair Popple , Gerd Hoffmann , "Kim, Dongwon" , David Hildenbrand , "Chang, Junxiao" , Hugh Dickins , Peter Xu , "linux-mm@kvack.org" , "dri-devel@lists.freedesktop.org" , Mike Kravetz Subject: Re: [RFC v1 1/3] mm/mmu_notifier: Add a new notifier for mapping updates (new pages) Message-ID: References: <20230718082858.1570809-1-vivek.kasireddy@intel.com> <20230718082858.1570809-2-vivek.kasireddy@intel.com> <87jzuwlkae.fsf@nvdebian.thelocal> <87pm4nj6s5.fsf@nvdebian.thelocal> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MN2PR18CA0011.namprd18.prod.outlook.com (2603:10b6:208:23c::16) To MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR12MB5859:EE_|PH0PR12MB5484:EE_ X-MS-Office365-Filtering-Correlation-Id: b2db42a4-521f-4ad9-cd2b-08db8d61eee1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sbsLa69tIgfu9WNRD1BQMbPBXjn1BhmLol8/H8TFC7gciWXsi2NTdvG+YY9mrXRXqMQ9z7gYV6yC4hqZkMeUqRTPo1PQd2M0RvfrIBbW9Ewkh8RLV3ygFYlUNOxt5wb2PZEy2wMlMLd6loNT4qDxHNHtvcSp4IGv13R0EWkq6GgULZNMiRlnZ7Q4G/shkGGLRjisUkvMnm4A1Pw+aWM0QPLHxJhuDvoRp007Ydmapd9sgk6uRqZsiNI0UN2EiV0WWYb6HD04eC018hdihUylSkgQcxNZiNZTfN+rnNSAk/lP6k9g2209ERB11uYzpk1OoovUC7tNVUit8raiBU2zzfLBgCcyCQvgaRa3WqkpEJFT+J3eYO7Un740hGbEMlfzQ7RrBGW2Eu6hwazRYbXaWwu0yaCmij5nu1/c7CEX9OYvmOKutVsUR8E543jTzfyoQTlVw0/dGpTqrzcTG6xLoDy6UGCf/45+I5PPYMjh8C1Qzry81S1ZG2hRWIZJYnSt5Pf+VM2fB2lTa+ehQJ7GjyQFYVM1oHYnlbShMpCO4gbsy0krFM20vh4MoCkUZ6I2zrvepnJWurKNgQPHkoRgFJgGJiKyP80CAsliTgUMPOw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN0PR12MB5859.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(39860400002)(396003)(136003)(366004)(376002)(451199021)(54906003)(6512007)(38100700002)(6486002)(478600001)(41300700001)(2616005)(5660300002)(316002)(66476007)(8936002)(8676002)(4326008)(66556008)(6916009)(66946007)(186003)(83380400001)(6506007)(26005)(86362001)(7416002)(2906002)(36756003)(15650500001)(66899021)(67856001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?InDYrcH2BQLxQh8FY+3zHbs3XRwQwTCwWcERozUSpFzX8ZUj+lX1CxLVeT3r?= =?us-ascii?Q?TjOvIZjr6HVdsny1cMEBknvknQXsyGS535QVE8hZYo6IgpaWtV40a84q1mk0?= =?us-ascii?Q?xWg1Rxm1NUcoK/ziWsSvH9II779ajN4Br/cfWUGzI9ZnpTm89ECc/a3jOaby?= =?us-ascii?Q?FppaDTCiPEhMg7SPZtrv0pg9A6GK5mmcoL52r2n/RyeM+rRWtO1+ygKMlDcq?= =?us-ascii?Q?+PEOxBZQoTfOAwJXDPnQAt+FRaigOaqvFRCWPPETilsa4VPJ8fRJ8egr3sNp?= =?us-ascii?Q?WBs4W+pF2JRKqWIKtV6pTuOg6hPIaC84C3fKCB7TbfMA6fvSI5Hy1I64hCcd?= =?us-ascii?Q?RxCs3CpH43ILUyqbAs/A5Z7QCnku+SX24oEAo8UDX0NCsEiNC5yGV6ZqGNv5?= =?us-ascii?Q?xF2yFBDdPz1bnxM/dJLMXAZTphw4A7WQ5jrPZvSnXyNcvB9qe4ZSYSb9gFXC?= =?us-ascii?Q?dGzlk6a7+2W9+g4nsRGTLH73ot2I1566YmNzjoY7dXZ6HCTkjaFe934qc7Xt?= =?us-ascii?Q?eQK7WrhU9d+zSDT8P8KyLE+h9gdGCKVEUNuut8WMQqkTyYbK/MrhwOkEobRt?= =?us-ascii?Q?CemZN1qiEqqKYeN30zWgF1AFNbDCf6Q9sRZeoUGGxUzo/ftsl/mNgdK78N0d?= =?us-ascii?Q?CcQRcAqjX5AZCcG6GFQM7mF0LmtWAkaRsMpV7PqH4aTZaWri/CP/1wl+qBg/?= =?us-ascii?Q?W5eVuTEBg5Hddm4dNX32t0Mn7365piTipCqBnPeSiR84G591U2K/Dlkm94ra?= =?us-ascii?Q?MSPP9FdPgjikZpuSoPV14qRUo3KpbekshKjx73AmRYmZVlYGVbsqA0dN+Osr?= =?us-ascii?Q?W4pVscpvs/gDDAYNXVWLlAmI3Ya+H4H2uvmVxrLJJaGKaWI02F2p+CMpQJBK?= =?us-ascii?Q?H0ri41s/RCxRfcbxG88p+ndt9i632COP/nC4KrT4DgwtWgaDtRGpwWIi82q3?= =?us-ascii?Q?LtIrWZbui0fF50zqMHVwPzVydbZWbrRSjPDIi/L9WOVe6UzfPqW4Olltmg9e?= =?us-ascii?Q?+yVG262OgI12g4kFT/dXbx+bEWw/+PxHO/c2mbFJtwHraMwAu6uGoe/6f3Be?= =?us-ascii?Q?X9TG2P0c8GDXPwdzC/+ezsTvui8gCkLGKho8oYkn2wbYZ2VwjfWIeClpPYQB?= =?us-ascii?Q?a/rxlna+Co50X4CyxawYRSENSwApMhVJlK3BvyFcJNOyKO6LXtMTnSuJTpEp?= =?us-ascii?Q?Ht4Q356AgaLEGlKDlrTq3BI1uSGI6rvTlTYpyhugnea58ahBfUA/MnK63Buv?= =?us-ascii?Q?Qa0TjZkYySkvp1QYuvFFSCb1EfnN/A+XiBm2y8BxEpnyI28WMl3Csglh8qj4?= =?us-ascii?Q?MnVwRUiETSUNplBeNO1HH1ZMZOKWWqVjRoqasWFC/3Bo0exD7rzFEAFecezT?= =?us-ascii?Q?AVbhgy9b6drzeicjiS6hnVFAWseB5Ri54clImz9Tr8soV2x+9OxiV0lPO6kP?= =?us-ascii?Q?hgvcWnAK+nX5ktqtlB1fQ45ogA8BtJPhjihw8OQFlc0gu3X+fnthtYeGH6V6?= =?us-ascii?Q?ZrPXyTDYwZIldGFCZXjsLtuqU0scjvb1Tph0cUeYImb2lY1G+syzcWGcIdsZ?= =?us-ascii?Q?uyRKMJ8+BoDvranVbmUljfsGr24c3UV4CuuY+LYq?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2db42a4-521f-4ad9-cd2b-08db8d61eee1 X-MS-Exchange-CrossTenant-AuthSource: MN0PR12MB5859.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2023 22:53:16.3796 (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: rhPC1HQ2c8kMc3wv2Nh+aPn0+B+/YdJRArtRR72Idvwp5Z0BWmlufF++RTA1agi3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5484 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 62EE6180011 X-Stat-Signature: pngqrt5xt7cwbk3k44er5xuxmzy14ppq X-Rspam-User: X-HE-Tag: 1690325599-594768 X-HE-Meta: U2FsdGVkX189j6jlf2Wys/FDKNi5NEcng21FmU6rJveaokgh4zqTqZjKO3dcXyk/ygf9p5UTiTHI9kHsh3Qzz8iNxBCpVZVKIa0h6dDdIbFSqZ4f4ce1Ee1uM/XkSDuDTZ1sDPQtSuHM2g5a20BEjeDgh1br5NB+eyS8zbs5iz7vRUrJ+fYFoea9raT17NHblsgwlJzTwbBIByC3d+P/LdMHGbTRqqztO2qfgsiYt25tQHRS2disib5vsH7W5ovVb4F4TIXIEkFFTcGR9fAQ98M1RTGN+ukiOSurnHBPJy75IAk0w4R25UYzAI9Sywu8cMgYcJUMYC+v/Zo8ZNrHtq+WVtlkbWFUfoF8lt25SV4IU90svItxqo7M6itm40kKKRgGpBdhZ3eFCutM8iN1+ed9GH5mfHTl9YN1o9G8mAV0tHEE4ijlOqM4Z2AUcEM+MMF7KpbTJO8PWTlT4VERo8S5LvZhZhkQeWAGesa4UwrfCSyqbUL7OvVwkr5u3LG1yTe9ugdre4zBFnthOF7YDXIymjnsTb2onxRbIaQGbYVVxM5D4JpbZehfqlohFcnyklHejO0kARjITTrBn/yGq8TIFnnSrsTVx6P1wlrIadNK+OoUP8UPng7+ZytRFc5YFXovPCabrkEzKK36y5VCbsDR/GWajVDMhQv3Hgpr97ORbzJF0cr8bzhA0Ly8WHV4EK5nDeg0ODFfQjxOKVA9V0rHhww5DylHfo/DMr17tg3HdLxVN34wQgkIc2lO8PKlr2/mP8o1qycNWL0mVeCmvk3af3A08DVm7kNpR3uQJL+o+o5POmswwyHwNjPCmrbkgB8qNKQjm4ThgkRC8baklRyglfPDFmMLcJ56resUYl0jbnPBC7KrJBO/vohRRmbQXOl2SIFViGjUoxJ6cDB8BYTDqma0T70CXaNq94VHB4fAtvHajMgGmydvKfMNX3Ss8qYLGSiAaoXWbCFhIi4 f3zO9c/d b7HK9jzwjhyTmZripPxGxb5QkkUX4s27V6AhOODRwqV9xIQQwxtcwQPGv18CJFWyYiAPEvL1+uRIU8oVFxh2kUaIimUPKhz6vi7Naywq8xKCm/N3aJP0OtA0il147Nl9ztF+bDZbzTz5KrP+ChXLxpMw9nVOoCAxYzb3DAymshvue8KCkTM5BWcAzGI94NmwFpFJFPQ7Aryakuo9vjp415yc8IfXi8sxcfubk5dCJGnnYOSpWjDKwL2mUfA3jNBvHbdZhAFZygeY8CY0ozEi9n8KgYdcCDWKrx1UoVv3yT2zvlLQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jul 25, 2023 at 10:44:09PM +0000, Kasireddy, Vivek wrote: > > If you still need the memory mapped then you re-call hmm_range_fault > > and re-obtain it. hmm_range_fault will resolve all the races and you > > get new pages. > IIUC, for my udmabuf use-case, it looks like calling hmm_range_fault > immediately after an invalidate (range notification) would preemptively fault in > new pages before a write. The problem with that is if a read occurs on those > new pages, then the data is incorrect as a write may not have > happened yet. It cannot be, if you use hmm_range_fault correctly you cannot get corruption no matter what is done to the mmap'd memfd. If there is otherwise it is a hmm_range_fault bug plain and simple. > Ideally, what I am looking for is for getting new pages at the time of or after > a write; until then, it is ok to use the old pages given my use-case. It is wrong, if you are synchronizing the vma then you must use the latest copy. If your use case can tolerate it then keep a 'not present' indication for the missing pages until you actually need them, but dmabuf doesn't really provide an API for that. > I think the difference comes down to whether we (udmabuf driver) want to > grab the new pages after getting notified about a PTE update because > of a fault Why? You still haven't explained why you want this. If you are writing to the pages then you have to do this If you are reading from the pages then hmm_range_fault should return the zero page for a hole until it is written too Jason