Just use the PAGE_SECTORS generic define. This produces no functional
changes. While at it use left shift to simplify this even further.
Signed-off-by: Luis Chamberlain <[email protected]>
---
fs/iomap/buffered-io.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 063133ec77f4..ba2824f405df 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -1819,7 +1819,7 @@ EXPORT_SYMBOL_GPL(iomap_writepages);
static int __init iomap_init(void)
{
- return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
+ return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
offsetof(struct iomap_ioend, io_inline_bio),
BIOSET_NEED_BVECS);
}
--
2.39.2
On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
> Just use the PAGE_SECTORS generic define. This produces no functional
> changes. While at it use left shift to simplify this even further.
How is FOO << 2 simpler than FOO * 4?
> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
On Fri, Apr 21, 2023 at 09:14:00PM +0100, Matthew Wilcox wrote:
> On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
> > Just use the PAGE_SECTORS generic define. This produces no functional
> > changes. While at it use left shift to simplify this even further.
>
> How is FOO << 2 simpler than FOO * 4?
>
> > - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> > + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
We could just do:
- return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
+ return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
The shift just seemed optimal if we're just going to change it.
Luis
On 4/21/23 4:02 PM, Luis Chamberlain wrote:
> On Fri, Apr 21, 2023 at 09:14:00PM +0100, Matthew Wilcox wrote:
>> On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
>>> Just use the PAGE_SECTORS generic define. This produces no functional
>>> changes. While at it use left shift to simplify this even further.
>>
>> How is FOO << 2 simpler than FOO * 4?
>>
>>> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
>>> + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
>
> We could just do:
>
>
> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> + return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
>
> The shift just seemed optimal if we're just going to change it.
It's going to generate the same code, but the multiplication is arguably
easier to read (or harder to misread).
--
Jens Axboe
On Fri, Apr 21, 2023 at 04:24:57PM -0600, Jens Axboe wrote:
> On 4/21/23 4:02 PM, Luis Chamberlain wrote:
> > On Fri, Apr 21, 2023 at 09:14:00PM +0100, Matthew Wilcox wrote:
> >> On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
> >>> Just use the PAGE_SECTORS generic define. This produces no functional
> >>> changes. While at it use left shift to simplify this even further.
> >>
> >> How is FOO << 2 simpler than FOO * 4?
> >>
> >>> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> >>> + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
> >
> > We could just do:
> >
> >
> > - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> > + return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
> >
> > The shift just seemed optimal if we're just going to change it.
>
> It's going to generate the same code, but the multiplication is arguably
> easier to read (or harder to misread).
Then let's stick with the 4 * PAGE_SECTORS. Let me know if you need another
patch.
Luis
On Fri, Apr 21, 2023 at 03:02:30PM -0700, Luis Chamberlain wrote:
> On Fri, Apr 21, 2023 at 09:14:00PM +0100, Matthew Wilcox wrote:
> > On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
> > > Just use the PAGE_SECTORS generic define. This produces no functional
> > > changes. While at it use left shift to simplify this even further.
> >
> > How is FOO << 2 simpler than FOO * 4?
> >
> > > - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> > > + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
>
> We could just do:
>
>
> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> + return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
Yes, please.
> The shift just seemed optimal if we're just going to change it.
Nope, it's just premature optimisation at the expense of
maintainability. The compiler will optimise the multiplication into
shifts if that is the fastest way to do it for the given
architecture the code is being compiled to.
-Dave.
--
Dave Chinner
[email protected]
On 4/21/23 4:30?PM, Luis Chamberlain wrote:
> On Fri, Apr 21, 2023 at 04:24:57PM -0600, Jens Axboe wrote:
>> On 4/21/23 4:02?PM, Luis Chamberlain wrote:
>>> On Fri, Apr 21, 2023 at 09:14:00PM +0100, Matthew Wilcox wrote:
>>>> On Fri, Apr 21, 2023 at 12:58:05PM -0700, Luis Chamberlain wrote:
>>>>> Just use the PAGE_SECTORS generic define. This produces no functional
>>>>> changes. While at it use left shift to simplify this even further.
>>>>
>>>> How is FOO << 2 simpler than FOO * 4?
>>>>
>>>>> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
>>>>> + return bioset_init(&iomap_ioend_bioset, PAGE_SECTORS << 2,
>>>
>>> We could just do:
>>>
>>>
>>> - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
>>> + return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
>>>
>>> The shift just seemed optimal if we're just going to change it.
>>
>> It's going to generate the same code, but the multiplication is arguably
>> easier to read (or harder to misread).
>
> Then let's stick with the 4 * PAGE_SECTORS. Let me know if you need another
> patch.
Just send out a v2 at some point, you've also got a number of cases
where there are superfluous parenthesis, at least in patch 4, and Willy
pointed one out in an earlier patch too. Didn't check the last one.
This will be 6.5 anyway I think, I already sent out the changes for the
6.4 merge window.
--
Jens Axboe
On Sat, Apr 22, 2023 at 08:34:20AM +1000, Dave Chinner wrote:
> >
> > - return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE),
> > + return bioset_init(&iomap_ioend_bioset, 4 * PAGE_SECTORS,
>
> Yes, please.
>
> > The shift just seemed optimal if we're just going to change it.
>
> Nope, it's just premature optimisation at the expense of
> maintainability. The compiler will optimise the multiplication into
> shifts if that is the fastest way to do it for the given
> architecture the code is being compiled to.
We still had cases of the compiler not doing obvious
multiplication/division to shift conversion lately. That being said:
1) this is an initialization path, no one actually cares
2) we're dealing with constants here, and compilers are really good
at constant folding
so yes, this should be using the much more readable version.