From nobody Mon Sep 18 23:21:50 2023 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RqLRQ44V0z4tvDw for ; Mon, 18 Sep 2023 23:22:10 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic307-8.consmr.mail.gq1.yahoo.com (sonic307-8.consmr.mail.gq1.yahoo.com [98.137.64.32]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4RqLRP3h03z3R98 for ; Mon, 18 Sep 2023 23:22:09 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=rK29VC1l; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.64.32 as permitted sender) smtp.mailfrom=marklmi@yahoo.com; dmarc=pass (policy=reject) header.from=yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1695079327; bh=Q7NUPHOKqpuByel293uPsM79Zf3bqniKHDR2/6rvBjg=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject:Reply-To; b=rK29VC1lanWmf9MG+bhYTm0ghj/VfYrpPzx2J+Ncocp6JHyB2K/W74Lh3qW/gwoTsJ1eyNJ0z85DpKoL6IHzlLOgpOe7gBVb3Bg/adxnQ9gVyMKpsEIBbAEHIfWO0gJ1dbRwzQYF1/SFbd5/hoL2YEiwDBBL9V9BQPmAWpI/gbMMc2dhXdORm4bX+7spftAXi8UhH5YfwXeadjnd/prsFMRX3RiNFCuJqlOcMvI6RvnWvuGVGGGNUz2uQRdOqKNapbRFlMjUW58AMlgYUogRM0DDUXZTled0PKClCXsuckkkFItATYApcQJ/1ui47+g7wwywQyVDRySqB1Y7OeHrSg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1695079327; bh=ypZkxhxV/ixmlUnwkj4/rSAHPreW1QOjFwK7hm68psK=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=ZqKToB8QaKOCnPS6cDwpyVGPwc3NXkCVCfXI6LsZniCXQ7WxvVq0m89vPFyAGApRcNRSr4OVVVe+jgL6Rf+JlQ5sXVFh+eCDKRGCgOa7/J9WpgbxteLeKOrV1kw80Q8yKMbY1fAv1umYHIFcTjIkme7aUlRBOEW8/DbvBKdOfLm+nH91eEOpMqO5VoJGNNDZ1vpPURJXwCtxVeJqEQZdopmgMHuyrcBRN7QgztDZQOBAhAAQrUHJm5mjMLbIzQtw10hrBboFqrDtlfdWle2IUdJlYPfBVJ1cq8mxemCxIpt1pBi1lquPP+Xuy/aWw5zlVqsbyMEt1AYzhOq3hT9lNw== X-YMail-OSG: ORJyCT4VM1kSy.vt3YU3rzyQTqNDjsUQruQCP7Klg.V4wOGsIRcT8YQaZtmljyr RlWoxrfpI2aO_om65obUYPK6Gr_oxGOZePQpwdwpZUIsOej7GivH4dZb24ePWgCcbZfU_j0asn.U VAFjuYFvVL1hEcQszNdoILQ4gSILFcWKZzOIU7T.6_G7d9uPFU7pJA3Pwha_I34pIl2DCvMyDa1e 8aPiCH7fWytkSEelxFbH5PUOfObe2xDC6UGVshlcFRuo1eKnVsIzHEjkcIPXy.9KqxVxXRNt16vC DS9aI6YDQlZ5_0WByWkbkyLnMTBLUjY5JY3xb5A_Jqfao0ERUIwkU5LVLinFfN.e3tvTw7MG9PUf FsYe7kI_4OYLko8emaViGs85JSPVKMsS_z9ro3rNd_Evz1F6.MBDfLC2RxrtL70Qc953oOwkIGK_ .SLrprbxWf2Rcw4EEh9XJ89bme5kpN5aHZzP7AS9j2djU.2PMSO2XcgWGizLNNJhr2j6oZ.O60t3 DOEmIf07cvhCCuXmVoJ5JmB7A5IdI.PyeJ_FOpiJ0jeFPJ53e4nmC1S7PIdpIuSno1xOuUvkEc4W aapsF3P66IrPu3vsjgu3_zDQl2KW.uVUuUfM9CsM0e.hiv9n_MVoZ8khwuD7YXqmaBFzyUWMZc0g FFZOMyY_wfrCHMPMAuPahjOkHO9_xWDNxiurw8GTy2SduTrqt_Zt9ixFrS94Mfmw.JimlEV_IY5q Z6D_HfauSn3dBWVfaWkR8..jzot30pFE2NOLIKgndqL4cSF4vfIOo0VShInyb9UUyJe54U1.hZe2 tM2rcTXcIcO_ZAKMjHuTkuvuO4g33uR4M8UlHfiuXllRLWO4_i3zY6VAmMY7ascuDi_iI84mG2tp uGRIgBRvv9s5aC7S8_enZsR6m16SQh0JyArMIvSPUxCkNVCqBiCh8Pd7X_XvCChHOPTF5bY1JWYL sHWIcR_aufx5eX.08Invlw9UkbrSApixTcgjCfnZFK31amzA4kihVTFWLhMmlG0PBiGNFBGgDrLt wuW88scfPkec2p0PsiYWzx5EuvXlktFeduWxjS_qeBJysQ2WhCsRAZFNNvwM6SV8u8qcHYOs0jZ7 gPgLvj7qpX8oPZGJuK3riV.B6oc9rKUfxwaPKZOGmVM67ilubtGWwA6UaXNJ0uIpQd6C.L1bIy4u gKxyDfBtVqS5Yvejdhv9yQMtbMnDaDgJccV7ibMmMbywnSxhCErXjhsEzw9HA.8nnSMr4crEPhwv coxZUjT6rjnQc5uEVPo92x5XBfrYabdeR6NCBK5c9kD1NnulntkkmkFrULPOiFSOPimMBWQLQZIi zD88ZiNhwThoavr0OSm2O8OUc5N6CKSf5LUMsrpxf3q3Wid1Iv3HqmMw.CCzhZXsd.e.PZeV2xvr SugNL.l7VZKLTK8KOpU7d3ontVapB.UMwMmYuquuFlaosC_NGN51lm2f4JZY0OyFPz1isICINh9g mTC8pnWbqi1aqOv5cw8thcmjvwSc_qEvCqKyAik8.JPsx9bgkglneU6es.OY4tEZ6vXbMk2JBNyM eu3jQTUpq0fN_kegQg5ZMyZY.qp_DBBpHkOAcMziiTNSZt.XTVO8xQdGFJLpIMjjgUmVJcamcKHX 7kCVkZemLRHiuPjl0eOcdhWzong5Sbr_VSVFARgs4L2G3K0_vAuEqfP30bqC1E2fdeXrcvEthYE4 LJESAi353mRhVfm30IwNU0EEM9RiftGrOcgLPHxn2RdmQJkZDaEQ5DoWru3BfP1qp3s2LGpZSYeT Fb.ZnyApkTrTVqfwEvj5pPAVWy5ElW2o89ao1a67iawYihW3bDf4CiEP4yVuxum5hacvJdGavHge M0FdtyNFKC9ZkGQ.fWFAudSK5L4cOry3t.yJ4QpdPN60yM_YHobKENhByiFB_.d2KEWeWbGWVTG2 fIAGQeMusUkkaLSV.ATCamBu0ruVwUD3f6jWluWOuLKF0PnJiC4l4TUNzrhXNdStxul2jsug3uBN MZBNm6qyq3S5qgNLDauoLGaHWIcwLA6QZryOUEm93M7fF0jZw6ePawEK6DvbrSba_VXwfO5I3zeY 9GMVL7RzCGudQ1YAGS6qCIiGoTo1_W2f1A4BxXhwFwjuq.al8Wse5PD1VX1ylfyJjSAM1l4B5J8z 9.OLgzCQehn4WH5Rr1OiRMHpvdLLaRBctukxppqwPHBhpdBHx92K6zCkw5qczN3P6UONKym3Zw1E pA5RroEaleMEttQCbcgFW.xjjU1zYvKy0hoFtZRDJNWXsRhfS94zTYemHIQ4XbNVAytVXbVxALjj Ytw-- X-Sonic-MF: X-Sonic-ID: ebb364b1-e2ea-4e5d-83d0-a4238a1a96d4 Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.gq1.yahoo.com with HTTP; Mon, 18 Sep 2023 23:22:07 +0000 Received: by hermes--production-bf1-678f64c47b-qxjnq (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID cd37fe10b6410ad50eee20a5739d1baa; Mon, 18 Sep 2023 23:22:03 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: vfs.zfs.bclone_enabled (was: FreeBSD 14.0-BETA2 Now Available) [block_cloning and zilsaxattr missing from loader's features_for_read] Date: Mon, 18 Sep 2023 16:21:50 -0700 References: <5C769ACC-F264-4BAB-AF7B-8C463A4BD99E@yahoo.com> To: Alexander Motin , Current FreeBSD , Warner Losh In-Reply-To: <5C769ACC-F264-4BAB-AF7B-8C463A4BD99E@yahoo.com> Message-Id: X-Mailer: Apple Mail (2.3731.700.6) X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.50 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.998]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_THREE(0.00)[3]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.64.32:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.64.32:from]; DKIM_TRACE(0.00)[yahoo.com:+]; TO_DN_ALL(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 4RqLRP3h03z3R98 On Sep 18, 2023, at 15:51, Mark Millard wrote: > Alexander Motin wrote on > Date: Mon, 18 Sep 2023 13:26:56 UTC : >=20 >> block_cloning feature is marked as READONLY_COMPAT. It should not=20 >> require any special handling from the boot code. >=20 > =46rom stand/libsa/zfs/zfsimpl.c but adding a comment about the > read-only compatibility status of each entry: >=20 > /* > * List of ZFS features supported for read > */ > static const char *features_e: vfs.zfs.bclone_enabled Sorry, a stupid error of mine messed up the above line. It should have been: static const char *features_for_read[] =3D { > "com.datto:bookmark_v2", // READ-ONLY COMPATIBLE no > "com.datto:encryption", // READ-ONLY COMPATIBLE no > "com.datto:resilver_defer", // READ-ONLY COMPATIBLE yes > "com.delphix:bookmark_written", // READ-ONLY COMPATIBLE no > "com.delphix:device_removal", // READ-ONLY COMPATIBLE no > "com.delphix:embedded_data", // READ-ONLY COMPATIBLE no > "com.delphix:extensible_dataset", // READ-ONLY COMPATIBLE no > "com.delphix:head_errlog", // READ-ONLY COMPATIBLE no > "com.delphix:hole_birth", // READ-ONLY COMPATIBLE no > "com.delphix:obsolete_counts", // READ-ONLY COMPATIBLE yes > "com.delphix:spacemap_histogram", // READ-ONLY COMPATIBLE yes > "com.delphix:spacemap_v2", // READ-ONLY COMPATIBLE yes > "com.delphix:zpool_checkpoint", // READ-ONLY COMPATIBLE yes > "com.intel:allocation_classes", // READ-ONLY COMPATIBLE yes > "com.joyent:multi_vdev_crash_dump", // READ-ONLY COMPATIBLE no > "com.klarasystems:vdev_zaps_v2", // READ-ONLY COMPATIBLE no > "org.freebsd:zstd_compress", // READ-ONLY COMPATIBLE no > "org.illumos:lz4_compress", // READ-ONLY COMPATIBLE no > "org.illumos:sha512", // READ-ONLY COMPATIBLE no > "org.illumos:skein", // READ-ONLY COMPATIBLE no > "org.open-zfs:large_blocks", // READ-ONLY COMPATIBLE no > "org.openzfs:blake3", // READ-ONLY COMPATIBLE no > "org.zfsonlinux:allocation_classes", // READ-ONLY COMPATIBLE = yes > "org.zfsonlinux:large_dnode", // READ-ONLY COMPATIBLE no > NULL > }; >=20 > So it appears that the design is that both "no" and "yes" ones > that are known to be supported are listed and anything else is > supposed to lead to rejection until explicitly added as > known-compatibile. >=20 > This matches up with stand/libsa/zfs/zfsimpl.c 's: >=20 > static int > nvlist_check_features_for_read(nvlist_t *nvl) > { > nvlist_t *features =3D NULL; > nvs_data_t *data; > nvp_header_t *nvp; > nv_string_t *nvp_name; > int rc; >=20 > rc =3D nvlist_find(nvl, ZPOOL_CONFIG_FEATURES_FOR_READ, > DATA_TYPE_NVLIST, NULL, &features, NULL); > switch (rc) { > case 0: > break; /* Continue with checks */ >=20 > case ENOENT: > return (0); /* All features are disabled */ >=20 > default: > return (rc); /* Error while reading nvlist */ > } >=20 > data =3D (nvs_data_t *)features->nv_data; > nvp =3D &data->nvl_pair; /* first pair in nvlist */ >=20 > while (nvp->encoded_size !=3D 0 && nvp->decoded_size !=3D 0) { > int i, found; >=20 > nvp_name =3D (nv_string_t *)((uintptr_t)nvp + = sizeof(*nvp)); > found =3D 0; >=20 > for (i =3D 0; features_for_read[i] !=3D NULL; i++) { > if (memcmp(nvp_name->nv_data, = features_for_read[i], > nvp_name->nv_size) =3D=3D 0) { > found =3D 1; > break; > } > } >=20 > if (!found) { > printf("ZFS: unsupported feature: %.*s\n", > nvp_name->nv_size, nvp_name->nv_data); > rc =3D EIO; > } > nvp =3D (nvp_header_t *)((uint8_t *)nvp + = nvp->encoded_size); > } > nvlist_destroy(features); >=20 > return (rc); > } >=20 > I do not know if vfs.zfs.bclone_enabled=3D0 leads the loader > to see vs. not-see a "com.fudosecurity:block_cloning". It appears that 2 additions afeter opebzfas-2.1-freebsd are missing from the above list: com.fudosecurity:block_cloning org.openzfs:zilsaxattr See, for reference (but shorter naming): # diff -u99 = /usr/main-src/sys/contrib/openzfs/cmd/zpool/compatibility.d/openzfs-2.1-fr= eebsd = /usr/main-src/sys/contrib/openzfs/cmd/zpool/compatibility.d/openzfs-2.2 --- = /usr/main-src/sys/contrib/openzfs/cmd/zpool/compatibility.d/openzfs-2.1-fr= eebsd 2021-06-24 20:08:57.206621000 -0700 +++ = /usr/main-src/sys/contrib/openzfs/cmd/zpool/compatibility.d/openzfs-2.2 = 2023-06-10 15:51:13.220607000 -0700 @@ -1,34 +1,40 @@ -# Features supported by OpenZFS 2.1 on FreeBSD +# Features supported by OpenZFS 2.2 on Linux and FreeBSD allocation_classes async_destroy +blake3 +block_cloning bookmark_v2 bookmark_written bookmarks device_rebuild device_removal draid +edonr embedded_data empty_bpobj enabled_txg encryption extensible_dataset filesystem_limits +head_errlog hole_birth large_blocks large_dnode livelist log_spacemap lz4_compress multi_vdev_crash_dump obsolete_counts project_quota redacted_datasets redaction_bookmarks resilver_defer sha512 skein spacemap_histogram spacemap_v2 userobj_accounting +vdev_zaps_v2 +zilsaxattr zpool_checkpoint zstd_compress ( openzfs-2.2 is not available from the standard place yet. ) The other "+" lines are in the list already. =3D=3D=3D Mark Millard marklmi at yahoo.com