mbox series

[0/2] btrfs-progs: move block-group-tree out of experimental features

Message ID cover.1681180159.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs-progs: move block-group-tree out of experimental features | expand

Message

Qu Wenruo April 11, 2023, 2:31 a.m. UTC
People are complaining block-group-tree features are not accessible for
non-experimental builds.

So let's make it a stable feature.

Since we're here, it's also a good time to deprecate
-R|--runtime-features option.

Qu Wenruo (2):
  btrfs-progs: mkfs: make -R|--runtime-features option deprecated
  btrfs-progs: move block-group-tree out of experimental features

 Documentation/btrfs-man5.rst |  6 ++++++
 Documentation/btrfstune.rst  |  4 ++--
 Documentation/mkfs.btrfs.rst | 30 +++++++++---------------------
 common/fsfeatures.c          |  8 --------
 mkfs/main.c                  |  3 ++-
 tune/main.c                  | 18 ++++++++----------
 6 files changed, 27 insertions(+), 42 deletions(-)

Comments

David Sterba April 13, 2023, 4:20 p.m. UTC | #1
On Tue, Apr 11, 2023 at 10:31:04AM +0800, Qu Wenruo wrote:
> People are complaining block-group-tree features are not accessible for
> non-experimental builds.
> 
> So let's make it a stable feature.
> 
> Since we're here, it's also a good time to deprecate
> -R|--runtime-features option.

As a major release is near it's a good time to do such changes. Merging
-R back to -O is OK. I looked again how robust the conversion to bgt is
wrt to a crash in the middle. If the process is restarted it should be
fine, though I'm not sure what happens when the fs would be mounted and
written to with the ongoing conversion.

We don't have any test coverage of the feature, at least what is
possible from user space. Mount and other things need kernel 6.1 which
is not in CI.
Qu Wenruo April 13, 2023, 10:55 p.m. UTC | #2
On 2023/4/14 00:20, David Sterba wrote:
> On Tue, Apr 11, 2023 at 10:31:04AM +0800, Qu Wenruo wrote:
>> People are complaining block-group-tree features are not accessible for
>> non-experimental builds.
>>
>> So let's make it a stable feature.
>>
>> Since we're here, it's also a good time to deprecate
>> -R|--runtime-features option.
> 
> As a major release is near it's a good time to do such changes. Merging
> -R back to -O is OK. I looked again how robust the conversion to bgt is
> wrt to a crash in the middle. If the process is restarted it should be
> fine, though I'm not sure what happens when the fs would be mounted and
> written to with the ongoing conversion.

It would be rejected by kernel, as I intentionally introduced a super 
flag which kernel is not aware of (SUPER_FLAG_CHANGING_BG_TREE).

> 
> We don't have any test coverage of the feature, at least what is
> possible from user space. Mount and other things need kernel 6.1 which
> is not in CI.

Yeah, that's one of the problem unfortunately.

Thanks,
Qu
David Sterba April 13, 2023, 11:25 p.m. UTC | #3
On Fri, Apr 14, 2023 at 06:55:36AM +0800, Qu Wenruo wrote:
> 
> 
> On 2023/4/14 00:20, David Sterba wrote:
> > On Tue, Apr 11, 2023 at 10:31:04AM +0800, Qu Wenruo wrote:
> >> People are complaining block-group-tree features are not accessible for
> >> non-experimental builds.
> >>
> >> So let's make it a stable feature.
> >>
> >> Since we're here, it's also a good time to deprecate
> >> -R|--runtime-features option.
> > 
> > As a major release is near it's a good time to do such changes. Merging
> > -R back to -O is OK. I looked again how robust the conversion to bgt is
> > wrt to a crash in the middle. If the process is restarted it should be
> > fine, though I'm not sure what happens when the fs would be mounted and
> > written to with the ongoing conversion.
> 
> It would be rejected by kernel, as I intentionally introduced a super 
> flag which kernel is not aware of (SUPER_FLAG_CHANGING_BG_TREE).

Ah right, all the CHANGING bits are automatically rejected, we don't
need to define them in kernel.

> > We don't have any test coverage of the feature, at least what is
> > possible from user space. Mount and other things need kernel 6.1 which
> > is not in CI.
> 
> Yeah, that's one of the problem unfortunately.

I'm revisiting all tests due to the changes in CI, for example the
defaults from 5.15 are not reflected in mkfs tests so I'm going to
update that and will add the block-group-tree tests too.