Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Nov 2022 19:04:22 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Warner Losh <imp@bsdimp.com>, dev-commits-src-main@freebsd.org
Cc:        Alexander@leidinger.net, Li-Wen Hsu <lwhsu@freebsd.org>
Subject:   Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script
Message-ID:  <8DB9C862-3765-482E-A141-4B570ADEDA48@yahoo.com>
In-Reply-To: <D1769C20-614F-444B-B75A-ED8D563681DA@yahoo.com>
References:  <D1769C20-614F-444B-B75A-ED8D563681DA@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Nov 7, 2022, at 16:34, Mark Millard <marklmi@yahoo.com> wrote:

> Warner Losh <imp_at_bsdimp.com> wrote on
> Date: Mon, 07 Nov 2022 21:23:11 UTC :
>=20
>> On Mon, Nov 7, 2022 at 4:15 AM Alexander Leidinger =
<Alexander@leidinger.net>
>> wrote:
>>=20
>>>=20
>> . . .
>>>=20
>>> And this brings me to a second topic, we don't have an explicit list
>>> of features which are supported by the bootloader (I had a look at =
the
>>> zfs and the boot related man pages, if I overlooked a place, then =
the
>>> other places should reference this important part with some text).
>>>=20
>>=20
>> There is a fixed list of features we support in the boot loader:
>>=20
>> /*
>> * List of ZFS features supported for read
>> */
>> static const char *features_for_read[] =3D {
>> "org.illumos:lz4_compress",
>> "com.delphix:hole_birth",
>> "com.delphix:extensible_dataset",
>> "com.delphix:embedded_data",
>> "org.open-zfs:large_blocks",
>> "org.illumos:sha512",
>> "org.illumos:skein",
>> "org.zfsonlinux:large_dnode",
>> "com.joyent:multi_vdev_crash_dump",
>> "com.delphix:spacemap_histogram",
>> "com.delphix:zpool_checkpoint",
>> "com.delphix:spacemap_v2",
>> "com.datto:encryption",
>> "com.datto:bookmark_v2",
>> "org.zfsonlinux:allocation_classes",
>> "com.datto:resilver_defer",
>> "com.delphix:device_removal",
>> "com.delphix:obsolete_counts",
>> "com.intel:allocation_classes",
>> "org.freebsd:zstd_compress",
>> "com.delphix:bookmark_written",
>> "com.delphix:head_errlog",
>=20
> As an example of a more general question
> (referencing a zpool feature, if I understand
> right):
>=20
> com.delphix:head_errlog in the loaders from
> 13.1-RELEASE? 13.1-RELEASE-p3? 12.3-RELEASE*?
> (The future 12.4-RELEASE?)
>=20
> head_errlog is an interesting example because of
> "man zpool-features" reporting the below --and it
> being fairly new:
>=20
> "READ-ONLY COMPATIBLE  no"
> and:
> "This feature becomes active as soon as it is enabled and will
> never return to being enabled."
>=20
> I guess the loader avoids types of read activity that cause the
> more general "READ-ONLY COMPATIBLE  no" status.
>=20
> (I use the example just because I've indirectly
> run into it before, but in a more limited context.
> It may not be the best of examples for the general
> question.)
>=20
> Does each RELEASE and release-update get its own,
> documented zpool feature list for its loaders?
> (There might be a question for a zfs vs. zpool
> feature distinction as well?)
>=20
>> "org.openzfs:blake3",
>> NULL
>> };
>=20
> The overall list definitely goes beyond what is
> listed in:
>=20
> /usr/share/zfs/compatibility.d/openzfs-2.1-freebsd
>=20
>> Any feature not on this list will cause the boot loader to reject the =
pool.
>>=20
>> Whether or not it should do that by default, always, or never is an =
open
>> question. I've thought there should be a 'shoot footing' override =
that isn't
>> there today.
>=20
>=20

As I am not familiar with all the zpool features, I
did some exploration. An FYI from it follows.

(I originally built a list with things interlaced
but the reordering made it more readable. The
history explains some of the notation.)


In openzfs-2.1-freebsd list but not in Warner's list:

async_destroy           : not in Warner's list
bookmarks               : not in Warner's list
device_rebuild          : not in Warner's list
draid                   : not in Warner's list
empty_bpobj             : not in Warner's list
enabled_txg             : not in Warner's list
filesystem_limits       : not in Warner's list
livelist                : not in Warner's list
log_spacemap            : not in Warner's list
project_quota           : not in Warner's list
redacted_datasets       : not in Warner's list
redaction_bookmarks     : not in Warner's list
userobj_accounting      : not in Warner's list


Not in openzfs-2.1-freebsd list but in Warner's list:

not in openzfs-2.1-freebsd	: com.delphix:head_errlog
not in openzfs-2.1-freebsd	: org.openzfs:blake3
  =20
Not in openzfs-2.1-freebsd list nor in Warner's list:
(These are listed in "man zpool-features", as are the
rest of the various names listed.)

edonr
zilsaxattr


In both openzfs-2.1-freebsd list and in Warner's list:

allocation_classes      : org.zfsonlinux:allocation_classes
bookmark_v2             : com.datto:bookmark_v2
bookmark_written        : com.delphix:bookmark_written
device_removal          : com.delphix:device_removal
embedded_data           : com.delphix:embedded_data
encryption              : com.datto:encryption
extensible_dataset      : com.delphix:extensible_dataset
hole_birth              : com.delphix:hole_birth
large_blocks            : org.open-zfs:large_blocks
large_dnode             : org.zfsonlinux:large_dnode
lz4_compress            : org.illumos:lz4_compress
multi_vdev_crash_dump   : com.joyent:multi_vdev_crash_dump
obsolete_counts         : com.delphix:obsolete_counts
resilver_defer          : com.datto:resilver_defer
sha512                  : org.illumos:sha512
skein                   : org.illumos:skein
spacemap_histogram      : com.delphix:spacemap_histogram
spacemap_v2             : com.delphix:spacemap_v2
zpool_checkpoint        : com.delphix:zpool_checkpoint

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8DB9C862-3765-482E-A141-4B570ADEDA48>