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 E268AC25B78 for ; Tue, 28 May 2024 09:12:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7ACF36B007B; Tue, 28 May 2024 05:12:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 75B4B6B0093; Tue, 28 May 2024 05:12:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 622C36B0095; Tue, 28 May 2024 05:12:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 3E0676B007B for ; Tue, 28 May 2024 05:12:16 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E04B9A0413 for ; Tue, 28 May 2024 09:12:15 +0000 (UTC) X-FDA: 82167238230.01.F47B54B Received: from mout-p-102.mailbox.org (mout-p-102.mailbox.org [80.241.56.152]) by imf08.hostedemail.com (Postfix) with ESMTP id 51075160011 for ; Tue, 28 May 2024 09:12:12 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=K92MUdTJ; spf=pass (imf08.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.152 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716887532; 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=+6dkW93DnVACbslfNzCM4QmzlxV8HYGQZLUz4MDWvU4=; b=ePEF1PFOJhKRXCwhww1pe9XT63+ln7LRTDOqh/GdDmmlVEa/K4iY3VhDz/N0EIfLcoGIKg L6kAsMq+dmnx36NshK14g7n/FwI5iJXbmXjbksjnEom1xXtqMORW6rAAYJP0uj41Wvka6+ K89H8SNR27xfvgRAnlmoc/sODcUfHtk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=K92MUdTJ; spf=pass (imf08.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.152 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716887532; a=rsa-sha256; cv=none; b=hGNZ+k7dYIpHB5EpB35bJOU5W9oPbR22RXt3yfdWmSaT3MnXeh8VR/5IGaB7RLEkKG6+XS XHEilukbyLzicqWFP9YhL1NcOj+goDr2kHRok/v0DiqwrQQ18Sr5IwDjlSGb/+1wp4Cdrm rKzjk8gA4GU+ddZBEYyVYees1SqwiaY= Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4VpRbq2GZhz9sXg; Tue, 28 May 2024 11:12:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1716887527; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=+6dkW93DnVACbslfNzCM4QmzlxV8HYGQZLUz4MDWvU4=; b=K92MUdTJL75TcWOfAZGx+lSgP/CSVK3fRy6W0PEiHaXLvkZEnU2e5ME2bZWJijEije8631 IYXkXRyiC1fo4CPrma1zhSw+veppPMZRr3+rpFU/gtOlpawwq2TgTnEeLo3qwNzlKb7UvD d5LHVMpLvMgodvKF3MgXchJg/vsUEOA4lPU3cjKkzON6tLVzujiY79BllXTb0aVskEV9/5 g4SwZU+mayqJedRswSDABP9WWTMD7iigfUKvgnxBBKX+DkVOKvm+Su2A+hoHOZfRT1MVJW rsyNGz0+Am5TaXPqnwAGNSbKIZHcvzn/NeSomiLXJS2BuScHVmbfoo/3wIGX+A== Date: Tue, 28 May 2024 09:12:02 +0000 From: "Pankaj Raghav (Samsung)" To: Dave Chinner Cc: Matthew Wilcox , akpm@linux-foundation.org, djwong@kernel.org, brauner@kernel.org, chandan.babu@oracle.com, hare@suse.de, ritesh.list@gmail.com, john.g.garry@oracle.com, ziy@nvidia.com, linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, gost.dev@samsung.com, p.raghav@samsung.com, mcgrof@kernel.org Subject: Re: [PATCH v5.1] fs: Allow fine-grained control of folio sizes Message-ID: <20240528091202.qevisz7zr6n5ouj7@quentin> References: <20240527210125.1905586-1-willy@infradead.org> <20240527220926.3zh2rv43w7763d2y@quentin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 51075160011 X-Stat-Signature: 9s7655hc7d6db3d4uhmgm1me9sn7ryu1 X-HE-Tag: 1716887532-177852 X-HE-Meta: U2FsdGVkX1/g39SBuxX/EWctdTwwIn1muOKKj1bP6pRNLxfbHCugYxTuQze2I8nnoWwq3y+2jXWE9A7bweo+lfwgT/jnmhzmtx/3mHMTfHw/SPzLYdypypdWZKbQvP9EQ4J0fTugH4xsNopfgX8jkYVQc9C7UPTebR1g6JfdWMHixO1hV2q/eGR8XfyOmN6fDsOWQApIvALnPhSzZ66cdNCLE/HHottPMmC06MM9qGQTxQhxMCEkWnN4LCurPtNziiEtsu55buDh5NquGrlB2gsU3zmAXSbjnFQVdLZrp76ao8LlIv3siLZa+mdQf7PEtLkbTuYjKbDbOqG9VCQuGs3J9azW3h0EkA6fsmPgBAyHAMf0mVGfkhCiu7Q20i5ehYzjN7nWK7eoKblTe1D8ZYE4ynYBnZ1gZ++2OEgMvuUUm4e1XZdM5FVVFPJb4kgt5aTfK0bWPkFdY+ur+W4bo3yZMNFjrARIwt5Lv8W+N3YtAK9mlldKRXj7Ynig1tk5Qgj8bFd+hbGL/32xuhR9sLDq9bAr9WqF7cqF/m0U0AfRGVu8IQ8qB6iOK3HoKXC+TK9ZivGM1WF6MauP1yTl2ZcprsntDaQXedaOoKrQxWtLq7JuF7j3DBXM09NVdRo8v3jrPykikZZ7zeLdK2tEwRvsbhwD8ICzaSg4dPSzb4zD+nkFu72OvfPjPy5lRgu/vy9NpzC8MDUCb0m86Q9CQVvlWp+/31q0bqKMqiBjgkl2x/Al9UW+X/sZZQTXMFAvOM6dg6E+oRMc6DLPXkE6sI2uqbPcqL1cYJhM0dh/x4u+tMNuLcOPq3t6f58zTQmHqdCIAZ5q4hSyxBD2jpJLMfWO5Y2tkb6xFdiCwAWi1ji+a+CwbCz23/m3UmL68r3YJdTNylK5WhzpwSbJGE9d3CIIPXDzzP5YgxLLcAF1EzT3fxpMyCkVdIDKBPVvLtpTHdENZeH5aQTLFC8NBlo KqxZmWQE 5E9EitmFXNDXumm0HR8ya7AUMqaHjcd4uOMbU2aLSGkLaX1EfxN0ru+TZfilRC4mg/uaoEsjDaK5bCtqiSjiVoEaISZ0e6z7tCPCQxNHBv86fU2ZCSXE3J+LWwt0qqb15F7LexnIqlQ0aDhmNWYT89b4S/Xh8+Htj9wytkFdDNa176lLF44OvKCk1ZQV/LkpXG03IhukJ7wtJfkbf683lwkstgcBvU06ADoASldensEX7hxg6h4SYEeGCN7JnvnQxDTqczBitmMg/p36STqTub47A/eiZjtnAqxQynVI2h2Yv7t24PEoL2xa8nC1ai3L7Zc6cG1AQPfCU4rvdRKfZHwwcpA== 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, May 28, 2024 at 09:00:00AM +1000, Dave Chinner wrote: > On Mon, May 27, 2024 at 11:43:43PM +0100, Matthew Wilcox wrote: > > On Mon, May 27, 2024 at 11:39:47PM +0100, Matthew Wilcox wrote: > > > > > + AS_FOLIO_ORDER_MIN = 16, > > > > > + AS_FOLIO_ORDER_MAX = 21, /* Bits 16-25 are used for FOLIO_ORDER */ > > > > > }; > > > > > > > > > > +#define AS_FOLIO_ORDER_MIN_MASK 0x001f0000 > > > > > +#define AS_FOLIO_ORDER_MAX_MASK 0x03e00000 > > > > > > > > As you changed the mapping flag offset, these masks also needs to be > > > > changed accordingly. > > > > > > That's why I did change them? > > > > How about: > > > > -#define AS_FOLIO_ORDER_MIN_MASK 0x001f0000 > > -#define AS_FOLIO_ORDER_MAX_MASK 0x03e00000 > > +#define AS_FOLIO_ORDER_MIN_MASK (31 << AS_FOLIO_ORDER_MIN) > > +#define AS_FOLIO_ORDER_MAX_MASK (31 << AS_FOLIO_ORDER_MAX) > > Lots of magic numbers based on the order having only having 5 bits > of resolution. Removing that magic looks like this: > > AS_FOLIO_ORDER_BITS = 5, I think this needs to be defined outside of the enum as 5 is already taken by AS_NO_WRITEBACK_TAGS? But I like the idea of making it generic like this. Something like this? #define AS_FOLIO_ORDER_BITS 5 /* * Bits in mapping->flags. */ enum mapping_flags { AS_EIO = 0, /* IO error on async write */ AS_ENOSPC = 1, /* ENOSPC on async write */ AS_MM_ALL_LOCKS = 2, /* under mm_take_all_locks() */ AS_UNEVICTABLE = 3, /* e.g., ramdisk, SHM_LOCK */ AS_EXITING = 4, /* final truncate in progress */ /* writeback related tags are not used */ AS_NO_WRITEBACK_TAGS = 5, AS_RELEASE_ALWAYS = 6, /* Call ->release_folio(), even if no private data */ AS_STABLE_WRITES = 7, /* must wait for writeback before modifying folio contents */ AS_UNMOVABLE = 8, /* The mapping cannot be moved, ever */ /* Bit 16-21 are used for FOLIO_ORDER */ AS_FOLIO_ORDER_MIN = 16, AS_FOLIO_ORDER_MAX = AS_FOLIO_ORDER_MIN + AS_FOLIO_ORDER_BITS, }; @willy: I can fold this change that Chinner is proposing if you are fine with this. > AS_FOLIO_ORDER_MIN = 16, > AS_FOLIO_ORDER_MAX = AS_FOLIO_ORDER_MIN + AS_FOLIO_ORDER_BITS, > }; > > #define AS_FOLIO_ORDER_MASK ((1u << AS_FOLIO_ORDER_BITS) - 1) > #define AS_FOLIO_ORDER_MIN_MASK (AS_FOLIO_ORDER_MASK << AS_FOLIO_ORDER_MIN) > #define AS_FOLIO_ORDER_MAX_MASK (AS_FOLIO_ORDER_MASK << AS_FOLIO_ORDER_MAX) > > This way if we want to increase the order mask, we only need to > change AS_FOLIO_ORDER_BITS and everything else automatically > recalculates. > > Doing this means We could also easily use the high bits of the flag > word for the folio orders, rather than putting them in the middle of > the flag space... > > -Dave. > -- > Dave Chinner > david@fromorbit.com