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>