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 3B638C5AD49 for ; Sun, 8 Jun 2025 17:10:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 830D76B0088; Sun, 8 Jun 2025 13:10:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E20A6B0089; Sun, 8 Jun 2025 13:10:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6D0F26B008A; Sun, 8 Jun 2025 13:10:37 -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 4B2276B0088 for ; Sun, 8 Jun 2025 13:10:37 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C2DF1C0FC3 for ; Sun, 8 Jun 2025 17:10:36 +0000 (UTC) X-FDA: 83532872472.19.C5EC477 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf02.hostedemail.com (Postfix) with ESMTP id C49028000A for ; Sun, 8 Jun 2025 17:10:34 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WcpIv4jm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749402634; 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=MFSTL7eGs6OXg4Ss6Ww7Bg0XbEMi8+OcWq/O40mgWYw=; b=n13vf+4lanubZtKNmvgWzGRYBOxaMZhR/4d8b117BthRo9p82bXoKVerAPbMPVrxrBiIH/ O4toOccmAKx/Q/nXCxRURDgLl+XC1ipKC0iPcT302JRylrmUTclFLS9FghAwSAZnfgWS04 3a9c079mSHdCEcCxwpVfOvsiZlsdoqQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749402634; a=rsa-sha256; cv=none; b=QC9oGx5Ou/eaQQ+OCzcb4zgdI7TNUioFwQxA/15shQSuO+ZRP9ITSD5BwfZygZHoBKxAby MAKqEbP3p5rGAcGLB3o+VQuIluqzJlPNRQfwLNqaxglHvJ2u33yCzDNonS32qkcqrpKgfZ gTre3sBiNqE2kJoRDfrqpBadgtOWimQ= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WcpIv4jm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-451dbe494d6so45212595e9.1 for ; Sun, 08 Jun 2025 10:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749402633; x=1750007433; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=MFSTL7eGs6OXg4Ss6Ww7Bg0XbEMi8+OcWq/O40mgWYw=; b=WcpIv4jmfUKORGMrAGgEbxe8kLg2t0De0zHCRdI/H2hQmPZHf8HXWp9gyX7RWTmPXU eEIrW/uCh25EPRKMZQQfitBt834AYlnqxET/rxLStZn5AVj5aoJf2thUfGfQCR23OTYn wNsWfwKdN+gOTnyk5GrP+wuYdhWVhLORDyhDFTr/qsnF65/9Yakx4QAyNYpDNEw3F5+H T++YFEdlTm8Fg++6IbkuARFz5VsFaXa11QLhfly6TBKQwVCwGZ0ENGToiwzL+TBK9rTH Ep+98VCzgMAJTi30vdQPnO2xwaEmsndQX9DVLZLtf2nXduKyY7QB7eHH+l6uoSdSBex9 nRzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749402633; x=1750007433; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MFSTL7eGs6OXg4Ss6Ww7Bg0XbEMi8+OcWq/O40mgWYw=; b=LerlAqOcTYvjgTPZ1uczu8B8AKB2Wv0OED5y26pcqrXZSG9rCBGU/bueG+m4K8JTaI fTaF353t+NmaPGIEA2P1wtL2FJwPtiHxaiO2qCyn5XrMRh9jNhCtZ5+muCOOCPirFCZY 8UQM9y3DWD1LhFua9vcovcCo99vTAXooRKx7+1Un1GU8SAVXZaM0uATJUFKsOQFy0VPy bcjgUV+9z6OKENFtzCC8yE35GXh7CtN6cZrk/a0rXdbRN4tV/d5CENMT1W1LgwZGu1jS UVIySHLxX0oMHqKAjroNeFpvafqp0qOFeugVC5g/B+BjlVhdANIe7y5lzM5WJJybbr3A l8Ow== X-Forwarded-Encrypted: i=1; AJvYcCWF4QW9Aev4z/PgFEUqiM18TdthYBa4927A4MdBab/K/vFVtqtIfZ4rkiGkLEk75A0MEUn4WDZ5NA==@kvack.org X-Gm-Message-State: AOJu0YwXV3ozpkqaspTdufT8P8RIuztUUcIDjBBA3eSnfnrIZIjajzpz SZ9IaqHwxl3BtVZwGjdMpmWjF1aLMKLuU+dHgQB97ihR2wju8qf8spzp X-Gm-Gg: ASbGncsMsXgppqLj8gxe4HrJLKMI020EYpKQDIXoSBUvkxKAG1W/H2K+VAzPVRdLNvh s9HgVZ0DndBhw6CdHH19KUFllEMdv5fWyecM4ch1UMG+tBP64YkXwbLGvGYgMoMzQrXO+EzIAlV 4p7kegGu35lWq+7orcoUFvJh5Df7sq8lMsbHmXkmyIylyEDZW2YdrKEwPTwKSuG40M1shNbi3BH WCXg8W4YPxqzR4xK3PppYsFPnXUXrNJDrXf2V5/thUX8phcCFLVxqs33t1cbpAX5EKGR2s+s+RV 7Zbcsa5PXnNGRmC0C6VXY05Uxs9tC7I5noZb0K8XSDqUyzpIWf14YqLIBys046sAsc4VAKsg7ci tNb3QGd6YyoCSA6aIfS7LPkd+ X-Google-Smtp-Source: AGHT+IGB2W7rBEJhc9lsd74+MvtUod/ZOo3q6kM5X8xylBnc+7d/6WK5AGrTESPvH7AA0N7LGV9+fA== X-Received: by 2002:a05:600c:c166:b0:43c:f895:cb4e with SMTP id 5b1f17b1804b1-452013ab4b2mr108370195e9.17.1749402632853; Sun, 08 Jun 2025 10:10:32 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-452730b9b33sm85698495e9.26.2025.06.08.10.10.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Jun 2025 10:10:32 -0700 (PDT) Date: Sun, 8 Jun 2025 18:10:30 +0100 From: David Laight To: David Hildenbrand Cc: lizhe.67@bytedance.com, akpm@linux-foundation.org, jgg@ziepe.ca, jhubbard@nvidia.com, peterx@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev, dev.jain@arm.com Subject: Re: [PATCH v4] gup: optimize longterm pin_user_pages() for large folio Message-ID: <20250608181030.20741f9b@pumpkin> In-Reply-To: <8b68e7f0-46b8-4814-99a2-02f0044cda9c@redhat.com> References: <20250606023742.58344-1-lizhe.67@bytedance.com> <8b68e7f0-46b8-4814-99a2-02f0044cda9c@redhat.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: C49028000A X-Stat-Signature: 14owh8iz6mhr7r6r8nia58ay3jz9qm7j X-Rspam-User: X-HE-Tag: 1749402634-23939 X-HE-Meta: U2FsdGVkX1/FZvSBUf//3OaufxrB6J8Wej6KfGmyRLrZJRfPBfhY4gbXU7DoRquMVUKUUnEK0A+2uHCDm3ylGSx7whb3LNStxdh8/T1bdcCtTUr8AK5fo9M9ZVW2R424ov9he/tFUJ1z1zB2Funv/Ttu4yJnkBCrGaxTc5+1d78GarjqiRBld1fl4vz89+oXBVSpDjxUjmRLRVZKqYYb+kSb8QV/sJdbeicTOEoc9Hpmjr5zQqzs5VNVagYcQdnsU0R1j+PszfQ0M9GADiKK8M1Hb3wvciYwCZ2Aj5sGI3/yUJ7hvv34RKSyyTWhdvbrqvReOrf6C+aBUw9idKe84gxXrkzK/PnEPCTN31dMEGIlGhYz8F75VGEy6gGeHLXMoi9gLRE7U5a0aQJpUltM5DY94LvEmRyM8Cava3DPfKxIDVT+JbvLzHvZJ2XNQG7Yam+39uT/5+K0YghLTYZO4IVqYrcFPyvbo6Sy7Dd4FpYY0RPaAHEjYwzRQGfgbxBupVrX1lrlLudwDw/XkMzR053N0lSW0NZumNKaD4v8FOgZdYFOtj7ce7gDUHnjvBaCdY45UkgGMkjM5EQ+VnSaS3v9kAnd45xriiNB4OE1elYiTOTZhQfWcBwoqSJ7fho4Q4drJCnryDeeBEq2YrNqXON0fou3tjjVBz08TnjqKUhIsUhizFFXcRZ5Rk6CO4azPZYAaRc3O/ey9LgUQyR0P6btE8ivuM3AaU43YN+Pp48eON+RFoZwUXtkIwrjcVpPj9GDYQmWQrF7aK9h9y4fjI4nKu6m7BM/hIu0B7TQGG/TZ0rxnEjjP8kePaGMV86OOfIHuHHIFpwyPuRgecse6F7awZbz6NqRVxjzMMC/nsHmJVYop57n0A/QGvoPkVvlBzq7wcHoQJcQnl2ttFzAMiSY4kOp//yVyXdYlMY16EpB3TG5Isy9Io8kzP6AONlHinhlXxw1k9Qgu2vmMKO qp9NcFEC fB0cCtiYpyMypNHcwtOQxjPiZ6p7J8lE1MMIM/Pd+KaspP2HNeC5xBGs+BJ+v0z97Na+ZsBW+PBTWLwlHrhkm9HqtPmmw1ihEVz7zJAwT/IVmu2UhSxzHjIW/tibTM3DZZdbgEtijUqtmu/trL6NgCDA0W8qQOn2XqlCOUqC1OOIcJMzYuWU5g3W8vCOvFNkHjj72dUVQpR4/pyJJMeWj0FE0AxzE6uNN31muJ4YdNnjKvORDC785dh+jj/ZMsgiUXo4KskUh91qEiZ0VpNRCCpgpqg1fE8qXPAuqu8bDdithUv4prMPExIX9MfZn47zF1uIRr0qZVdmyeOzoqNzO/Q32/vZj+GXOeKvPlNQJ65vR4BWHAhTSv54BlnS+qNCwmUFPeMSNiHRUkDncznIZDOfB/Wi3pnNcuHXHs3alhdkVj4VcACLg8GL1o/jO7ROKXupqLo/F1bztlXIvWw3xbUaHUEjh/yfb1Ltc6/NsjpFlMhzgAbapyusQaMoNJNABrDjn 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, 6 Jun 2025 09:21:25 +0200 David Hildenbrand wrote: > > * Returns the number of collected folios. Return value is always >= 0. > > */ > > @@ -2324,16 +2349,12 @@ static void collect_longterm_unpinnable_folios( > > struct list_head *movable_folio_list, > > struct pages_or_folios *pofs) > > { > > - struct folio *prev_folio = NULL; > > bool drain_allow = true; > > - unsigned long i; > > - > > - for (i = 0; i < pofs->nr_entries; i++) { > > - struct folio *folio = pofs_get_folio(pofs, i); > > + struct folio *folio; > > + long i = 0; > > > > - if (folio == prev_folio) > > - continue; > > - prev_folio = folio; > > + for (folio = pofs_get_folio(pofs, i); folio; > > + folio = pofs_next_folio(folio, pofs, &i)) { > > Nit: indentation is still off? I tend to move the 'initialisation' to the line above: folio = pofs_get_folio(pofs, i); for (; folio; folio = pofs_next_folio(folio, pofs, &i)) { code... For 'search' loops you don't always want the conditional, so: folio = pofs_get_folio(pofs, i); for (;; folio = pofs_next_folio(folio, pofs, &i)) { if (!folio) return -ENOENT; code... The 'really useful (tm)' part of a 'for' loop is the statement executed by 'continue'. :-) David