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 75BCDC4829A for ; Tue, 13 Feb 2024 21:34:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F02176B009E; Tue, 13 Feb 2024 16:34:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EB3946B009F; Tue, 13 Feb 2024 16:34:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D79D16B00A0; Tue, 13 Feb 2024 16:34:07 -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 C86BF6B009E for ; Tue, 13 Feb 2024 16:34:07 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A03811A014A for ; Tue, 13 Feb 2024 21:34:07 +0000 (UTC) X-FDA: 81788083734.16.2B163A2 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf24.hostedemail.com (Postfix) with ESMTP id 9BA0818002C for ; Tue, 13 Feb 2024 21:34:05 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="Qu4iKiI/"; spf=pass (imf24.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707860045; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X3Dh7id3ipnoR2TxmXquXUcK+gi6YFcV7mpm+5XHZi8=; b=l++HYZfko6Fv0FQXcLMnT+t4IHpTGWRZ2Oy5dvx2xt6hCXfiGDtmCbZUnSvw7WMTg2h4Ec FCsgfn1EscCiKSKjnZwQE8nQ+U7CkQ+jjlIEro0ZT9bCSos9jLP53suINWwAWk4mwyXCjV X8sOUX2GwDeRyvkm2yyc+2WMHqRtewg= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="Qu4iKiI/"; spf=pass (imf24.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707860045; a=rsa-sha256; cv=none; b=JXSqJ2efpv18IMaxEjw7Qm0i47oDuZ3ntNidWfxlhVNRzG3VSTSAGIBIy1e/55WlLcPlLC YDfvGLTe5PGPmBizdEX5jYPDafDtWGzm5ch7wKVDPA+K9bq32EIhJ/lYdd0q2ottmjppCc C8DuRU38lJh/1eiSWV7oM8NKCIIZx64= Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-1d51ba18e1bso47194915ad.0 for ; Tue, 13 Feb 2024 13:34:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1707860044; x=1708464844; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=X3Dh7id3ipnoR2TxmXquXUcK+gi6YFcV7mpm+5XHZi8=; b=Qu4iKiI/GwMC5sporihX4PogNZfF/sUHe/QVLhnFz3Zzbl7sfLKZnnXly40vEgG0v5 EJI1mg2rTxUQ5B+whMuVKMW91jBElh51gOnNaCKMUt7bcmaVjPkkL2/+YFWxtu0e+WOO xCYSYh0c/uqsk+Zd0gPMxKjhYxHWkmdzuqSlIQIw0C1dSO6FjJWqV1093mwJUfnGU4H1 lyWxc7coN8xdVp+pBFxBTgHPr9/rAJZF+Sm5r1AtU0/sm81Kol99dZwPwzkyOGUpFw8/ 6Z3OR03RrRhgU6ih6Bezt+rTZ4h00bAbMtfksd/8CsSO5a/fovaPTNqTQpCW8OnkMfR9 wxyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707860044; x=1708464844; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=X3Dh7id3ipnoR2TxmXquXUcK+gi6YFcV7mpm+5XHZi8=; b=Dw6zJCiq6zMfDlBXly4EgRmn/PsK9+8UfIsqFLfLzQ4qTA9H44mlq0pUz153VmAfDT dn+IfrAKyJanjTfSgiGkuCx0Xsf4eylIhSi45mwapo8tvZ08bgRJtnTUOetRtcNSCb2l uVxKSzQsL2dRl7er1QhGYRPHyltjMlknRVMvV/9OrA/vH64vOfEQtsxngSt9cnRzyreN fLFkpBjLiuqeUZPGP1Kbb+OCgxa+Xvp66DowZ+qjX88PnDAOQN2hOd5FSKbU827w/7ss t8+/JeKSfcYGgfEmuwFJEIl1oNarjNAhkKGlijWZ1JRe+EDbp9a8TUOV2sUkmU0XWmYA Yl/Q== X-Forwarded-Encrypted: i=1; AJvYcCUSFpvJkXZ3DMiiiqXD2Tee5Z9ki3WiKECD7anklsQaQocGi0Ckc0E9jKE3Xbbzc04V3da7ziSXTXgMyraVxMNsFXg= X-Gm-Message-State: AOJu0Yykckd7GwsUt2oUmvVe4fK5Eb26zmt/NFkkM0LoLj8IYAG/M2y6 Hk4Z5GxekM4XwJ6y2I+G86IBCBR2xP3SSsCiNmdmANzNSMKCi2iS1TIBNHSfaXc= X-Google-Smtp-Source: AGHT+IHbs+SB1OAwKdQv4FKE5O0WNqesf8jQbsn5a+dVy174Ibcc6He4LWUJox+5v9FAkWcAj7o37A== X-Received: by 2002:a17:903:245:b0:1d9:b749:d279 with SMTP id j5-20020a170903024500b001d9b749d279mr898647plh.50.1707860044272; Tue, 13 Feb 2024 13:34:04 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXWlnI3L91uv5pob/Jz5WI+4ura4qD1cse3IW1Up+u1tb0s52riHCk7ERx4gpDtQGkKH+iy+wzE4fteO+0hNQZLlUvxe6yq62f9R4dWECVk3zq7w1BAXIYVUqDNngHjANkxT4IoypDfmUYXQRVnnxLnZx4MqoXaOHddJuTATZ0H6sQDkIo1195KoZFyTqQ1V6QasL3XGfL7yZq8DevcRsajIornkiMKQinjM90biJMDTZ5C1PJw4it5PUylz09PHHoNJIdSVXjjSNer5kuk4clcdqzTZfQ2z5wLZGg0MyLuJYUxmO9ex/Oh+I31pWnrNMeqZNtINhLwZezh0l/WhWL17HtSKai7VgBvGDalE/sSF1mZZKnBotGpdAc8P6Iy8U8PW/IIV+gT60+Yuf/tDQ0eAM/wysKhMpZG4hA= Received: from dread.disaster.area (pa49-181-38-249.pa.nsw.optusnet.com.au. [49.181.38.249]) by smtp.gmail.com with ESMTPSA id e12-20020a170902f1cc00b001db474154d1sm957268plc.87.2024.02.13.13.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 13:34:03 -0800 (PST) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1ra0Ph-00671z-0j; Wed, 14 Feb 2024 08:34:01 +1100 Date: Wed, 14 Feb 2024 08:34:01 +1100 From: Dave Chinner To: "Pankaj Raghav (Samsung)" Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, akpm@linux-foundation.org, kbusch@kernel.org, djwong@kernel.org, chandan.babu@oracle.com, p.raghav@samsung.com, linux-kernel@vger.kernel.org, hare@suse.de, willy@infradead.org, linux-mm@kvack.org Subject: Re: [RFC v2 14/14] xfs: enable block size larger than page size support Message-ID: References: <20240213093713.1753368-1-kernel@pankajraghav.com> <20240213093713.1753368-15-kernel@pankajraghav.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240213093713.1753368-15-kernel@pankajraghav.com> X-Rspamd-Queue-Id: 9BA0818002C X-Rspam-User: X-Stat-Signature: b1dwhdiogmkj4jtg8nqbinbhnn7dszrj X-Rspamd-Server: rspam01 X-HE-Tag: 1707860045-547233 X-HE-Meta: U2FsdGVkX18mKgORboXhfuzI7uhaAB0kZVqVlEIC0gXEA5j7U2cjDsb16ddQTKm2i6FnRrozYTh6lXuGmcBv/P5nS6MPpXjAIn4Mereqfb6rD/HlDZEoyjIf7+TyRen5YNBHELXyMS3eKW+HUw21/K3bJ0obEjXV+evsnviVRuST5OD45v3ut5tqEGGgfb5LppqOKXnlzZxHMjm8wZ6Po1X9xDFiQqOsa1QCYnX7itBDYnUwQpBPRUz6RJqMSNA/Y4flZskLfKVWHaG87+o1VzyQd2y4tOEbJ9xF+nw+2dxRYvCuhjFx/vdWbWutZ2wvrwy+NxsgmgF3+wffdXId3hKt7m8qa/UDHSnILctoo8fJNLftyxZJylFuHKVGIyr6T9/dT/mGbn0D/ekv+Ai5Co5GRbuTkkfreS9Dl3zStrobJ+lZiyGeyKmA/wPplC3BoKTGJOe+YQBupec8QxniWadgt/l4/t+CXnSaS2nl4bUkNvlI3tOTnMqhAS0lVA8I1O8HwBIu5sHoMBHDJpddqeUUDYnt/47KSko+CSsxrVAd9VjQ9wZMgH3PXLKZPHBhu1FEvrV39BMDvDQ41pe6f9tJPuPxh349HwiVPK40DEdOQK0bGDGm6xCAdy714E9YjFLBRmbMuuBROoQTlqHGIco8RzM5W4OK+jt/N+RHUl9Ha5E2IOHWmSdtcj62CN6jUgSCWdFUrEvaqiQKpe/R8N80rnOb39gWSNVS6lLtZyaXfuFFDDFOcoQjWTmg+jDQXpu9eVjS7OBtwMXoHfYB4g0bWa9nmeX1XiQPxmaQZSFcBvM5GkVTVndI2Tno6CCsRxGvpt1SxLVZI5jgRM5xcfTpnLBGnk/hNCvAQPSFnySWc6bAcbnyRuPlI7j2EuVENZBqB8UuXS1xgwOpd6S+//e57aVBoIYCSyMfwjSLyN2vpt0KHABGU1vr/fCl7zzWwOKrWGog4Tth/kfGsVl RJ8mYWDd n1ixzy3M7WCmhTekmC47lfVB/zTM0JlesbUtZ9joeWLB4gktXXsotADQ43M3v3iKYrrAjtwT8jERPW91Sc9idZcxuTWwcwVaFa96LZZHawemzU5d8JgaKEUO1Omtm9akgHqVrKJzG6+CCGnNNzAduDx4icjzHEyN81MlwY7o2fA0CiFwLf/eTNlKo5nfFr+5bZD+mj19UlDReNF7R6SFdXmU1814s4IkBGQ9yRKl8CQKOsjtmJa1/T85B094CvKj3F0r0Y/Fl//7EFL1HX+bXcuNr9sgegOstJJftlWQr/hlZO1pU909kL/oxrXv1eIR94pPvDeDh/XA4GTECwRLoxRBPJYuz5D9v7Qi4ZAk0f5HhN7cEcJtkq2wb/D4qGyBCduxNctN6SWofWxFd7nEmOkxjJv3FKEb130yUvoGg2/ddCUdwZOWxvm90Qsqftvk/Gj75zDhC3wdQHm9T1/9KKA/HYS0n8lNxOT6Juci7OD0S0T41jcQQhvS3SguPkcAkEjXajAgl3lc+1W9luwSxGpKf1Q== 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 Tue, Feb 13, 2024 at 10:37:13AM +0100, Pankaj Raghav (Samsung) wrote: > From: Pankaj Raghav > > Page cache now has the ability to have a minimum order when allocating > a folio which is a prerequisite to add support for block size > page > size. Enable it in XFS under CONFIG_XFS_LBS. > > Signed-off-by: Luis Chamberlain > Signed-off-by: Pankaj Raghav > --- > fs/xfs/xfs_icache.c | 8 ++++++-- > fs/xfs/xfs_super.c | 8 +++----- > 2 files changed, 9 insertions(+), 7 deletions(-) > > diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c > index dba514a2c84d..9de81caf7ad4 100644 > --- a/fs/xfs/xfs_icache.c > +++ b/fs/xfs/xfs_icache.c > @@ -73,6 +73,7 @@ xfs_inode_alloc( > xfs_ino_t ino) > { > struct xfs_inode *ip; > + int min_order = 0; > > /* > * XXX: If this didn't occur in transactions, we could drop GFP_NOFAIL > @@ -88,7 +89,8 @@ xfs_inode_alloc( > /* VFS doesn't initialise i_mode or i_state! */ > VFS_I(ip)->i_mode = 0; > VFS_I(ip)->i_state = 0; > - mapping_set_large_folios(VFS_I(ip)->i_mapping); > + min_order = max(min_order, ilog2(mp->m_sb.sb_blocksize) - PAGE_SHIFT); > + mapping_set_folio_orders(VFS_I(ip)->i_mapping, min_order, MAX_PAGECACHE_ORDER); That's pretty nasty. You're using max() to hide underflow in the subtraction to clamp the value to zero. And you don't need ilog2() because we have the log of the block size in the superblock already. int min_order = 0; ..... if (mp->m_sb.sb_blocksize > PAGE_SIZE) min_order = mp->m_sb.sb_blocklog - PAGE_SHIFT; But, really why recalculate this -constant- on every inode allocation? That's a very hot path, so this should be set in the M_IGEO(mp) structure (mp->m_ino_geo) at mount time and then the code is simply: mapping_set_folio_orders(VFS_I(ip)->i_mapping, M_IGEO(mp)->min_folio_order, MAX_PAGECACHE_ORDER); We already access the M_IGEO(mp) structure every inode allocation, so there's little in way of additional cost here.... > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index 5a2512d20bd0..6a3f0f6727eb 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c > @@ -1625,13 +1625,11 @@ xfs_fs_fill_super( > goto out_free_sb; > } > > - /* > - * Until this is fixed only page-sized or smaller data blocks work. > - */ > - if (mp->m_sb.sb_blocksize > PAGE_SIZE) { > + if (!IS_ENABLED(CONFIG_XFS_LBS) && mp->m_sb.sb_blocksize > PAGE_SIZE) { > xfs_warn(mp, > "File system with blocksize %d bytes. " > - "Only pagesize (%ld) or less will currently work.", > + "Only pagesize (%ld) or less will currently work. " > + "Enable Experimental CONFIG_XFS_LBS for this support", > mp->m_sb.sb_blocksize, PAGE_SIZE); > error = -ENOSYS; > goto out_free_sb; This should just issue a warning if bs > ps. if (mp->m_sb.sb_blocksize > PAGE_SIZE) { xfs_warn(mp, "EXPERIMENTAL: Filesystem with Large Block Size (%d bytes) enabled.", mp->m_sb.sb_blocksize); } -Dave. -- Dave Chinner david@fromorbit.com