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 24D56C282EC for ; Fri, 7 Mar 2025 02:28:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAEE0280002; Thu, 6 Mar 2025 21:28:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C5D9F280001; Thu, 6 Mar 2025 21:28:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B2555280002; Thu, 6 Mar 2025 21:28:54 -0500 (EST) 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 9431B280001 for ; Thu, 6 Mar 2025 21:28:54 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D1DE1160346 for ; Fri, 7 Mar 2025 02:28:54 +0000 (UTC) X-FDA: 83193172188.27.98500B1 Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by imf15.hostedemail.com (Postfix) with ESMTP id 106B7A0005 for ; Fri, 7 Mar 2025 02:28:52 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gWbeIVlh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of surenb@google.com designates 209.85.160.176 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741314533; 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=oeaol7dKf5hDCsXX8j5PIosUqB5cxOjG0nyihsM76BM=; b=afD5/4KmTDePg1rp6FmwJ7QMrMM3WkAQBd4dp714k9MSJijJ/RSG9MBfZG0wYDmDzpNbDw 3RhYc2qg6DckmWzlXQMXR4lD9aLCyhU6ZRP1u6DgaeXTUtskoZVFONzIsmOuSZ0XOSCz+x nhU+Iwn/LQd5mLFoFSXsw2ZAUidWUqs= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gWbeIVlh; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of surenb@google.com designates 209.85.160.176 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741314533; a=rsa-sha256; cv=none; b=UbYzFpuSYaWnmH6y363F1bBUttyoMlkkAAUhY94T22JDbwGoSYFtOyybyOGw/l2unKjNZv N7hh3z8ilBzqCJ1UzZokhtKnGvNxv5yQpc/sfnqtIHQwBzIGqXzgBu1/0gDo3/nbhquR/z nwNawKwxDZF8fRbvCc5Tvxdr82j0jz4= Received: by mail-qt1-f176.google.com with SMTP id d75a77b69052e-474fdb3212aso166531cf.0 for ; Thu, 06 Mar 2025 18:28:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741314532; x=1741919332; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=oeaol7dKf5hDCsXX8j5PIosUqB5cxOjG0nyihsM76BM=; b=gWbeIVlhqYRoqWwZwuggl3phQTS8dRmSLIw/sBQA1+pazQ4tCZT7mbx/7FSd5urFtI ojqF+PVV/LEz4jtiwAqU5vVgG5FnkU+PqJD4pQzeESMimA61EvYYsasG2ckmJhxICdzG NS6AX26wXptjj/z8zQUL9TzqC++qg7hPeqqDTpz890hlTX0bcKsF0OChujvxqvq5mUpX vrRAUnx2B94zxJhPyl31el8RvEFCSPu/LXCZhbjINUOXe8m4R82jsXQW/CBxysF+Rbxk paSiS+UYFseV+aKfPp3PsIlggM+11x+ryatbVUgf4pp5TZzRcPSBjxmpTN9G9QN5VXrZ OXFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741314532; x=1741919332; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oeaol7dKf5hDCsXX8j5PIosUqB5cxOjG0nyihsM76BM=; b=lMN2CSK3z4Ex9Qfy2DLXbFb/tNCuafxOpPlOuyr0KRVAT11/tTfQG+OjAenN+RFycA GRCDxYKvRC++4Pi0QN+S7cUKVjVqs9Dj8fvWoz3r2q15cRleT1W3geHOmodPdvSUe2Yt K1atVSa9MxvCHrkV76PddkxqGJfKqS33uQTpSDOFcqA/GMy+ycn4QPmeapHGhaIwK2a/ Az1/0eFw/B/8Qp2wCsNSPvh0BpE74jcNCOftFmBdwcRcfkKpUxFyMG8FhApyUzRJbXpU ZcloXkvsNlr7fV9exog4ItJekQtRHA4qJCVNndOAAaMlM2VnbWTcF8JBQ6F6NF2wOLSF xHKg== X-Forwarded-Encrypted: i=1; AJvYcCXFXNvkHjcUlhMZYcw01cUza+aSNzWkprnAkXPkgfnIYViComINp78Uv+69jdY3VfvBdI0hzCK4Jw==@kvack.org X-Gm-Message-State: AOJu0Yw10fIlL2fr0zs/Nf13o/sErvSvgeZQ7MA+qOshwJSPZPt2o7FZ +zlS7WqJv+cWDN/Z1XBTR0OQDhTD1GnWmbDwxmG5PbRGfwWOy+BUZ1cl31zeSHiQe0+sN1c3STX ha/U/gr1PGDQqHkI8vD44S3wZwy209dk/IFWi X-Gm-Gg: ASbGncsUgS4SGwlSBR2tyRPwJsyDV/mHl9hrSFvB7E1zcw0/t5mNaWWXQE/B8upLzXS jJheNN1HoH73nEy+sSB1CBHYYnF2TdKaMemdw3eU64UtP7+EO5J3zrMT+KVRIaJ3ixQ2P4/qO6k 8ftOd/rgKvXuqqbojJrrNqK3XSIw== X-Google-Smtp-Source: AGHT+IEcdFFqgoC5v5nk1CqtfLvnIwlJrlCR79p6l3ceXCbmRcL3l4QYeOtwzNSmiBPLUOn0epow5zQ8pU2CygP8kjw= X-Received: by 2002:a05:622a:48d:b0:46d:f29d:4173 with SMTP id d75a77b69052e-47620f3e2dbmr1917281cf.16.1741314531920; Thu, 06 Mar 2025 18:28:51 -0800 (PST) MIME-Version: 1.0 References: <20250306074056.246582-1-s.suk@samsung.com> <848301db8f05$a1d79430$e586bc90$@samsung.com> In-Reply-To: <848301db8f05$a1d79430$e586bc90$@samsung.com> From: Suren Baghdasaryan Date: Thu, 6 Mar 2025 18:28:40 -0800 X-Gm-Features: AQ5f1JrGamsGt3IZusMGXc8vrCD2-uzcdGon8NJXEfXnTsNUgJLtgPe59GfjDWc Message-ID: Subject: Re: [RFC PATCH] block, fs: use FOLL_LONGTERM as gup_flags for direct IO To: Sooyong Suk Cc: Jaewon Kim , Christoph Hellwig , viro@zeniv.linux.org.uk, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, spssyr@gmail.com, axboe@kernel.dk, linux-block@vger.kernel.org, dhavale@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 106B7A0005 X-Rspam-User: X-Stat-Signature: adpc98ukg635k57rntxxgkbtdz7bgmox X-HE-Tag: 1741314532-453799 X-HE-Meta: U2FsdGVkX1/Hye2TwY8c+u7Y4sQtQZHefxBer0z2WuJlNxjZPQ6i3xvlgchtPyQM4j4ovHzsemNzD/h74iNj8LGibCSNZAhx6g2tXbnOGMY2vHn7HnEjpqCb5tSEI+eWYKbWy1GzHAgl87ZTthtva7xehLWQ5QjwP8AGAmZGer9EOU6mKkDRQ9kpZB36KRi2uHoA627y+fQBFnXMganAjSWTRq2G0Xxzcyyfb3AHjYXHmj7kN+0VWtVYJkN1B7xcFg/jYXb3EoVQ06I2XXm4cf4TFTF0QiC7YQRwxdSDEDC16mzJ1oiepLLcxamRlT173CtO7cLH0e/u7MxOgo1JEwscdPFZidZ0y/3QhkWgf64WiPCWqeH6ya2evZF6mtn7zpXdDfvhf8oVGTeCEuMiYzr900swbhuQMZvvkplqES/2/S4OkeJfxDuEQHQWR11Wb5tO+T9FN0cVXQQdcIGwXqyoMVg1w4X9dqCQi+drcDHJiwPrxXkPnODWxGdqlAloALPgJKSZvYTKpDY2KHw1HhZq00jI7hmvNzvKTZ3PkERA28/4/E0lIAH5yI7lA8AmPx0WqOHR2sepVJM+v+w3HI9M5VuMexGPFfT967cFgS4wViLwnzHPKiktsFzwkRPMkQNdE36pOMhQF/ZDVs68y/yKjssyIntCua0ujQw5IvjtWJyB62LLMyLY6igiyU3yX0bH+OKTXBoh7+zG2tUK9G0B9KDYCKNdhTpoBk7eHqMEyfaZkZgIRFe0tMvQmgFshkefu7stUZOXf/LIjzmMxzyDF1+6dM5tGPIA6KdDg1ZgUpiZ7rkPFHdrhQggXFbSXxm3jWeAUG+PqwKDM4UXUw/7NC3P2DmmcSEUlF7NXI/036WJ2r9hy9pFJBLxywXVQQjaMwnsGIUP9T+hD3hBfVB8ktXHzrhSQt4e1r1Nwh87+aNFj8hewj5u7EoYsynJGRCIwSUG6IAGjXaR+GD snD2FCKZ rFqpaiITluhVAovOqh4k5+vAmU2TrqPJzAUpQPwRe5DAH4b0mqh2tVOVVX7ONyUtcK08+FNe0odIJjnSe4isPL8Mb0gMY4z63Q6fFe90kwyMPVc8z3YMg47qcCplpWX9+UebMS7pWH5fKqyvxNJHPQXfzc5a9TEjqSCRj4I+ppAKLLGvkaGwzSK78RoGtYBex4bYnykhD0Br5UsNDp9nSPbVoW3XdFsOZgLB1Lj2QINnKyNM63KUYuNNIS0LTxB4b8RCknnPeqC8wNbLH4bd3mVLOH+8WcdSbmdQRlCjDAlWw7ehVlgtvSbod3OAhaJ7SeQi6rk0Gh8XkBalFfKsiShA8obRH9Cz7MwOnjdLcf3NRRUMdFN6f0XhEzTZ0HGqEJwype37M62j9Pts= 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 Thu, Mar 6, 2025 at 6:07=E2=80=AFPM Sooyong Suk wrot= e: > > > On Fri, Mar 7, 2025 at 12:26=E2=80=AFAM Christoph Hellwig > > wrote: > > > > > > On Thu, Mar 06, 2025 at 04:40:56PM +0900, Sooyong Suk wrote: > > > > There are GUP references to pages that are serving as direct IO > > buffers. > > > > Those pages can be allocated from CMA pageblocks despite they can b= e > > > > pinned until the DIO is completed. > > > > > > direct I/O is eactly the case that is not FOLL_LONGTERM and one of th= e > > > reasons to even have the flag. So big fat no to this. > > > > > > > Understood. > > > Hello, thank you for your comment. > > We, Sooyong and I, wanted to get some opinions about this FOLL_LONGTERM > > for direct I/O as CMA memory got pinned pages which had been pinned fro= m > > direct io. > > > > > You also completely failed to address the relevant mailinglist and > > > maintainers. > > > > I added block maintainer Jens Axboe and the block layer maillinst here, > > and added Suren and Sandeep, too. I'm very far from being a block layer expert :) > > Then, what do you think of using PF_MEMALLOC_PIN for this context as belo= w? > This will only remove __GFP_MOVABLE from its allocation flag. > Since __bio_iov_iter_get_pages() indicates that it will pin user or kerne= l pages, > there seems to be no reason not to use this process flag. I think this will help you only when the pages are faulted in but if __get_user_pages() finds an already mapped page which happens to be allocated from CMA, it will not migrate it. So, you might still end up with unmovable pages inside CMA. > > block/bio.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/block/bio.c b/block/bio.c > index 65c796ecb..671e28966 100644 > --- a/block/bio.c > +++ b/block/bio.c > @@ -1248,6 +1248,7 @@ static int __bio_iov_iter_get_pages(struct bio *bio= , struct iov_iter *iter) > unsigned len, i =3D 0; > size_t offset; > int ret =3D 0; > + unsigned int flags; > > /* > * Move page array up in the allocated memory for the bio vecs as= far as > @@ -1267,9 +1268,11 @@ static int __bio_iov_iter_get_pages(struct bio *bi= o, struct iov_iter *iter) > * result to ensure the bio's total size is correct. The remainde= r of > * the iov data will be picked up in the next bio iteration. > */ > + flags =3D memalloc_pin_save(); > size =3D iov_iter_extract_pages(iter, &pages, > UINT_MAX - bio->bi_iter.bi_size, > nr_pages, extraction_flags, &offset= ); > + memalloc_pin_restore(flags); > if (unlikely(size <=3D 0)) > return size ? size : -EFAULT; > >