Re: changes to the zfs boot (was: Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script)
Date: Wed, 09 Nov 2022 19:39:49 UTC
Quoting Warner Losh <imp@bsdimp.com> (from Wed, 9 Nov 2022 08:54:33 -0700): > On Wed, Nov 9, 2022 at 5:46 AM Alexander Leidinger <Alexander@leidinger.net> > wrote: > >> Quoting Alexander Leidinger <Alexander@leidinger.net> (from Tue, 08 >> Nov 2022 10:50:53 +0100): >> > Should the above list be sorted in some way? Maybe in the same order >> > as the zpool-features lists them (sort by feature name after the >> > colon), or alphabetical? >> >> Is it OK if I commit this alphabetical sorting? [diff of feature-sorting] > > This patch looks good because it's a nop and just tidies things up a bit. > > Reviewed by: imp Will do later. >> > As Mark already mentioned some flags, I checked the features marked >> > as read only (I checked in the zpool-features man page, including >> > the dependencies documented there) and here are those not listed in >> > zfsimpl.c. I would assume as they are read-only compatible, we >> > should add them: >> > com.delphix:async_destroy >> > com.delphix:bookmarks >> > org.openzfs:device_rebuild >> > com.delphix:empty_bpobj >> > com.delphix:enable_txg >> > com.joyent:filesystem_limits >> > com.delphix:livelist >> > com.delphix:log_spacemap >> > com.zfsonlinux:project_quota >> > com.zfsonlinux:userobj_accounting >> > com.openzfs:zilsaxattr >> >> If my understanding is correct that the read-only compatible parts >> (according to the zpool-features man page) are safe to add to the zfs >> boot, here is what I have only build-tested (relative to the above >> alphabetical sorting): >> ---snip--- >> --- zfsimpl.c_sorted 2022-11-09 12:55:06.346083000 +0100 >> +++ zfsimpl.c 2022-11-09 13:01:24.083364000 +0100 >> @@ -121,24 +121,35 @@ >> "com.datto:bookmark_v2", >> "com.datto:encryption", >> "com.datto:resilver_defer", >> + "com.delphix:async_destroy", >> "com.delphix:bookmark_written", >> + "com.delphix:bookmarks", >> "com.delphix:device_removal", >> "com.delphix:embedded_data", >> + "com.delphix:empty_bpobj", >> + "com.delphix:enable_txg", >> "com.delphix:extensible_dataset", >> "com.delphix:head_errlog", >> "com.delphix:hole_birth", >> + "com.delphix:livelist", >> + "com.delphix:log_spacemap", >> "com.delphix:obsolete_counts", >> "com.delphix:spacemap_histogram", >> "com.delphix:spacemap_v2", >> "com.delphix:zpool_checkpoint", >> "com.intel:allocation_classes", >> + "com.joyent:filesystem_limits", >> "com.joyent:multi_vdev_crash_dump", >> + "com.openzfs:zilsaxattr", >> + "com.zfsonlinux:project_quota", >> + "com.zfsonlinux:userobj_accounting", >> "org.freebsd:zstd_compress", >> "org.illumos:lz4_compress", >> "org.illumos:sha512", >> "org.illumos:skein", >> "org.open-zfs:large_blocks", >> "org.openzfs:blake3", >> + "org.openzfs:device_rebuild", >> "org.zfsonlinux:allocation_classes", >> "org.zfsonlinux:large_dnode", >> NULL >> ---snip--- >> >> Anyone able to test some of those or confirms my understanding is >> correct and would sign-off on a "reviewed by" level? >> > > I'm inclined to strongly NAK this patch, absent some way to test it. > There's no issues today with any of them being absent causing > problems on boot that have been reported. The ZFS that's in the > boot loader is a reduced copy of what's in base and not everything is > supported. There's no urgency here to rush into this. The ones that > are on the list already are for things that we know we support in the > boot loader because we've gone to the trouble to put blake3 or sha512 > into it (note: Not all boot loaders will support all ZFS features in the > future... x86 BIOS booting likely is going to have to be frozen at its > current ZFS feature set due to code size issues). > > While most of these options look OK on the surface, I'd feel a lot better > if there were tests for these to prove they work. I'd also feel better if > the ZFS experts could explain how those come to be set on a zpool > as well. I'd settle for a good script that could be run as root (better > would be not as root) that would take a filesystem that was created > by makefs -t zfs and turn on these features after an zpool upgrade. > I have the vague outlines of a test suite for the boot loader that I > could see about integrating something like that into, but most of my > time these days is chasing after 'the last bug' in some kboot stuff I'm > working on (which includes issues with our ZFS in the boot loader > integration). > > So not a hard no, but I plea for additional scripts to create images > that can be tested. I didn't want to commit untested or unverified stuff. I fully agree with your reasoning. Bye, Alexander. -- http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org netchild@FreeBSD.org : PGP 0x8F31830F9F2772BF