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 C1903EDE99D for ; Tue, 10 Sep 2024 15:43:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5544D8D0086; Tue, 10 Sep 2024 11:43:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 506398D0002; Tue, 10 Sep 2024 11:43:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3CBC88D0086; Tue, 10 Sep 2024 11:43:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1CFE08D0002 for ; Tue, 10 Sep 2024 11:43:35 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C29FA1C407B for ; Tue, 10 Sep 2024 15:43:34 +0000 (UTC) X-FDA: 82549248348.28.7EDE845 Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by imf01.hostedemail.com (Postfix) with ESMTP id 09BEB4000C for ; Tue, 10 Sep 2024 15:43:32 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ZYIFuQNR; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.41 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725983009; a=rsa-sha256; cv=none; b=Hb5uq9nx9Wm2jKYzDjLk7pWpnyjSoNJQcOPDMYq0BqBk/fAGTeOD0rtCwvlPF3pcm5xXjU esHZJ3Hh6PBg+iBCHNHEFh5xAqipj9sgzwrWFS8ukuPcpl2Pfvl5Sn9oxxm7u86YNBoAaH F8NodVlpdIMwn/rddA9dM/zkC/uOc1I= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ZYIFuQNR; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.41 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725983009; 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=K+c1Ws3i4xnxafy/8/uhCyz6F73NXZODVZEQSxTuP6w=; b=HlZesy/ET7g4KIBm9Okoeb3Khy2hfL3huNUfefhF6aBDpkwiZTl6GAisHG4uyfjloAcME9 Qv8YyrBkCzowsRU+xR+F4tcRq1m/9fejohE9CA9SSs5Q7EGFHEKD0nEy04CZPSIu8i0rIj ZPiHpSgLbU2KxdrrypGmM6xRMEGEGeU= Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6c35b72f943so48179446d6.0 for ; Tue, 10 Sep 2024 08:43:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725983012; x=1726587812; 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=K+c1Ws3i4xnxafy/8/uhCyz6F73NXZODVZEQSxTuP6w=; b=ZYIFuQNRWLc0Vt79srgM019pLDiyLssjBN3ez5OI2qSrG9iEtIzJHPRhVFOmV6okeE Py2uItgyVVLRp5FleLdKPEUt1TS0Qg0Ej8HsfPH01koq8rVpp/mCXsWPwPnDHa6OSdmN F4W6puxQR0x8ShV803lAK2C1FxHjWSNQobS3LCjVoA7hgJUjWf7WdMfGxtV2J2oqF6yO sh3o1eB7c/84froBRDKWGPyuUAG5fv3f/UkTzuTmaVwH1YPYX8nf1ktEZ05lm3/TrcZa Zvj5Nn/fup7MY6QNqC+E2m3hyFLpOljXpvojdXSlBb7Aghcy9m+7wmHNggM7D0odRJHB r3rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725983012; x=1726587812; 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=K+c1Ws3i4xnxafy/8/uhCyz6F73NXZODVZEQSxTuP6w=; b=Q1i5fBO4HIps2ax7JGk7zn9uDR6uEUofkD1KEKPwUg/+mIvNBdFtY33pcNPqvbsYZE qoPOR414OpGDzvkFboUGTLBHIyEE93w8+P9ivhyuzeOxNylywZBjiSGDJSSCiYVvL6es JbxIL1uM1sVFVA8ZlRpbJx+koRHdtpxu0rw7zOsdl+Py7hsPsJvGMmEGmigt7LfTtdi4 K5ddwQJucShIJ/4YTLjd8C8968YKfY0v4w0Q7CbF59RxTBK00R6AbcxRIq1FCX+hn7Av LocAG3LqE7bRErDrKK+6WeQn8W+Zun+3UtJ0eR4YkgYeQliv8dHI25y0ug1qrtoYYEvS OE9Q== X-Forwarded-Encrypted: i=1; AJvYcCX6wgLzaEGnSMeOmx5O+AL2JMdHg1v4OtmuEF2LvX0b5/FLO2L4YgLB5OXx1RbMeCZVI5dpcbsMvQ==@kvack.org X-Gm-Message-State: AOJu0Yxwl8IPtf1BJackdQib/VsUX3JlYWbV7xvwd1/ZT55CBrzLLmeF 6dc7nhQabOG5D3IvcEEIekFXKobPIyDs29gi0lvBbwx1v3P5+YAlIs06ovhEIdgDfSLoxthMcLD ge9eHkVIhl83sOS7m0LA2gsl6cZk= X-Google-Smtp-Source: AGHT+IGG4nYFHZ+aDiM1pYnJoOv987Lq+iKjTpG3FbL9Qloy6SL9gI6dtK19ybwDEn+hCKo3gAQixZAAEG4R6C1Wnm0= X-Received: by 2002:a05:6214:3a87:b0:6c5:5b0b:d2bd with SMTP id 6a1803df08f44-6c55b0bd473mr29374256d6.25.1725983011982; Tue, 10 Sep 2024 08:43:31 -0700 (PDT) MIME-Version: 1.0 References: <20240906230512.124643-1-shakeel.butt@linux.dev> In-Reply-To: <20240906230512.124643-1-shakeel.butt@linux.dev> From: Nhat Pham Date: Tue, 10 Sep 2024 08:43:21 -0700 Message-ID: Subject: Re: [PATCH] mm: replace xa_get_order with xas_get_order where appropriate To: Shakeel Butt Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Meta kernel team , linux-fsdevel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: yfpfe8r6aijdi64iusyeqr7wie3mqpph X-Rspamd-Queue-Id: 09BEB4000C X-Rspamd-Server: rspam02 X-HE-Tag: 1725983012-339766 X-HE-Meta: U2FsdGVkX1/+vPt5Wcb5DrzuA3YwY9teT6XYrtV16lVtC4pDhYPa0pOtTi8uGbWgUDF5Q/yVaCK61NknByQ0AklLjTGcI3bbVsiwW7F4ThCnNsPwV9N7wfofEoXiwmD0SYsym9otmYIFBHXVGLO0GjUO+lfqqgq43BnrhdW2L8FXD/tE7CenaTYu5mR7YxLOfJjXvkicZpqMliBXIcoKI+OlcdgqM3b4EEesfdI6z1uAQ2bLHT7RT4d1IpzAwTwmbVml3EF6XIamaqRkuf2+ntpFytEsYkL3E8ke1/y/feJtphzf7JU3OQieefyxL98I6fPWsqG5w5SSYiwXCOH87VEs6MOan2qAsugorMsVwKG2nRim/pSGkwjURxwmHZi5zPf5UHbBw2MsEULaN/d/umraXMf/58uN+ZXuVK8jKpy5NpvosjUjtpnc7dy4Fo4JuUNyD6BllRHbHMITAHYvDRJYHeqS30DmAXOv028chRZPxL6moydNPaCqXYGdm0TLmoojgajgZdXq3EqtoIneFzLWSb8rke66hzW8Jkl7pjnKV9Hvea+roqvJoMKeZTh/BMwqcKhdTMND9fioGwih12iE5cnuVeO8gUEDgWX8INZVp/u/Olxdru5VLKVNdq9uZTY/iH77Z7qXx7wUFANfCVZkGHyJQcZ2+VWO6Z/rZhCotEz+no0tr+2rqySuqiUX04b/ei5DAtXiBAogp41T/2J9jnKojXAElQ0ZwWYl5uVPU8EFQkXT3bv5EBZeLKExM+wTtNR8o567toMwVSnX+dL3SkIZFxbgybCDU9P5c99yXrYLkOsmsajN2oEa3APXDcBrEPvmucFdkHdqkQay2Z82tiHFUwLySvslSpgOvMnK7RX5YuiBnr42pSsJcWgoMpjlR4N+JuPJqOtH/sDf/bFhZMEbgL1VY9NA05vzL4lNqyT+DEk3uhnmNK3jWmm4kiIZzYo3Asps8eBiAeT OEtUchu0 8O+wol59lvie6RJSLex1tqJJEYW+4kjO5QpC7hvOv4w0Ol9q8ZEcvR51NH8/yNZXFWNtiww8jwkNZJPL7J5UpzwqAjFmq/2ZXevBUlrk4nioj1X3svEYKnCR5qOx5OFdnTJtvXz3fIj5cRrVRzfKB6YV4yuiL04CH3M46KljnPaaBXruXrgkudiFlTktevUYTpKdiFfUKa7nl3hhwFGoEJGLaGhTN63W5c6/kf0GqkEFMEFBaDWKX4rvn+ZU6HbWLce6yKT85tKalXu7FRofuCxxLtzyncs/sGjJABUDfxDkPbX46XTo4w4BM5+Ay9fDgeBtfYagRRLRUoLZiVTwZirNSTkwzOp4drjdH7w3Mk5ruMqAmQcedBqhIMpFzK9cwnm+z X-Bogosity: Ham, tests=bogofilter, spamicity=0.000014, 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, Sep 6, 2024 at 4:05=E2=80=AFPM Shakeel Butt wrote: > > The tracing of invalidation and truncation operations on large files > showed that xa_get_order() is among the top functions where kernel > spends a lot of CPUs. xa_get_order() needs to traverse the tree to reach > the right node for a given index and then extract the order of the > entry. However it seems like at many places it is being called within an > already happening tree traversal where there is no need to do another > traversal. Just use xas_get_order() at those places. > > Signed-off-by: Shakeel Butt > --- > mm/filemap.c | 6 +++--- > mm/shmem.c | 2 +- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/mm/filemap.c b/mm/filemap.c > index 070dee9791a9..7e3412941a8d 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -2112,7 +2112,7 @@ unsigned find_lock_entries(struct address_space *ma= pping, pgoff_t *start, > VM_BUG_ON_FOLIO(!folio_contains(folio, xas.xa_ind= ex), > folio); > } else { > - nr =3D 1 << xa_get_order(&mapping->i_pages, xas.x= a_index); > + nr =3D 1 << xas_get_order(&xas); > base =3D xas.xa_index & ~(nr - 1); > /* Omit order>0 value which begins before the sta= rt */ > if (base < *start) > @@ -3001,7 +3001,7 @@ static inline loff_t folio_seek_hole_data(struct xa= _state *xas, > static inline size_t seek_folio_size(struct xa_state *xas, struct folio = *folio) > { > if (xa_is_value(folio)) > - return PAGE_SIZE << xa_get_order(xas->xa, xas->xa_index); > + return PAGE_SIZE << xas_get_order(xas); > return folio_size(folio); > } > > @@ -4297,7 +4297,7 @@ static void filemap_cachestat(struct address_space = *mapping, > if (xas_retry(&xas, folio)) > continue; > > - order =3D xa_get_order(xas.xa, xas.xa_index); > + order =3D xas_get_order(&xas); Yikesy that's my bad. This is late, but FWIW: Reviewed-by: Nhat Pham