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 0847AC54EED for ; Mon, 30 Jan 2023 18:24:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8421A6B0071; Mon, 30 Jan 2023 13:24:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7F1736B0072; Mon, 30 Jan 2023 13:24:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 66AFB6B0080; Mon, 30 Jan 2023 13:24:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 57C4B6B0071 for ; Mon, 30 Jan 2023 13:24:47 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 229D9140A71 for ; Mon, 30 Jan 2023 18:24:47 +0000 (UTC) X-FDA: 80412291414.08.C8B261F Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2059.outbound.protection.outlook.com [40.107.220.59]) by imf16.hostedemail.com (Postfix) with ESMTP id 0A66218001A for ; Mon, 30 Jan 2023 18:24:43 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=E9r8Pdv4; spf=pass (imf16.hostedemail.com: domain of jgg@nvidia.com designates 40.107.220.59 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=1675103084; 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=kxBtNgOpL3YN7g4baRGjcJ+JTZN4OB//1XSNl3uxVlA=; b=usodSTf65Svr2vCwOAYSIK1QArWMawfG12A+lcbvYu2IxhtjAS/txPu1F1/pkkiPgz5ylX NJjIE7J1ghKiitvaQLky8MFI+Dpx7SESUk4qK8F/C4hppa4u251gIpamQn3rEMw9cB7+vC GkC/1Ri/dDDhD8qgtNs+lWQd5RtRHz0= ARC-Authentication-Results: i=2; imf16.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=E9r8Pdv4; spf=pass (imf16.hostedemail.com: domain of jgg@nvidia.com designates 40.107.220.59 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=1675103084; a=rsa-sha256; cv=pass; b=MamkM5S0b3AIYc+DJ/+4/rIf+NEECcaTEd7RDnZCTpj5V+/T3Ct9NjreQG5SHYNOCoKBf6 F1KT0PTRvYbyhP9md5sxTn2hEgKI55tdy2lpR0qLseyI45MG1v3RJ5WJD3unY6vt7W82BR 5GmaTtBagI84ph9eTR/+3TnxbjVs7GQ= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nRM4jg7Os5Ap+9Yh1K0YagNAzW2Lmvp68rCcPkjQ6/Cil9vuhmPEG5hzYkGzGVWuzCjWtQIT6ZENRiYNm4nH4uF3f8/yiuPiavaAjyJXBGgv1XjQM3qGjuuGZSnwyjSlamcTarlGXTF0QrOBqYq1QApYCghfqnSRHuoiJE7AMumgmY9oh3WqR6VFcOmGxoTLBL/cw/UlHszqzutAXixguwQH0hMWyIbomgbEPPWRt5/bSRfQ6Ic7hPoSuczDAd+zd/UFMebArJUFIr52fSsy9VcBFEfianG6t97g7vFf/JsSOSB/bm0fYSt79ujDUMC9vEnV+Vy+ZvGjjKISCmoWIQ== 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=kxBtNgOpL3YN7g4baRGjcJ+JTZN4OB//1XSNl3uxVlA=; b=UxV8/yTDEnSR4dlvNs6suz6ueyaokTz5jjbUQVLRqjKxF1Og+rZCoMPucDRfP1PwY2kZm3qwbS9mBfy7zu2+esggohdNoCXwC3I+nMFca9ka7SI25FqwyeA2oyfB54fJ6jNBXEz4a93aEcr5n7CNJmb+LA8stZjeM830xmw3M3ygrMFjy5JhwlCbTIDSAYvyrypweO2inyegdkc0dghWPnzfMuk6S1ZhTCKnnag6ZY1xAPIYCA+J8svmJFl3D/uN4e76pHMtvhNZoSJLPj243yQMuPZardbbo5CA5IJIyKYtVfU4TP4WOXYD+OVT7t6Hfr1X3l6BK5BladffKBvYHw== 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=kxBtNgOpL3YN7g4baRGjcJ+JTZN4OB//1XSNl3uxVlA=; b=E9r8Pdv4eykWdk2ccy2RROAfcX/gKCKVGpWAIUXrWPHcKf9HtUPkkZsZl2rNjRZugjL0UgirD4gBw7GG/i2hXxvQ51IO+Xk6bxrid8WNWzGAAMubLBkTs3zuHsMS+r+Vi56a2s3qujYzucHKV0y+bnfp3ObkbSxQVFW0cJDyOf/rJjNwZQ+tk6mVXOUimeBI+7aT3H+sJXHQ7K8ip2rFr5yWspXMXbp1NXgQ/o3BZRmX8Q08gQYq/CEDWZkZlA1KzNQc770ZzcRYO0dskilJvZ2lrHIYRYfsrI+dWCYb1pZR7xYnCscIqi8QcuDYJMDMIqdE4Xrv2hR1M1lE3O2/Hw== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by LV2PR12MB5893.namprd12.prod.outlook.com (2603:10b6:408:175::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.36; Mon, 30 Jan 2023 18:24:41 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee%4]) with mapi id 15.20.6043.033; Mon, 30 Jan 2023 18:24:41 +0000 Date: Mon, 30 Jan 2023 14:24:40 -0400 From: Jason Gunthorpe To: Claudio Imbrenda Cc: David Hildenbrand , Alistair Popple , David Howells , Christoph Hellwig , John Hubbard , linux-mm@kvack.org, "Mike Rapoport (IBM)" , Christian Borntraeger , Janosch Frank Subject: Re: [PATCH v2 13/13] mm/gup: move private gup FOLL_ flags to internal.h Message-ID: References: <13-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com> <20230126154148.2442e4cd@p-imbrenda> <7388b6a6-85f5-2e61-e3dc-54de531308d0@redhat.com> <20230126163902.16898798@p-imbrenda> <20230130192104.41c5b426@p-imbrenda> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230130192104.41c5b426@p-imbrenda> X-ClientProxiedBy: BL0PR1501CA0008.namprd15.prod.outlook.com (2603:10b6:207:17::21) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|LV2PR12MB5893:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d928e7c-324a-472c-ccd6-08db02ef40f8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1c7cONMCVa7jzj6kQu1nthXlXloqSDCr19lFIU8Lpm6D/nr0PsM+Mz6kyrF+9ko4doXTKBuGKikVuhocTHY1Y1UkaVyo89mO/AQKIE55xl6pUln3I2faGGCxFAOeN9E7aYbopZLzaaD8YPkiq7MWuDZONtdFt4BzBAf+FteAEdLXIudatmvu4/70J/t22bTqrt/XBiJUK9ioB60R475YmDyGkbdVdz/8yIIYL3CSL8h3E1SKcMaFQR45zGRpEbSbyJLaFbw/Ffinl6JLq/B0d0DtHtmr5GFbw7Dal4F2Xnawmi6Q2GKD2SiOWsVkyyMmGXm048agyL80lWPO+7hFJ3o5W5E2qyM4E4QVgkThjRULKJ5tMFLiG0HPTmVlreIDiUBjQHfDD1rhajvpFpUKWe2flkAYFo/tDT+HAglrhIJA4eW8j2SfbvqkygB5yVW5qKnVOONx7VzjQJcEdmh8uui41RBdEdFXt6g2CnJF+JXyhZSY41Cuvq89p/6dCmIs6Qkp2RUB6RQsPAWUj1c4Nd2ifyuC06LTHO19EK0WFXOrGxQ+m6Y8APA4bryEHUnYzpG73cqGF2A00VsL6bXgBMvJBpzTvuWRdFeaGFDFZFtJev8ix4n9uVMixBXObu0xAmk210UUU/DKjSbY5XvN3g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(346002)(396003)(136003)(376002)(366004)(451199018)(41300700001)(38100700002)(86362001)(54906003)(8936002)(2616005)(5660300002)(316002)(36756003)(2906002)(83380400001)(6506007)(6486002)(6512007)(4326008)(26005)(478600001)(186003)(6916009)(66556008)(66476007)(8676002)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pMOl/AU0jgCYSfMC+G2lMj7prRXvtY2yQO2o4jaaHJWJvsxnuwjCCb/9Lm3n?= =?us-ascii?Q?+RR1x48LsYi3PbAcRx7LPfmwm6ugTVyFzXYWmxUvsO0Y9ifms31dHM9Nxebq?= =?us-ascii?Q?Dofb3FW5v7a9LPed+1nmLzeHofW5genj/e6kOtBKLJuffJ/VdPnvhyPpxZfd?= =?us-ascii?Q?RSoia8aqAMYO88fSHTS8yf7SEDOCHx3e8uqg5HPl+rB2V0RWRQ4qgmqT69Tx?= =?us-ascii?Q?SJAR6zZ7eGQMfApt0CFDS9Dl2SM8SkLQQ6BZmy4+WVFRqoDlh1yd6zxxpbu4?= =?us-ascii?Q?2aKruumaOz9lizrTE1IGuFzMYMHder+VjWqbpIyI+g98MNekvDpnw6in0Ag8?= =?us-ascii?Q?JHPNM9uttS4T5fNjCN2CSbbXWNSDIH9lck4/b63uhq5CFeD9FcgDD8cxkqsD?= =?us-ascii?Q?amRy0/oMfH3MNbTFp2ec55Wq/y9qSyc3bkpYmDUQJEf8oj9Y5BG9Qx5yYzWs?= =?us-ascii?Q?MrtJilCnWhcKfoWaqPU5H4wfNsRWy7u89Z/1GolsGgg6LNG7elEoKxWEjB2D?= =?us-ascii?Q?R8S1QLwKulDpm70gkouQZI0QjwIfRMBWSPRuNIhob1Ov7Pk9StCTZMAYuf2N?= =?us-ascii?Q?ZHW1NagWUqfz57QnK7JppHmog81eYyNIsujJLunZrX54y8gtNtpe+Yol6DSc?= =?us-ascii?Q?anItoqPmlNRVT2DnLMQSxWP/E7kM4CuTRdV/qh8SpGrdfaA+n6Kddm2W4exX?= =?us-ascii?Q?WBc6ES7obJ+FCEyEUY0HeG8LSFKCaYVe1R89YACtNZRNJ/bHCcTXuUWKYJVQ?= =?us-ascii?Q?bqdRbUZ7kA9HbhCzgqatU+WS2P5ZDqa9sB6imMD0gJH80hT2Ovip2I+aY04S?= =?us-ascii?Q?VcIjpR96gaN9+dbLgwPgfkTVJOjGUc5nwNxMtIpVWskTKtqDI3Vw/PN1/2Zs?= =?us-ascii?Q?0XNnRBFPzYpKVD3t6RKehlDzUIiWYBBZ4OMHRtizW3UUaiAY/lHN7fd/3Pa8?= =?us-ascii?Q?uXiw0Ufeohzk8MOwB5nCPAQCU3K1qNcLkzIUZNot5AhXslIgn3LgUexzFaB6?= =?us-ascii?Q?gS5GMombIjP7n1KU0RmUdjKr1lojtnCfrEt7Ro+obmyRAwHYscsniLeYB5+w?= =?us-ascii?Q?Qux/fw7vB/GfYuwmt/+Dc01YXvFkwERmEMLoUD1SQvaa1W9idH1mqZH8Bb7C?= =?us-ascii?Q?euU7zEAetmkwrioWPfui9ttui823hSvfTwQWyFAdDa0e29Gm53d3SapmAoVI?= =?us-ascii?Q?dQBMuA0d215VoFLWToJZuAi9hX5vls+GlclQReIVIfvikIq76iuy1Z7HWeBE?= =?us-ascii?Q?wh9uJkwmUq6vCdrlmQV+2NAESBtxRXxkh8c1V9ELpJinIFlGdH++HziQXB2r?= =?us-ascii?Q?FEJsSp/gzvv80k34UyD4kQYPV2mxNr03rmt/+jh3+cM38K2mFerFXF3QGxEJ?= =?us-ascii?Q?d8/GeIhSffyOHWqWXSL/AytPMugAF5L/x1PxXwAZgR7jqPazfDpyNecicEah?= =?us-ascii?Q?P49Pve+MIHUYq3KXO6WhX6WVkZenT22qEVBKG00G10psFRDmlFSbajaqu2wK?= =?us-ascii?Q?vpc3qJJCZyB7i418Be29Khb+H+c6Y38k0WlJ948bCAgAvz/hxVKQcDKMrJVT?= =?us-ascii?Q?thP9PlmjQ9y31moA0HR5/89X69Th7Xz9ZgTOIoiA?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d928e7c-324a-472c-ccd6-08db02ef40f8 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2023 18:24:41.5105 (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: 6Xi8bQwJZrpQIF09FQQrKGrfQqxlz5uMCbqOn43FTjSXkKoGWT85ya5MA0S7JavM X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5893 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 0A66218001A X-Stat-Signature: xzbo6z7rkky5d3dpakri9o6ich9imn1m X-HE-Tag: 1675103083-643070 X-HE-Meta: U2FsdGVkX1/MiSycfe9plYXTQQphppAcbjnOa4c2aOmo3R2u8K2O4EPFPXuxWQ2Bow/Tb3KUAc47cMVMZNZj/V9TGuffaitPW4j/qXndS2eG0s7VTYgGDvyrGRUb/7ZmrcXzOFqPuTtsl3xS9BW8sx5K44PrL5AacOOjdAyoVjVgPXZwdIdBpkHrHs7mtxAkGA2tuAJtHVhVQfj42iPNs9wpjFUWhWDUOEvzl5TwzGYDQPHv6W9UYUBHIW6w30XoraOUfYOCE0AiIzd1lcTyaQZ2YfahZgFZgE36V2KEe3ffIcL47Rn76systt/FMTAVuTOZ4PoLLjqUAKBDrqd2HFWYI82TV93qMJGvQusXtjaw0QZuT7Ylrs7JCIrerPU2hBJa/ZxYSWRsgUuiu6XOGKHsF5HBQOYXDptAtYHf9vuqmZZj5+DKEafzh5cJEQeCLIR7nRVB2mVKG+Q/LYaiilGzrL6zgz3qB68pQ0e10L02mAq2QhSs8PU6R702kpa/cGgHWprSoXEpKXQk5UjiYpYQAZG9Bfr9ULSGqa1hHzLO7IvsMAK2zGN4zvJVSNp3KAWwoLn3zKtUvWvGO7eIZCBrVwLEQmEDDaOeCT6LdbuVrTH3DKi+dXwxEF9ir3lduJdV6EvWJ3c4Ir2Nzgb+TY7rWNqQ8tEIYX4cLYy/wLYRoCg/w+Ih3+smN06nXh9tJsPbXYAhr5OxGp350edQPS0nEDAoU53Sye1/ZiMerqOjVug0YnGVnIfaarT1uBUfq3skFi8hDjozWxZENI9eBFwUAic6mTjA2/rjWwtSe8PU/lzapMH+vKPtRtes3w2VMcB7/58Oz7ACAV8PIG/mltz7LhKc5BKnvSbgubl0je+QbIflwKBBzo8IdVMbawuetAdpGyMcSYf4KLigPohbjo6Y2XgPp3MCobDUM5JTn16DsHPwGC5/KVWGZuxl4E0wK/q88CQKjP+lTgnJzsV h6K/crv2 svqAwSBBOecMKkpvHAD3Iv7BFb0wXuE5zOsDno36keZ4Kp6KoFhubID/pGJHEM4yqUbU9ON+WtPRZWAN/o3tSQLlE4NdUm4fzGt7SawwS1REnVJXCpTyV/mTk/1TMPIGWr9bAhfiJJYiHuKKwiBB5VnPDNAj5mxA0pugxQX2OLNcd4lxci2AVNvzSW6j85hTZpjOFnG9vZ2ZZfn06PH1vqPJou6xfNCZF50HnlVDHhi9gHqoXF5mF3n+cLw4C+b1ochMLUAc0D+lk7BjRF90idFvk21T8kj9EbWDiWq0hiCPP46g= 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: On Mon, Jan 30, 2023 at 07:21:04PM +0100, Claudio Imbrenda wrote: > On Thu, 26 Jan 2023 12:35:37 -0400 > Jason Gunthorpe wrote: > > > On Thu, Jan 26, 2023 at 04:39:02PM +0100, Claudio Imbrenda wrote: > > > > > I can tell you that the original goal of that function is to make sure > > > that there are no extra references. in particular, we want to prevent > > > I/O of any kind to be ongoing while the page becomes secure. (the I/O > > > will fail and, depending on which device it was, the whole system might > > > end up in a rather unhappy state) > > > > Sure, but if there is concurrent IO you just try again right? It > > doesn't wait for refs to drop for instance. > > > > So make the lock_page work the same way: > > the more I look at this, the less I understand why I wrote the code > like that. I do have a comment, though > > > > > diff --git a/arch/s390/kernel/uv.c b/arch/s390/kernel/uv.c > > index 9f18a4af9c1319..847ee50b8672c6 100644 > > --- a/arch/s390/kernel/uv.c > > +++ b/arch/s390/kernel/uv.c > > @@ -193,20 +193,11 @@ static int expected_page_refs(struct page *page) > > } > > > > static int make_secure_pte(pte_t *ptep, unsigned long addr, > > - struct page *exp_page, struct uv_cb_header *uvcb) > > + struct page *page, struct uv_cb_header *uvcb) > > { > > pte_t entry = READ_ONCE(*ptep); > > - struct page *page; > > int expected, cc = 0; > > > > - if (!pte_present(entry)) > > - return -ENXIO; > > - if (pte_val(entry) & _PAGE_INVALID) > > - return -ENXIO; > > - > > - page = pte_page(entry); > > - if (page != exp_page) > > - return -ENXIO; > > if (PageWriteback(page)) > > return -EAGAIN; > > expected = expected_page_refs(page); > > @@ -304,17 +295,25 @@ int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb) > > goto out; > > > > rc = -ENXIO; > > - page = follow_page(vma, uaddr, FOLL_WRITE); > > - if (IS_ERR_OR_NULL(page)) > > - goto out; > > - > > - lock_page(page); > > ptep = get_locked_pte(gmap->mm, uaddr, &ptelock); > > + > > + if (!pte_present(entry)) > > + goto out_unlock_pte; > > + if (pte_val(entry) & _PAGE_INVALID) > > + goto out_unlock_pte; > > I guess we also need to make sure the page was writable? > FOLL_WRITE made sure of that > > so I guess something like: > > if (!pte_write(entry)) > goto out_unlock_pte; Probably, that looks like an existing race that it wasn't re-checked :\ Jason