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 7E3A5C54E94 for ; Thu, 26 Jan 2023 13:06:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 10D566B0071; Thu, 26 Jan 2023 08:06:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0BE1C6B0072; Thu, 26 Jan 2023 08:06:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E79438E0001; Thu, 26 Jan 2023 08:06:19 -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 D39B86B0071 for ; Thu, 26 Jan 2023 08:06:19 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A484FC0BBE for ; Thu, 26 Jan 2023 13:06:19 +0000 (UTC) X-FDA: 80396973678.23.157E506 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf24.hostedemail.com (Postfix) with ESMTP id 68A8D180012 for ; Thu, 26 Jan 2023 13:06:17 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Dh6VgL0U; spf=pass (imf24.hostedemail.com: domain of david@redhat.com designates 170.10.129.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=1674738377; 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=7s1Qh7R69so5gbhqyUvfDuYLR33ZqOCR4qno3kXFxTs=; b=J8BJ8Ai7aPwJC8Zs2ZRIbr4yW5KGd5o139ADNn5+huaH5TC9GPFt2p1erJehagiZAW7EXW 4X15Ta3vZwlvnYITTWJBpg+kd8accsQC3rv31QXDBISFb8B8Iu87z9hCt2vc6cP255ShEO wKaIsT2K9/0sm6wRHEFNlVw0QHCpaTI= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Dh6VgL0U; spf=pass (imf24.hostedemail.com: domain of david@redhat.com designates 170.10.129.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=1674738377; a=rsa-sha256; cv=none; b=Gjf0UyeXhPINNJkVGb/RbJXfDLo1djzgnCOlDGNg5RYswVfTqG/DseprbjFGIhGEuRQO5j 6FfnGy7WQrJL5RAJ06tzSpWpS0emiyRmZwJXLLMIk75gMOlzEXXu9kGT6XlrFXzcWSQSP9 0vnTsJYEqISCxqAET8Zl8nrvQPQWPRY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674738376; 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=7s1Qh7R69so5gbhqyUvfDuYLR33ZqOCR4qno3kXFxTs=; b=Dh6VgL0UUVVC8E7f/Ev5s+A34DM00Sk64TZANE/ls0iFCvwW9te1N4+L7hzBqNOBvqk5kl rB/awqibcCfsAzvwgqvSktUVCOKrKA9mnM09tJH4FKMcNnLisO4v5qZh4pN0ubK5LT54DM lCtQ5Zeg/89ROuxx9D1qjfY2sfV4hXs= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-659-7PTEZd60N_6EG2u1bVqzqw-1; Thu, 26 Jan 2023 08:06:13 -0500 X-MC-Unique: 7PTEZd60N_6EG2u1bVqzqw-1 Received: by mail-wm1-f71.google.com with SMTP id k20-20020a05600c1c9400b003db2e916b3aso2791022wms.6 for ; Thu, 26 Jan 2023 05:06:13 -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:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7s1Qh7R69so5gbhqyUvfDuYLR33ZqOCR4qno3kXFxTs=; b=yPmYiVIrc/CJvKUQa+uQLimpOiPAfOr2ZL0LOQgfgw4k5u0kudXsmXumzEwvINEPED eyEZW1LmRlDjVhxaVAFveiqIQgdAXVgCfelH9Tf9S1dCL02fuhaM9+eiBJ/ksHTg6+Cm 65QuFY/YwddJ0ZW8NNTlIgFJrLxT9SpcklRJDPXNu0KQUVoO8p6nHmhRSaCZrYIIMTJG 7+szu2gENkwFF5Hc7q42RTqFotmkRuPBYUzmRsAa7acanzADQMdVYvIV5YbICQ/sDZwd VWYrjua48JvlnkmdlgCLb+DMkGNou7zr4+8jkVpNXOByChz/KNOc0QFe/KzMnU3+I/0I Oehw== X-Gm-Message-State: AFqh2krlu/VrmGRKkQYZFENRm8vE+Gdf3adxbvQCC8nwn7mXsi6QErcW qqwC2xbx7wJlgI2xMXeTb/Ne6RmYaVzUQApvy6J9WOv5o7swV/isgdYWMZWqdniBd3kvCIi1LAB K+LeFwAGzaC8= X-Received: by 2002:a1c:4c0a:0:b0:3db:210:6a24 with SMTP id z10-20020a1c4c0a000000b003db02106a24mr34074552wmf.8.1674738372274; Thu, 26 Jan 2023 05:06:12 -0800 (PST) X-Google-Smtp-Source: AMrXdXvsBKfX9CZybfGpzfubQr7BCQyRSer45Txb2N70qQDklXc8XhWZ/tOV5LO7tbzHMvUcbgXnHA== X-Received: by 2002:a1c:4c0a:0:b0:3db:210:6a24 with SMTP id z10-20020a1c4c0a000000b003db02106a24mr34074504wmf.8.1674738371621; Thu, 26 Jan 2023 05:06:11 -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 iz17-20020a05600c555100b003db07420d14sm1428885wmb.39.2023.01.26.05.06.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Jan 2023 05:06:11 -0800 (PST) Message-ID: Date: Thu, 26 Jan 2023 14:06:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 To: Jason Gunthorpe , Claudio Imbrenda Cc: Alistair Popple , David Howells , Christoph Hellwig , John Hubbard , linux-mm@kvack.org, "Mike Rapoport (IBM)" , Christian Borntraeger , Janosch Frank , Claudio Imbrenda References: <13-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v2 13/13] mm/gup: move private gup FOLL_ flags to internal.h In-Reply-To: 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-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: xsm9bj4hz7mfnsao8mghfkk4nkt93y1e X-Rspamd-Queue-Id: 68A8D180012 X-HE-Tag: 1674738377-456552 X-HE-Meta: U2FsdGVkX1/q96L/nA9wvMDIhPMz2VvH2HyEOQNcM1sUF8bM2k8SCO20Z0qdpSrXfXGrThW9iFxKYxA5uiaq8ukNq6R0hfRlso4aBG1dMCVD8lH18xb6m190rRxhYNycBkLasxOcnxoto9FabW+8Ebfuf5KCSsF5M1/SDyBXPk74QSLy+wIZEVItQuAhSctwbHNfeljHBQJDdKilIHt8rp46OAfTu6wPx/MuAtxmXT2LIw+NiVjJ2We4DP1cITl0B9XmGy/iuxX4kDLugVO8XVtUU5mcjF78e3J2R3/RRxKN1KcgXEd0QZwP7/dLtkQhkMN1NILLEMrti87n6suEnXmvGj0pRAfBUbB5pwH4CL5YnRDR6msECsoBKgrDLsNPcA+dvrB69JXplmAtqhCm9s8AwHDB6JDD/jMhHItbVnaMo2bOpJ0FI6Qa9VXgWDjS5RBz5ovGCWdQ9+CYD6ku+jL8+1qTB8Wfm7PTZf66pLS3PhHyk1rTO/eLSR1rAdaO46ztN8faFjC3LojwPRHio8sKukRdzEOyrBkF/0In5/cEpi+7TxsCH7UxQ5V4ahHFNXgAOEvgG9Wd/XFqo7Efn1JaiyST2FhLCijdYBlfmGHG4CccVEekk8xnAtEWOjnvvrTSb6WisKw9/wOaE4U4TNzK8rLushqIhcXEf3RmAnxpdeh/MDwaxTwpPn35E+uGDdfPXdUN8HhJrBNMCvIeBjCygRzIBe7XhdCeCf1GP5LKuoz+xqVK5nBkBAxj9x6z+WqHj/xk6k9zaxkzqWZ2bG1AvSKJRWkopg/d9j1Yk9frK24/SQtsC4FTxf8n/9QBs0kSEwbpE8UHItp/bPSU018J0HO0+5N7NvNwe3X4NiYi8rp5uGgc9F4uftnFsNbTOiATQatW+MaG2IPA4lGmYWylRrfYeY9Br1Ir9FxQldmakZUWm5BkVhba/mPeB0QZi1d7wPcPqdg/A+a2nWl TX9PvrAj pYcVPjcobFye4CZLi7Do5M9HbcqSVCHwXRfL+IrYvA04ten1KfjF4ZUlUPOvIA3ffE6JQMTvy080I0YeUnGIY9NHmGQqlVFF2PWGBs08kSLtOiEArHP+mIx8j9uTGWNDzlBtrEzAZE/sDcJCh3jELgs5Fsrzhcx3h+9SYnTfyOaXpPfbfFDLpEEXofEDUYyHstyYfKik1bsLezAPEwCoRPm/jXQAdGqiJ7naVvkTaIoL6Tb38rvgb6b/0iXu94ee5p1KhNHwI6DSSMW1fYeSepvlpdIBGCziSCMQBcd4t5bZpkobqtmRns1J0K4XbOjwJQV9yK/qlKTgbK4GKYSDmsU8I1h4wcQDtTi0CUSnEzH7D1dnwFn4OFGx6BWtOneqACJnR7LnLCoxXPrG3eJLzkTwNuGssNK3sqBBG57YQ0dFYEgp2AhMDRgJGJoN7inbf4rid 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 13:55, 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 > can safely call lock_page() on something it doesn't have a reference > too ? Let me look into the details ... I remember reviewing that before I got to study the beauty of GUP in more detail. CCin Claudio > > So adding the FOLL_GET and put_page seems like a good idea to me? At a > minimum this should get a comment to explain why it is OK. > At first sight, it really feels like the right thing to do. Maybe another good reason to handle FOLL_GET vs. FOLL_PIN completely internal. Harder to abuse. > S390 people? > > int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb) > { > [..] > 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); > > Jason > -- Thanks, David / dhildenb