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 EDEBFC433F5 for ; Thu, 10 Feb 2022 19:30:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 74C566B0074; Thu, 10 Feb 2022 14:30:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FD3A6B0075; Thu, 10 Feb 2022 14:30:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C3346B0078; Thu, 10 Feb 2022 14:30:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0225.hostedemail.com [216.40.44.225]) by kanga.kvack.org (Postfix) with ESMTP id 4CBCF6B0074 for ; Thu, 10 Feb 2022 14:30:00 -0500 (EST) Received: from smtpin17.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 1688E181AC9C6 for ; Thu, 10 Feb 2022 19:30:00 +0000 (UTC) X-FDA: 79127860560.17.4E795B9 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by imf24.hostedemail.com (Postfix) with ESMTP id ADA28180002 for ; Thu, 10 Feb 2022 19:29:59 +0000 (UTC) Received: by mail-pj1-f52.google.com with SMTP id v13-20020a17090ac90d00b001b87bc106bdso9582862pjt.4 for ; Thu, 10 Feb 2022 11:29:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=JEtaSIPUmwPMEbht/8GtpdgCpAImz37J+lOV4wPhprY=; b=aUPjrbgO33gzzmshctnoKvqOJvUxoWLMN42XPnz4Vokls/etwnpBR1+icvCJ7InEKU yA+FswwCL3wJSPkXrnkU9/XqlprHFyMpdCVZsa3Za/szdtUQHgmgxTGZnS85bd4+DjT3 nMVP1gXBZss6DtZYothTZlr4WSTHL6uTxqdjhU73IlnN7LFYkW4efH1OryuNDt2Xe9i3 Ngh5ATcsKtuiyfmCAi1oHmoUx1NGabGWWHDJd+9n+2R4JI77QCh192SfMDwH9yFiFs4Q JAcpdNNN+jQaDOHnFs6fNsSN0mDWDL3yyaEOBKLWrJAKXtOQi5GY3dm/A0mCMk3yRXho l0SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=JEtaSIPUmwPMEbht/8GtpdgCpAImz37J+lOV4wPhprY=; b=LXx8T6sZG7K4qhijcc1J7cPT8/rB5PFnSntdtzP5NE2Mq/UFoGYZHe29IGkeucsBaz +z1Qh0pDp+vFAXsqzfNpzYdJyKtCjnwg/OZ/f3qMPwAFL5qO00uQEgOXDEe+4vlh56Dz 4gGbG8r5R2qYgI9x92xPChdWsMZseLOC9cvvx3MyhljJaikA+mgbw1U2jbmBah3IYww5 9643eLmXGbMubZQaqmgimvhyhjVYAH+XPxqYIuEBSBxglrnFg1ruSmXqxuYQ0fmbUsn2 xYHThQI2xONmBQccHd48Lsjc4aisqaqzKLFOJBH+R3EDM8k4Cx8nXj3l8cmfrsbw9FjU a/1Q== X-Gm-Message-State: AOAM531dMKcElpq388zpFzToDX2meNikqR6n24PEYwzXSNwgvCgUDCmM zRAbL9WRJUWOLL+rqI7h697IW4caYfI= X-Google-Smtp-Source: ABdhPJwOGnBgHG33xKvmltVSm6jAf0YDvFUD92BcxdXu4vCOUEV1rYv5+YecvAz/A+pxM0U2EGWzsg== X-Received: by 2002:a17:902:c702:: with SMTP id p2mr9003202plp.37.1644521398357; Thu, 10 Feb 2022 11:29:58 -0800 (PST) Received: from google.com ([2620:15c:211:201:4c8c:3496:9911:5b66]) by smtp.gmail.com with ESMTPSA id r7sm11913794pgv.15.2022.02.10.11.29.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Feb 2022 11:29:58 -0800 (PST) Date: Thu, 10 Feb 2022 11:29:56 -0800 From: Minchan Kim To: John Hubbard Cc: linux-mm , LKML Subject: Re: pin_user_pages supports NULL pages arguments? Message-ID: References: <7b19b521-01cf-fafb-e616-21deced2cd5b@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7b19b521-01cf-fafb-e616-21deced2cd5b@nvidia.com> Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=aUPjrbgO; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=kernel.org (policy=none); spf=pass (imf24.hostedemail.com: domain of minchan.kim@gmail.com designates 209.85.216.52 as permitted sender) smtp.mailfrom=minchan.kim@gmail.com X-Rspam-User: X-Rspamd-Queue-Id: ADA28180002 X-Stat-Signature: ggxw5dykjdq983t7pe18rdxj3sh4m689 X-Rspamd-Server: rspam07 X-HE-Tag: 1644521399-332469 X-Bogosity: Ham, tests=bogofilter, spamicity=0.068837, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Feb 10, 2022 at 11:20:31AM -0800, John Hubbard wrote: > On 2/10/22 11:17, Minchan Kim wrote: > > * pin_user_pages() - pin user pages in memory for use by other devices > > < snip > > > * @pages: array that receives pointers to the pages pinned. > > * Should be at least nr_pages long. Or NULL, if caller > > * only intends to ensure the pages are faulted in. > > > > pin_user_pages(,, pages = NULL, ); > > gup_flags |= FOLL_PIN > > __get_user_pages_locked > > __get_user_pages > > .. > > VM_BUG_ON(!!pages != !!(gup_flags & (FOLL_GET | FOLL_PIN))); > > Only FOLL_GET or FOLL_PIN are supposed to fill in the **pages array. So > if a caller passes a null **pages arg, then that caller must not also > set FOLL_GET or FOLL_PIN. That's what the VM_BUG_ON() is expressing. Yub, but pin_user_pages adds FOLL_PIN unconditinally and the comments says it supports NUU pages argument. Isn't it conflict? > > Perhaps that should be part of the documentation. It sort of is already, > for get_user_pages*(). I expected it was just copied from get_user_pages.