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 BB28AC4167B for ; Tue, 28 Nov 2023 09:12:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2EC076B0283; Tue, 28 Nov 2023 04:12:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 29C726B0291; Tue, 28 Nov 2023 04:12:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 164386B02A5; Tue, 28 Nov 2023 04:12:55 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0640E6B0283 for ; Tue, 28 Nov 2023 04:12:55 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D1039140117 for ; Tue, 28 Nov 2023 09:12:54 +0000 (UTC) X-FDA: 81506798268.06.74E95AC Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf19.hostedemail.com (Postfix) with ESMTP id 143611A001D for ; Tue, 28 Nov 2023 09:12:51 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=Xx0Vlakz; dmarc=none; spf=none (imf19.hostedemail.com: domain of BATV+011e5a6fe4263adb6d23+7401+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+011e5a6fe4263adb6d23+7401+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701162772; 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=gKVrUut/312opfSUZRBKoyg4s8DOwJCUHyYDmf1m12s=; b=QJ/tT/Aar/HxAwNBxGTXSzcCf5SHknSK3f+KyuOS6JX9AMHgY0SheqQv6tQOOUbMPZo+RS abujAeyaVF/KwNphyQRoHeF2GALXZHw9v3xbb4NsJTDlJYM54Zz0S4i1kWLMYsyE1T6VCc 8kvXj7LYbpHCVH5UIxLn6WJ4CI7cw4Y= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=Xx0Vlakz; dmarc=none; spf=none (imf19.hostedemail.com: domain of BATV+011e5a6fe4263adb6d23+7401+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+011e5a6fe4263adb6d23+7401+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701162772; a=rsa-sha256; cv=none; b=o3Iz7ZtS1fXsQ10N9dNu+KYXiPE9extD9djiM3x2hikgn/y0glCADsKPAeIkyiUoWbtX1+ 7ZwuoG8rfACu06upVIeE7bXEno4EBIIo9xPm+gwZh9z/CZVR2qyQ3wVQnVmuG5+szBcmfF jgSFpR2VWObxpKauegbCyZciOEd0UdU= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=gKVrUut/312opfSUZRBKoyg4s8DOwJCUHyYDmf1m12s=; b=Xx0Vlakzlg+STJS1x/1ziiJht7 QK/JsJ3CfR3o9ebwOouzYN4mUjR1RKS0gHjGmMwJaGekwuZAu4ije2G4EBh43mqlb7D7wLkWj5P5v jtX6zzgN1QnzL/Mw/SP9l1F4WEY8sUdpqJE846uQSGMnKFZcKNw5zefdR6ykZ5k8eUe1GBOiA7Cgw sesTgVWPKX0YX1ejdGFbq6eF/VS21BVt3Jw9Ke3rOsATurVx/3ktwC+QcJCFQV7p4OrTGneLR7sj4 JrGzPLmkG6YTh6Sv4+Y6a63svPDVec2Y72O9PtTwkAh4R4LDyzdMMPxqAF/h8HJkYRTamYs0yuCgn BThAeZHQ==; Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1r7u99-004gsI-35; Tue, 28 Nov 2023 09:12:47 +0000 Date: Tue, 28 Nov 2023 01:12:47 -0800 From: Christoph Hellwig To: Vivek Kasireddy Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, David Hildenbrand , Daniel Vetter , Mike Kravetz , Hugh Dickins , Peter Xu , Gerd Hoffmann , Dongwon Kim , Junxiao Chang , Jason Gunthorpe Subject: Re: [PATCH v5 3/5] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v5) Message-ID: References: <20231123064443.1035709-1-vivek.kasireddy@intel.com> <20231123064443.1035709-4-vivek.kasireddy@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231123064443.1035709-4-vivek.kasireddy@intel.com> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Stat-Signature: husixcyit4jpx1wghmqtwzmbumamo7ja X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 143611A001D X-HE-Tag: 1701162771-258159 X-HE-Meta: U2FsdGVkX1/NpkpxOqPbn8KEDY4Shpi9jj2iU1nBXTWVlae5FaEjQYi/Pu2rCOqB4FX7Gcu8eLICmdqEntc/Yl82G95QiFo5s1poonZTLMKRRymxotSardeb8OXwcbfisP3agBzOyFkKfgccFeHXCYNzJxzBFpsZju9dNEQXott26apc/ppr9BKiLJhlX3xJefjHEgQWM91YiWbJsG9crCa/fZY/UFOraES0kQ7uFKqMP5wHd6SGX2mXSXGy0ScKVH7bbvzA/FSvlfbE79KOJFMQf7nPE6IjepQ25JyiE3ijFQ6hr9urfzJsvQeV6c+mkl0CnL7tAZ+npbp516J5+NHDQ9zEP8xPfAyfBqVaKlLkpkhXwJu2tVuUq/V7YPhJIC3N7exUz+Ncz03Fj+JsHfH62gA0TjrPOGcvSoDZ3pxQqYPTqCGs2W3ijV0HNR+6j4+v03prRbQ64VqdRFaeXK/Np0IF7miiZwsH1n2yD77kWgJAdvexPnIHv0HFpauCrg2YJun3WETOf8iteHT1MGStmQifB8nIL2RFLZmoJLYEwR1N2jn2xrX2SVwDO4n1cUd/c0Bx1OuzwMUQSz8l9Ac6xD1+q0MYoFeVKhnUN6lWCVEq3evFeU7Ra6SS4hKOEIjFxeHb/E17mTxbDl783uX4DcIpgSFGvr+yzcKG75r5lQiQf8wCmFQBVQNzAkkWUy6XcsAtb6gKiVoqGx1+krTdCVmN6Tk1oZjcFMJTrmOJoVPvdltXc3TSmYGpmkQDHLccS+3GR9cfw2/3QAdsQKp0LA6bXAaOAyzSA3+MuWG9PZKqNYlB858pjB60y+02GemSw9HUAtmcXTuwKt2/7iHkO+b58IFnLDGjfWkWSQSQ2/IxEKjemQeBz6/CDr9wxPTlhlMfchRbBXIBoUTVnEawX+ghpBGeMiUMli9F12edseBxKi6yPdxjLbGifpczFGPB5dhb94vFh5JD09b h4t3vsJu Rp29FYxDQVS3ktd8v0FBvpsh9Ddxh04FrLTI0T37wbm+B1Nfj5ccmPS8HlP1m9hWDH8kWQ4t5jM+cgWsmnKW9KKreECZPR5mhdFXrMLxbEgF8JAzGWpUxoUtWtY1L3R0q4+V5mmpfTTieDKHDoEJlQla2bbiA7vD3H2n93tIYxaPjkDd639IAjjY6aYg1HLU6d+oC6NyffzN4/W6A8rpRDn4oHDepLj7wbT0AxERjAeTsKlfqdHsEDArMs77+QDjk/anrCJrUMkdMaEyHu+KV8tpOAuP7JctG+Qjhyv9Aqoht5Rg378tBISJPEbE/cArxjkLBGWqDutW2yHM5uzD5lQujUMtI+nH3NuLTJYvz1bSXtSnf3pFY2WDnZn345HSfTRr7vVkUJliH44EOHlzKV4ytNCBC3BfcZum2fXN11dw4yx2JTLFPSpTIFw== 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: List-Subscribe: List-Unsubscribe: > +static struct page *alloc_file_page(struct file *file, pgoff_t idx) alloc_file_pages seems like a weird name for something that assumes it is called either on a hugetlbfs or shmemfs file (without any asserts that this is true). gup.c also seems like a very odd place for such a helper. > + * Attempt to pin pages associated with a file that belongs to either shmem > + * or hugetlb. Why do we need a special case for hugetlb or shmemfs? > + if (!file) > + return -EINVAL; > + > + if (!shmem_file(file) && !is_file_hugepages(file)) > + return -EINVAL; Indentation is messed up here. > + for (i = 0; i < nr_pages; i++) { > + /* > + * In most cases, we should be able to find the page > + * in the page cache. If we cannot find it, we try to > + * allocate one and add it to the page cache. > + */ > +retry: > + folio = __filemap_get_folio(file->f_mapping, > + start + i, > + FGP_ACCESSED, 0); __filemap_get_folio is a very inefficient way to find a contiguous range of folios, I'd suggest to look into something that batches instead. > + page = IS_ERR(folio) ? NULL: &folio->page; > + if (!page) { > + page = alloc_file_page(file, start + i); > + if (IS_ERR(page)) { > + ret = PTR_ERR(page); > + if (ret == -EEXIST) > + goto retry; > + goto err; > + } This mix of folios and pages is odd. Especially as hugetlbfs by definitions uses large folios.