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 36477C54E94 for ; Thu, 26 Jan 2023 14:46:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A378E8E0003; Thu, 26 Jan 2023 09:46:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E7E88E0001; Thu, 26 Jan 2023 09:46:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 888EA8E0003; Thu, 26 Jan 2023 09:46:17 -0500 (EST) 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 7B0F48E0001 for ; Thu, 26 Jan 2023 09:46:17 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4FDFE80C88 for ; Thu, 26 Jan 2023 14:46:17 +0000 (UTC) X-FDA: 80397225594.22.FD93C6E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 17F264001B for ; Thu, 26 Jan 2023 14:46:13 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=C1yjr4EY; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674744374; 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=itCILTc26QfxTBHce8KpFyfoVahCUrSDrTkPAZah7o4=; b=s71QR8bOVr3ZdCKAtHh6t3ZfmMso+sbAjfnF6NVprgQSCDo92EdALNTYT2jVPp1qxD1CTn A4x1zyqzJjpbljx4/ZeNk/RTIXgLVP23zokcVHrGbYq72ENxQ1FShImXsmcOQiRRoadwmI r/wbxXHHrxk8sjLiYCrr1G9CrfqTHrQ= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=C1yjr4EY; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674744374; a=rsa-sha256; cv=none; b=UTQOWuS+uXqRdgX2EPZc1HTwuXzLWbyS0EGQ5MNDjtq1tO8W9h50T2PpL94+QJ9VrRgAcC CnnPRN55hnLBMgtAnXOZmarfmhyDRhxZS4gnb6pm/WBeRR3uQBTGufJFFB4ZQd0ZrcDMCX Zbb8grUBDl0YxW9nCRIEwvfnopEVhro= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674744373; h=from:from: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; bh=itCILTc26QfxTBHce8KpFyfoVahCUrSDrTkPAZah7o4=; b=C1yjr4EYIMgR2QKJ+DtN/9q7xIQxM0Mn6a6E4w2RjJpIx7pZmVsc48dYdO9sjvqWN5mMJq lsR4/n4kGHp4BY2cNGpu9KZkpJu4GIGZCjrqDPZoBbQN/GkrSE8HT92Irm0+VAy/VTZEeI zzgQyk5mcPVdUlti5mbVkEzltlU3W6Q= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-508-pNJCHtg3POiRyxem0xvcGg-1; Thu, 26 Jan 2023 09:46:12 -0500 X-MC-Unique: pNJCHtg3POiRyxem0xvcGg-1 Received: by mail-wm1-f70.google.com with SMTP id k34-20020a05600c1ca200b003db30c3ed63so1145775wms.2 for ; Thu, 26 Jan 2023 06:46:11 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=itCILTc26QfxTBHce8KpFyfoVahCUrSDrTkPAZah7o4=; b=3koPRfU8eoYhaldUWbj1wjDyvOtf7ulmpTlYwbzn681DWNEJmxMbgUF/UGw0GwYfXX CAr/70ev+D9G1N+9xT+kw+uwMmDYgC0MqpxUtlycPDszVPF2a/L73k1vYwz/sncJGZut +B6IgbVlm+teUsxM7devnOc9tFuu6UTrnKbzXO2qd2FtHTUL3/LnS6FIBSWUOEgXBvc6 Hkyn9GBgsv6IyD2sTgNWzPBqjjZCSp9R0pS4b2hIrN0BnEXi1sSgtWSwXAELZAEumeOb pVY1XneAJBcBjpL4LrJHeM0eniILMaYBltknNWuHS1zh1Dde59iyVmlsS/HE1w8KG7ku 0cgA== X-Gm-Message-State: AFqh2koJyNb4JYtxXZ8imz82JIU4XUmlIG2AJr7sLWe8WrrxrF3HXY9f AamcCY+B8E2foGTdnbF+VEbOTSa8Pll0OkcdYjSPitrmJiOvQa2MZhXJOYAqe5VVZbyuyngiPte YMOzLBchwl2E= X-Received: by 2002:a5d:660b:0:b0:25d:4dfb:790c with SMTP id n11-20020a5d660b000000b0025d4dfb790cmr31168659wru.13.1674744370756; Thu, 26 Jan 2023 06:46:10 -0800 (PST) X-Google-Smtp-Source: AMrXdXuNonVxsvgXEQcKZcQ76lYmNxWjGbagY9sguTkQJCYXsZGLvEOwq5X6rhpu9PlZi4ZBm7sbrw== X-Received: by 2002:a5d:660b:0:b0:25d:4dfb:790c with SMTP id n11-20020a5d660b000000b0025d4dfb790cmr31168631wru.13.1674744370380; Thu, 26 Jan 2023 06:46:10 -0800 (PST) Received: from ?IPV6:2a09:80c0:192:0:5dac:bf3d:c41:c3e7? ([2a09:80c0:192:0:5dac:bf3d:c41:c3e7]) by smtp.gmail.com with ESMTPSA id b11-20020adfe30b000000b002bfcc940014sm423485wrj.82.2023.01.26.06.46.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Jan 2023 06:46:09 -0800 (PST) Message-ID: <7388b6a6-85f5-2e61-e3dc-54de531308d0@redhat.com> Date: Thu, 26 Jan 2023 15:46:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [PATCH v2 13/13] mm/gup: move private gup FOLL_ flags to internal.h To: Claudio Imbrenda , Jason Gunthorpe Cc: Alistair Popple , David Howells , Christoph Hellwig , John Hubbard , linux-mm@kvack.org, "Mike Rapoport (IBM)" , Christian Borntraeger , Janosch Frank References: <13-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com> <20230126154148.2442e4cd@p-imbrenda> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20230126154148.2442e4cd@p-imbrenda> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 17F264001B X-Stat-Signature: 6asqzuexcf5qh8tj7ya6osbugstdbnr3 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1674744373-810846 X-HE-Meta: U2FsdGVkX1+xZlCiEUfOCGHLAXYeOBTsi43JfTqPt6RvwAHYvU7MHnGwrRvkglRpRmT2h6Di4Nbmn7zIcEcAWcDMOcb98RDl/r9DfOUJgEuSM87CGWze/1Mdm3xN2AiKf0l/nXI0+sCzOR0+6Wo+b/4Rz0EwQvGMOHyKvABJBDHdqDfQ/Gt1pdJkCzByjevA9vefpG1kK3jV2zCoMsFVGnsPeTImjXYrk4lkildFxNuVNAHms7ZTvzixPQ/RSkDSGix0kupCrs8LeOwicrivbKAPrbxMEh6goeIHr+r+BTEpZLyi5tjsPf8bTeheQEFT4LO3urRpW3CCNoqFkdeOxkZvaLQwTkVoBz6ldw2elAHQf8gIrrNlVujeRpB6MNzc0ixvxQN95F0988PvUo8Vm7FPH+ZErbXwhIr9zTFTzz4LlvyyaXMVPlc/JuObdS6W5mtGsuL1Q07CRbuH8H3HhmWD3OmexDiCUYCPFNpTijMMdVd8hUz/nHJ/fpKsvJTNBUKYB6oCamYAeJ36u5BTuLxJ9lMsY90tf2agPANGZX/Jzb8G4v37/mS3WmE1gYAZqjvm3Fof6P+HfLRj0ikEMgcU6ivTaAh7Cl3s7D7UgVUcXA8u5BvsnCJv4ZyuslDRFUA0d8czlRAaRRWANlmUGE0NxNhwa7fNYCmLauJXHqdSUVb4KEIdwiG9r7xuHURUn7D0WNzUEld5ZUHO13xARsX/+o4WOpuCMMsKK41gOYLm70Mzvea8Q8z23dVnFLso+K2p6Yqn0tIw/Ua6mbcrtVpbxSuWcnxncmdX2pYisLqB0Mq6vMWIwsi65KK+IBYOfd2B4Ov7CPuDbz7Vbf00GitcE1texddFMAg+ozQai8GWNU46M0TxGh7lvELOVgNiz2Obbzjqf37fsjVKgnskGM6gkTJw+FCJN59AjC5IJxe0AkEB4MYOxYJ/51Xb/c5MRhKnoygUnTN24M61prt ++tEk0Kv EeXzEiv6Poe0MxbKans0ceKlQ7S71ZG/FdT+HAAf16OkKXLpnZPypv3FimNpRwv248OGcmOPBqAX4YP0mGMAIdaaIwNkeWZg2XMRU9O3aTzTg7IvDb1YHvCWdXjN5zxbOFZP/B6E0h1pjbDByKZupC7i9PYNN3EyVLqV1FnGOMJh3KwzWXstRnXjtW3IlAYYK4jCeQY70+d66MmKwIQZI48pZY5xCBGhWRUjSvWBnfScqOJEOIBc55JFzCDBzSLw7sYTEg48letjEKro4elXfwx1D1Duk90lnOcG3TjApjhNi18Z9FbilXhuvlqVT4gm+mWJVPiQjl8yE2eOTPAgzwH4M1IyhI69gn4fv2eSRibXwe9Yhetwokw6SZI5gqXCTPBl5qAT3hQcmdthSfyHMoLLWxAWeP7PfEQOKSLeerOeamK2Yt6Orqm8nd8pbREdAc85yy908RcX++zo3w83+t70g4CCIdDk/Hsqa 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 26.01.23 15:41, Claudio Imbrenda wrote: > On Thu, 26 Jan 2023 08:55:27 -0400 > Jason Gunthorpe wrote: > >> On Thu, Jan 26, 2023 at 01:48:46PM +0100, David Hildenbrand wrote: >>> On 24.01.23 21:34, Jason Gunthorpe wrote: >>>> Move the flags that should not/are not used outside gup.c and related into >>>> mm/internal.h to discourage driver abuse. >>>> >>>> To make this more maintainable going forward compact the two FOLL ranges >>>> with new bit numbers from 0 to 11 and 16 to 21, using shifts so it is >>>> explict. >>>> >>>> Switch to an enum so the whole thing is easier to read. >>> >>> Using a __bitwise type would be even better, but that requires quite some >>> adjustments ... >>> >>> The primary leftover for FOLL_GET seems to be follow_page(). IIRC, there is >>> only one caller that doesn't pass FOLL_GET (s390). We could either add a new >>> function to "probe" that anything is mapped (IIRC that's the use case), or >>> simply ref+unref. >> >> Is that code even safe as written? I don't really understand how it > > yes (surprisingly) it is > >> can safely call lock_page() on something it doesn't have a reference >> too ? > > the code between lock_page and unlock_page will behave "properly" and > do nothing or at worst cause a tiny performance issue in the rare case > something changes between the follow_page and the page_lock, i.e. if > things are done on the wrong page. What prevents the page from getting unmapped (MADV_DONTNEED), freed, reallocated as a larger folio and the unlock_page() would target the wrong bit? I think even while freeing a locked page we might run into trouble ... -- Thanks, David / dhildenb