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 1B022C41513 for ; Mon, 24 Jul 2023 12:15:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8506D6B0071; Mon, 24 Jul 2023 08:15:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 800B76B0074; Mon, 24 Jul 2023 08:15:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6EF3E8E0001; Mon, 24 Jul 2023 08:15:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5B3D56B0071 for ; Mon, 24 Jul 2023 08:15:34 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 28BE3C094F for ; Mon, 24 Jul 2023 12:15:34 +0000 (UTC) X-FDA: 81046400988.27.CD9C6DA Received: from mail-4018.proton.ch (mail-4018.proton.ch [185.70.40.18]) by imf11.hostedemail.com (Postfix) with ESMTP id D53FB40024 for ; Mon, 24 Jul 2023 12:15:29 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=tmb.nu header.s=protonmail header.b=TZIQN1Xh; spf=pass (imf11.hostedemail.com: domain of tmb@tmb.nu designates 185.70.40.18 as permitted sender) smtp.mailfrom=tmb@tmb.nu; dmarc=pass (policy=none) header.from=tmb.nu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690200930; 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: references:dkim-signature; bh=xGE6QjHm3ej4AxAX+5EXNKI8Zly3g7JGtmwu3HuYvhg=; b=enbiQZweCd6pWyzyYVH/MJwzLmJCDUnSgKxrs9VLwGUOUIsdRuWrJMyAqNla/vHylqCsDV 75kI1OBVpQb1OuUfNsWfum3W1e+Ygc4Wva6hrFsujd2zparUHLxIsVoHH24chAuaoZdKVh Mtn8zLgTYpTtQm3GJvuyKXXBVSeBslE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690200930; a=rsa-sha256; cv=none; b=fuaytp4vT6s+mqKkQgjwkF3KKOaFkI4i3SS3GdvoCTh6+a6JEtbOnpYb7zrg712gYpVvBW 1OjqVxxgMKw5shZcsNw82bLZyotOyzDMzRbF8NUhtZtpqOXOul1W8dMN/rcDMzWmB38aqQ 1OLiZpoRzqPt/REExoG+IeikKgpCrUA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=tmb.nu header.s=protonmail header.b=TZIQN1Xh; spf=pass (imf11.hostedemail.com: domain of tmb@tmb.nu designates 185.70.40.18 as permitted sender) smtp.mailfrom=tmb@tmb.nu; dmarc=pass (policy=none) header.from=tmb.nu Date: Mon, 24 Jul 2023 12:15:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmb.nu; s=protonmail; t=1690200927; x=1690460127; bh=xGE6QjHm3ej4AxAX+5EXNKI8Zly3g7JGtmwu3HuYvhg=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=TZIQN1Xh+XdlLYOxt0udbKtWWMD3wL/AZ82adZufAkHSESK0ulr1Ld0VhavgA+fhG fpqAmGis3d8uxiftYfSDBGI4vUr1mPrEHSrzJUIyQwCnZgm0YNy76Tje7fsRqomibM uHnIWGMjv9CmjOouHdW6z0ayVwmaCUXnETfPaZuA= To: Mike Kravetz , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org From: Thomas Backlund Cc: Matthew Wilcox , Ackerley Tng , Sidhartha Kumar , Muchun Song , Vishal Annapurve , Erdem Aktas , Greg Kroah-Hartman , Andrew Morton , kernel test robot Subject: Re: [PATCH 1/2] Revert "page cache: fix page_cache_next/prev_miss off by one" Message-ID: Feedback-ID: 19711308:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: D53FB40024 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: krjug96cmkw91x7osbo1zfgbshkt4owx X-HE-Tag: 1690200929-683561 X-HE-Meta: U2FsdGVkX1+ayISfkcsyjd74/xlbYiU7jcPZor7ZN2t8m2yoW+HhyonACoFM7HN0CL5zOg4Ds12KLlzHJf1KntlKzxzmneGeYjT2xb+6uXlRaiPLpFrPq3+KgiC3JPndPJLifcIED878CI9DoNeLCLfZ5qBheK8WJ0epddLsYjDoGgg3ABMHCURP+7YqbzvvzFh0QTgAkQSHk8+iz55gNTo3jI2UM6Gk1OkZTfpiI4KMncsBhrg9S0Bjp1FP/2Y2lBMjAhbx3XcYyIljDdJrlQUFgKtU9nKNFULHlHJZCmRDzNu6a403SPkpkjIUi7SsJgeshAKBe3yfb6dYwnx0jSDow674AQde4GrqevgNyr3vK7al8G9i6yd3Kv7EtNCT1SSxVyjaL+nXo4tRlGEJPwrhEE1MX8+so+hkXdWKN/O1Bq1ZPAZmQNuB9MYDslvjTqICVJa3RlK8XjM9H7QmwngaoclhQBMckWbcT14CJ7ELo/Rh3Gwnt2l0QnJo6oVCmDQ5eirdX/ffdFghHLyfl9xldmk52QlSrHXXqz2oER7gN5ZIhqtDKnKdzREt3Wr7wLi/ExkpsRNpWIOc4GfpfMV8QBBmVJ0vanU6GG0djHn5wUGNzgYdVz9zVs868PHMjVPbn4I0bopGEuQn2YDy16l8tcDzQMKQ/VaIo7eMt5CmdSMikcGpra2/6aYxfPGuaXsUlEaJKsSUax/2LWkGR6Yp+TEy9ggBTmdYf/xt6z9v0ACHMKsYozaNN/zeFgwCqogqJVEYur9MVhHyhY+mneM8C2tCcAIB0Dmu0o3CaV2kfe+hcHRT0BbSoFrHMUL5JWqSKQctQOQYCJ5Df9uZ12NF3L00dIET0o8cJX6c/WHlM1rD901lmadRRrbRdYmEJKft6UpxGSaeg7GhAJw8KXHXc0uoD6Ec4CufEl1V/HWGkytwa3IgtwoO49h7oQ91fuYpuCoaRjN+cHRybEJ VQrkdMFc 2eEP0nfjF9jjr0IYx+2ilg4G50cKF677Yohzb0xCYCewjfKRzoL8LANm4rljJrFS7ZD5/gyQr3WTGmQFKsNwj/aZusp/6K9/8ku5H0rPkonGiMe0kOVsWot0yFVox+44qQu6Tqc/tdBf/m3goe4FBNxyXmy9DOzZgLjaKL9tOmwVozjw/5xziyhBHL4ByQD9pgTSFjHGka3GyphYwNEjTel/0tQFTIs0RG4VZhQX/EGZkAzOjb1lXN3MvhOU/EsJShlFV2AiO1St1u6Jk6I4dNBXkdpaEJISGnpneKm04H35VpQk= 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: Den 2023-06-22 kl. 00:24, skrev Mike Kravetz: > This reverts commit 9425c591e06a9ab27a145ba655fb50532cf0bcc9 >=20 > The reverted commit fixed up routines primarily used by readahead code > such that they could also be used by hugetlb. Unfortunately, this > caused a performance regression as pointed out by the Closes: tag. >=20 > The hugetlb code which uses page_cache_next_miss will be addressed in > a subsequent patch. >=20 > Reported-by: kernel test robot > Closes: https://lore.kernel.org/oe-lkp/202306211346.1e9ff03e-oliver.sang@= intel.com > Fixes: 9425c591e06a ("page cache: fix page_cache_next/prev_miss off by on= e") > Signed-off-by: Mike Kravetz Should not this one be submitted to 6.4 stable branch too ? git describe --contains 9425c591e06a v6.4-rc7~29^2~1 The other one (hugetlb: revert use of page_cache_next_miss()) of this=20 patch series landed in 6.4.2 Or am I missing something ? -- Thomas > --- > mm/filemap.c | 26 ++++++++++---------------- > 1 file changed, 10 insertions(+), 16 deletions(-) >=20 > diff --git a/mm/filemap.c b/mm/filemap.c > index 3b73101f9f86..9e44a49bbd74 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1728,9 +1728,7 @@ bool __folio_lock_or_retry(struct folio *folio, str= uct mm_struct *mm, > * > * Return: The index of the gap if found, otherwise an index outside th= e > * range specified (in which case 'return - index >=3D max_scan' will b= e true). > - * In the rare case of index wrap-around, 0 will be returned. 0 will al= so > - * be returned if index =3D=3D 0 and there is a gap at the index. We ca= n not > - * wrap-around if passed index =3D=3D 0. > + * In the rare case of index wrap-around, 0 will be returned. > */ > pgoff_t page_cache_next_miss(struct address_space *mapping, > =09=09=09 pgoff_t index, unsigned long max_scan) > @@ -1740,13 +1738,12 @@ pgoff_t page_cache_next_miss(struct address_space= *mapping, > =09while (max_scan--) { > =09=09void *entry =3D xas_next(&xas); > =09=09if (!entry || xa_is_value(entry)) > -=09=09=09return xas.xa_index; > -=09=09if (xas.xa_index =3D=3D 0 && index !=3D 0) > -=09=09=09return xas.xa_index; > +=09=09=09break; > +=09=09if (xas.xa_index =3D=3D 0) > +=09=09=09break; > =09} > =20 > -=09/* No gaps in range and no wrap-around, return index beyond range */ > -=09return xas.xa_index + 1; > +=09return xas.xa_index; > } > EXPORT_SYMBOL(page_cache_next_miss); > =20 > @@ -1767,9 +1764,7 @@ EXPORT_SYMBOL(page_cache_next_miss); > * > * Return: The index of the gap if found, otherwise an index outside th= e > * range specified (in which case 'index - return >=3D max_scan' will b= e true). > - * In the rare case of wrap-around, ULONG_MAX will be returned. ULONG_M= AX > - * will also be returned if index =3D=3D ULONG_MAX and there is a gap at= the > - * index. We can not wrap-around if passed index =3D=3D ULONG_MAX. > + * In the rare case of wrap-around, ULONG_MAX will be returned. > */ > pgoff_t page_cache_prev_miss(struct address_space *mapping, > =09=09=09 pgoff_t index, unsigned long max_scan) > @@ -1779,13 +1774,12 @@ pgoff_t page_cache_prev_miss(struct address_space= *mapping, > =09while (max_scan--) { > =09=09void *entry =3D xas_prev(&xas); > =09=09if (!entry || xa_is_value(entry)) > -=09=09=09return xas.xa_index; > -=09=09if (xas.xa_index =3D=3D ULONG_MAX && index !=3D ULONG_MAX) > -=09=09=09return xas.xa_index; > +=09=09=09break; > +=09=09if (xas.xa_index =3D=3D ULONG_MAX) > +=09=09=09break; > =09} > =20 > -=09/* No gaps in range and no wrap-around, return index beyond range */ > -=09return xas.xa_index - 1; > +=09return xas.xa_index; > } > EXPORT_SYMBOL(page_cache_prev_miss); > =20