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 0C996C3DA40 for ; Fri, 5 Jul 2024 21:23:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D6E76B008A; Fri, 5 Jul 2024 17:23:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 885F66B0092; Fri, 5 Jul 2024 17:23:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 774D86B0095; Fri, 5 Jul 2024 17:23:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5E5E66B008A for ; Fri, 5 Jul 2024 17:23:26 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 11C401C07C0 for ; Fri, 5 Jul 2024 21:23:26 +0000 (UTC) X-FDA: 82306975212.20.A6C66F2 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf23.hostedemail.com (Postfix) with ESMTP id 5C30D140014 for ; Fri, 5 Jul 2024 21:23:23 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=D+kPDDPm; spf=pass (imf23.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720214590; 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=3XXBRRKeoc7lv/d+orKRs23LqhvmWW0+Y7FtKkcN1J0=; b=SHm2IzXTKgbcaQQCPtFu7qQOVpbE6T5BKNGSQbBoo9521s6odvT5szXtFlXOQ7LCV9XAlq Ogwer67ZezA4PMRLAi7ToRyQ7N8jPq3td9EtALrXkyzIpVjuH0Pq307MHbh0LC+l8Z6f6j xbF0y0dqYH3AvSqqTO6f7/HQPvM9qyU= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=D+kPDDPm; spf=pass (imf23.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720214590; a=rsa-sha256; cv=none; b=x4Kr1EmqK15zU87iblJKceGoEKUUQmb/Z0C3ZvQAhufpViPuyeptKsIQMUY3vLAQJJAZmp WDp28v/2DBT+qlzng7DWsvgm1+6j+mZ9/o9JDwYhRTa/q0Y9Su75USvLoKp1hcH8qTq3n+ l0bXuNxC64gQwhne54xHQIwhJOaW+aY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 35E9462C97; Fri, 5 Jul 2024 21:23:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59E7EC116B1; Fri, 5 Jul 2024 21:23:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1720214601; bh=/a2OUm7cxEflYbLigLsIP8POwXF3bZzqnywG6FfJ/ZA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=D+kPDDPmf4yGGvKmVH7Q0v21yRIpg6mUdgARvgpmskozk76aZ0ECPhAYzbjsPWQaa CmAK6+EPcDsMCnTIEsMbF82j3FTQXPZaEPwcomiKSLb5RCVwnuKGEBl8UYzIDB+jOT N+ABnAsU9J82j0XZULXmrSQkMc4A3zup8oBQxWDk= Date: Fri, 5 Jul 2024 14:23:20 -0700 From: Andrew Morton To: SeongJae Park Cc: Vivek Kasireddy , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, David Hildenbrand , Matthew Wilcox , Christoph Hellwig , Daniel Vetter , Hugh Dickins , Peter Xu , Gerd Hoffmann , Dongwon Kim , Junxiao Chang , Jason Gunthorpe , Christoph Hellwig , Dave Airlie Subject: Re: [PATCH v16 3/9] mm/gup: Introduce memfd_pin_folios() for pinning memfd folios Message-Id: <20240705142320.000b1e520b856b7c034bc829@linux-foundation.org> In-Reply-To: <20240705204825.109189-1-sj@kernel.org> References: <20240624063952.1572359-4-vivek.kasireddy@intel.com> <20240705204825.109189-1-sj@kernel.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 5C30D140014 X-Stat-Signature: jfwzw3r5kbwyh3hjtbg47jgexnczmpgz X-HE-Tag: 1720214603-954827 X-HE-Meta: U2FsdGVkX1+J7Rk6IG0JKO15AAb3+4UcqFU01xPy8zcHic0hTf9jtFEQqOCPfrA+dcpD5G0g2IfvloPL0QvBpq6wDqio+trdoY9ZUWmBoaEQA4MWkw5uZBH/FX0p87vNTpbz14CB2jl004j+cpuqxZJ91NTFO/K0gR0eMC79zHK054v2Bq5g/euTBO1+QGVvhkpSTPoQrikIp1G1kMthAJ+SfVZAHlLaQJSvymgxzp2ESNqKqC0fAOkruqlPzcDRoxsaJUwGdNcrJUVs3161ZTYVmIPTCydmook9Op5aUE3naThacRN/tFxxJmwLXW2LZ/4+F6Gtb8ncbbD1PpejfsLAV4Cpq9RcL2dSoLs4eJw9TnUJjUP6UqQmzd5ZtrYn9725EQY2MZf8MnBXkpcki0mn6in2DBHkUkNN3vw0kbo7oZ/28YVb9rGLXbWkxPLQymltIuqk1gugC1hlwpgZJAeGwKXjePXiuCpR/pOd53Ob3e5hp5Ubj3Merm7y7B5WqutqVGPVLunl3ZdusNF4UOhpWYYTZngdgTxvCDHFcp1o1epR5OkNY+4OhrgNmxztwAALAftGc9Ho2X3cJQVKojMi6Eb7AE+mcCE7M0RYU0FmBGaqcU7GET22w07lyY6E2bnLUSAw79zl26CSeek2UcpzJG12ioBd89qxWb90KaZK882ntoss1qOyhFGYj0I/T/WFzHqpWmEF8TSVV53j1r5hHDuOpmqT6bCThSImVAiASs6W1b0Om1gUIdWeVXzgB6ui5rs/qy5FHJS+UERxOQiZGL6Ibjs1nel5hCo1wG4ZhlRrUK6mwmsfqgam6OuYIsj/eBRCpyoij3IpidjLbJR6XEGJQo0binFaEdBvFZDNc4s/CMWxJTSHYts0yWxPwitmteVocjq3dNug4kzw77BSS6V7TGcjvNJBVPQZ+ZA9l4IpkyKidOPx7Xlkn15eUC4NK3bZF/ed+FR3Spj 6wNVgWqD sna8C68W0FmXVwV+3w7lg3/trnDBVFcmIo6QbRDSu/E6yGCV616Bp9YOD3XhoN03wQyJy4IsQFbyZ6IV/mV/N1sGIT7Fd6kkD1DTYUM9S6u8xaRokD9YrCoZYryARRII6NXLHEBgLSFXT/wR8G4QPVbGyuPYBZYmjTkHIhXZkDY2iOifmFU1qGmvfwba/z2RaOA2+p+qEFmMm1B0lNeKJUrFKYOgU6eLHqDzppM2WlPb3A/feUu+xcgaPDe3l6ixBCfCEsoX1+snlNRaNptHPUelUD9zIK4PpTZboZ7g0a7Tfx6QKoEh8ayrrXW70EJPtb9ymPQft2qPxvCs= 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: On Fri, 5 Jul 2024 13:48:25 -0700 SeongJae Park wrote: > > + * memfd_pin_folios() - pin folios associated with a memfd > [...] > > + for (i = 0; i < nr_found; i++) { > > + /* > > + * As there can be multiple entries for a > > + * given folio in the batch returned by > > + * filemap_get_folios_contig(), the below > > + * check is to ensure that we pin and return a > > + * unique set of folios between start and end. > > + */ > > + if (next_idx && > > + next_idx != folio_index(fbatch.folios[i])) > > + continue; > > + > > + folio = try_grab_folio(&fbatch.folios[i]->page, > > + 1, FOLL_PIN); > > + if (!folio) { > > + folio_batch_release(&fbatch); > > + ret = -EINVAL; > > + goto err; > > + } > > I found this patch is applied on mm-unstable as commit 7618d1ff59ef ("mm/gup: > introduce memfd_pin_folios() for pinning memfd folios"). Somehow, however, the > commit has changd the above try_grab_folio() call to try_grab_folio_fast() > call. > > As a result, building kernel without CONFIG_MMU fais as below: > > ... > > Maybe the change has made to fix conflict with another mm-unstable commit > 02a2d55767d1 ("mm: gup: stop abusing try_grab_folio"), but forgot the > CONFIG_MMU unset case? Yes. That patch didn't add a CONFIG_MMU=n version of try_grab_folio_fast(). Maybe it should have? > I confirmed the failure disappears after further cleanup like below: > > diff --git a/mm/gup.c b/mm/gup.c > index 46a266ed84f7..9f4902425070 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -3859,9 +3859,9 @@ long memfd_pin_folios(struct file *memfd, loff_t start, loff_t end, > next_idx != folio_index(fbatch.folios[i])) > continue; > > - folio = try_grab_folio_fast(&fbatch.folios[i]->page, > - 1, FOLL_PIN); > - if (!folio) { > + folio = page_folio(&fbatch.folios[i]->page); > + > + if (try_grab_folio(folio, 1, FOLL_PIN)) { > folio_batch_release(&fbatch); > ret = -EINVAL; > goto err; > > I didn't look deep into the patch, so unsure if that's a valid fix, though. > May I ask your thoughts? Perhaps we should propagate the errno which was returned by try_grab_folio()? I'll do it this way. Vivek, please check and let us know?