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 48490C4829E for ; Thu, 15 Feb 2024 22:17:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6F7B6B0082; Thu, 15 Feb 2024 17:17:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C1E0F8D0006; Thu, 15 Feb 2024 17:17:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE5AF6B0085; Thu, 15 Feb 2024 17:17:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9DEA96B0082 for ; Thu, 15 Feb 2024 17:17:48 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6C2EEC0750 for ; Thu, 15 Feb 2024 22:17:48 +0000 (UTC) X-FDA: 81795451416.17.C4834D0 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf12.hostedemail.com (Postfix) with ESMTP id 6EC4A40010 for ; Thu, 15 Feb 2024 22:17:46 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=N5LXYTPF; spf=pass (imf12.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.176 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=1708035466; a=rsa-sha256; cv=none; b=CWKBMgOaA/VYRHUeuYWi8gYr3GClF4FDJNOH2cdjx6V0uj0uVYfKbTDrbklThWH06LPsqW z8/pS1YvT1Jz2FqkWTstlhTOQ+dyRnYXkeQwVXgqZqSxuVe1h7mJMQrbDfvhyIVx7+OHE6 JnQZP2vnPh5qbP4+QiYfvY+jVyIUJt0= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=N5LXYTPF; spf=pass (imf12.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.176 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=1708035466; 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=xqLyuCsW475xlDjq9rWu9xXNC03QbYPQjapLSP5f0Io=; b=eYfBVPd0JI3E0nwlnB30qXWszW+2OwT6W5F/sqTi8R1cUgwrTI04jziX6QsXfg7ihNYbf2 3xgbvG78QM0A/B75r1GlA7sTwmiuH/ddpkRGS+JapZNhSwXzMPeSgZysB0IdTuUuWVWhoH D5jTOhmBozkLybpcPfDuEsH8miSG+L4= Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6e10d08cb4fso1383765b3a.0 for ; Thu, 15 Feb 2024 14:17:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1708035465; x=1708640265; 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=xqLyuCsW475xlDjq9rWu9xXNC03QbYPQjapLSP5f0Io=; b=N5LXYTPFfV5127HBaUHIDSP/Is7B30Wcdr7su9efhJi1JFZI6fcfkLoWNpSNqlEz+T tVydLU9b856uhKOatFCl9Gg4cpiu2Kpi4GUtsfAcV5iFSDiP5pYO8u+f0SFg6rk2d1ut Ckg8+BHcT8UZ3sb+7YPvJDeIGYJ1zQd70K3H28mHeQsmMOLMzhsAkrd/JfIaXbr2IbuL 8/J3CEowp4T6efTWnAKhCBxMxIiiRGzhXp080z+zBr3thfYPoHy3tfXW/WULtjdQMB0r dUNuEYFF74GbGgO/kZYQuIdr6qdtYG5X3LkyHlVddcd7PWAb2o4VGWnqt2TBUdu/qyNa M0uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708035465; x=1708640265; 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=xqLyuCsW475xlDjq9rWu9xXNC03QbYPQjapLSP5f0Io=; b=Unf+mNXB/Wq6m+Ht7D2rWkD9ZDjAJSVtk7NQ1w3ROmbNqgOhu2/B5p6qABBzZvWC9f JQzjQUsOk0bbLh/E/kf5MtKivnTkBLS/XriqMmIDlXovTtgI4dS9/E8SmwM1vs32HjwC wwOAwkj206HONOwJk9Rqd5FXfAHsF1zFM56OGaeF2VtGQWTaktJPoSVsY/15RQKD8T8+ D8Rt7nDSGZdKccrGmXL3z7tyD7GjOocE3wTshbAMkvedxcKFXFyzKRDtted75RwqO12i 09a8O/a+tp+zgd8ARaehjPOlODh8+n5EfDSuS3Gc1kmsjqcKneCkytV8C5lPohc2R547 VqZQ== X-Forwarded-Encrypted: i=1; AJvYcCWWF91bgRPR0ZdnpQvnemfSSMHgIKHH+ArCdT/l9NMFQNBpIfB+rR7vQfcX3QC1q88sJPJPsUc+8fWmGwfQNC2E1Wk= X-Gm-Message-State: AOJu0Yyco+5CPt12KW6dMsUWHd2/kZy+jWqDI37VHyXIGLZhDAsEVlp9 0rFdizRLt0ULsg2NrkymuxuaLyCrJgg53p38bLooDKgWQVzcPyxYtw4zI7Xn0Ng= X-Google-Smtp-Source: AGHT+IF10IvncuJisp6y8CXRYam75Te24+bLDVMAcYz6fel6DiwBkZwF0/fv9w3QDOMhFdZye4KjRg== X-Received: by 2002:a05:6a20:d043:b0:199:7628:286d with SMTP id hv3-20020a056a20d04300b001997628286dmr7498930pzb.30.1708035465181; Thu, 15 Feb 2024 14:17:45 -0800 (PST) Received: from dread.disaster.area (pa49-195-8-86.pa.nsw.optusnet.com.au. [49.195.8.86]) by smtp.gmail.com with ESMTPSA id m22-20020a637116000000b005dc4fc80b21sm1905442pgc.70.2024.02.15.14.17.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 14:17:44 -0800 (PST) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1rak33-0071FQ-33; Fri, 16 Feb 2024 09:17:41 +1100 Date: Fri, 16 Feb 2024 09:17:41 +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: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 6EC4A40010 X-Stat-Signature: s6nyos4nb4i6ks6qks1rm3ksgqohn7cm X-Rspam-User: X-HE-Tag: 1708035466-846887 X-HE-Meta: U2FsdGVkX1/U11Z/SCX/HEXfMFmMQJDRbruwzVaBnsIjr8rX3vlkuffva+NoZagWv39c9btBCNJ1n2yZ4xc6VnRBm+nZ91BFvIeEFFy5zm4lRl9RcxuO5Ag7bHXG+uZ41nIVbmFKo2/rqoDovJd97K4df9D7TfCsgDHE6H8jXLICRjbNAgm84YhYau8eFkn/CIsSG3KtdIcmpf0Udw2HNc4+Quq1VHrMFFvr80aM6bxqXQ0g3etdG8R9Vkn4NI87p1fqFU82PLoCSYmVv2Pm2tOeFwQvxCIJ8OYWr9UfKzW/qaM/d5ZDA2gnN3XeKYQy3hvrwYbiXMxZyxtVBvlPmLnSuavnCP7yeIKMZ1ygCfC7VixRld5ciw9vQqMJRS8LjMIhQ1uhS8DQqgEHJTXl1Z7kf2/1lWUoOWH5kZ09oXl+neZtv5jRSfDNoSfwFMoTMhdv96zp8mk58FmJXIz4p8jLjLzx0DXXyMPgxBgqHnuVpHB6t0jz/INgfietYMUct05iim7X1m2o+gsO4Xk/LaJpHtnXjVn8SClwfD7NPIjd50ytlMmkRbS0BslwlPGfRlZejL3NvmlOT6GofKhBdeyJ8SRcgjV9urgBUP6vajlvbCAkdObWDG+eUZfvFotmut0EG2YEwYHZNItWjwoMjnY43QH0nkft16BdBHAblovmzQO6AJ+Ka1Xa0pcUbD71HLtNgxGnvnNCLRULr7xTN7JMzOPd5dv/msVpICxSMVT8vZR2nTE72+RmoGMPexRmWVfSEN0spJsqcBSvwUymDa3gPLRrFA766sK0n5+k0ctodfgg63vXkLAsJS8/dTqPtKfri1iNWy1BcOIhZFOaECcA6gbVTaql1zMSq6xqdkWqI0XoF4CE7rMmNPzvqfwYctWpt8W6qWx/wSqTMrhL8J5gW+AvfEt1Od/gFhJUSm01DqpCUSeLUsCGgmMqajjxgREZ08fhxJZ4gHziCdb SYhSeCUG AY8d4JrIfEr+ysBa+oaM2M7awYRcodssS/h1ut3Nf7+aSkU0jiMqN9+hJGbrL1cqVH+Yl4ecVALmEMQnCvEWysRtTFA5n3MflQD5nskexVxWDovHuYIag0l2Yoy9/aLbwOgkGWt2f/C0gzfNYszMa/MsIgtEmRi8AcuUaTBdcxXXzTNBHltcPvG+e96hrEzprpRh1BD+2iLkqCqe91dLPdDFlwi2WrAuFbcM0E7UgGTZHRz8vcexxUGIeVFmfrthrcMCk45hLUEmYVJonpduobp6ZFUdhAqW7g7/hXIEF/XOkXX9YAyXR1VCazNqTkScRBC341oMSWJaVTXPHyUsp/RYzWUBeX49xPp7fHHKH0A/7LSKSvEyamdN65FttDoUaRhjEx8it8yHm1034wh3U5lGConVacc3xuDUxAJCK1UxSNeR3nd38dScN0VtbZFTDwobt X-Bogosity: Ham, tests=bogofilter, spamicity=0.000574, 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 Wed, Feb 14, 2024 at 05:35:49PM +0100, Pankaj Raghav (Samsung) wrote: > > > 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; > how is it underflowing if I am comparing two values of type int? Folio order is supposed to be unsigned. Negative orders are not valid values. So you're hacking around an unsigned underflow by using signed ints, then hiding the fact that unsigned subtraction would underflow check behind a max(0, underflowing calc) construct that works only because you're using signed ints rather than unsigned ints for the order. It also implicitly relies on the max_order being zero at that point in time, so if we change the value of max order in future before this check, this check may not fuction correctly in future. Please: use unsigned ints for order, and explicitly write the code so it doesn't ever need negative values that could underflow. -Dave. -- Dave Chinner david@fromorbit.com