Re: [PATCH 0/4] btrfs: Convert kmaps to core page calls

From: Andrew Morton
Date: Tue Feb 09 2021 - 17:29:14 EST


On Tue, 9 Feb 2021 16:11:23 +0100 David Sterba <dsterba@xxxxxxx> wrote:

> On Fri, Feb 05, 2021 at 03:23:00PM -0800, ira.weiny@xxxxxxxxx wrote:
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> >
> > There are many places where kmap/<operation>/kunmap patterns occur. We lift
> > these various patterns to core common functions and use them in the btrfs file
> > system. At the same time we convert those core functions to use
> > kmap_local_page() which is more efficient in those calls.
> >
> > I think this is best accepted through Andrew's tree as it has the mem*_page
> > functions in it. But I'd like to get an ack from David or one of the other
> > btrfs maintainers before the btrfs patches go through.
>
> I'd rather take the non-mm patches through my tree so it gets tested
> the same way as other btrfs changes, straightforward cleanups or not.
>
> This brings the question how to do that as the first patch should go
> through the MM tree. One option is to posptpone the actual cleanups
> after the 1st patch is merged but this could take a long delay.
>
> I'd suggest to take the 1st patch within MM tree in the upcoming merge
> window and then I can prepare a separate pull with just the cleanups.
> Removing an inter-tree patch dependency was a sufficient reason for
> Linus in the past for such pull requests.

It would be best to merge [1/4] via the btrfs tree. Please add my

Acked-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>


Although I think it would be better if [1/4] merely did the code
movement. Adding those BUG_ON()s is a semantic/functional change and
really shouldn't be bound up with the other things this patch series
does. This logically separate change raises questions such as

- What is the impact on overall code size? Not huge, presumably, but
every little bit hurts.

- Additional runtime costs of those extra comparisons?

- These impacts could be lessened by using VM_BUG_ON() rather than
BUG_ON() - should we do this?

- Linus reeeeeeeally doesn't like new BUG_ON()s. Maybe you can sneak
it past him ;)

See what I mean? I do think it would be best to take those assertions
out of the patch and to propose them separately, at a later time.