From nobody Fri Apr 7 15:50:35 2023 X-Original-To: dev-commits-src-main@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 4PtNB53GpBz43YTx; Fri, 7 Apr 2023 15:50:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PtNB363Lbz4Jw2; Fri, 7 Apr 2023 15:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680882635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TPz7EGif+8XDVuEipNt1NZ6Uekx1P4sE2JR9syg9YSQ=; b=BUNkEiXrUt4+miW1RybVi/RT9iZSqusH5fKOpht864xCePbjTwmWmsb75r7LxpiP+jYw+j UaxDDrTcnJiGFaVVoaVPyEhfeeF35FVM+DZjzS713eqfMpX+xZCO6HFfddhkewJt+13IS5 4AoT5UsNokSCREa9QFaRUB4wAnCtFJx3VfZBQ/9MRNu1fWI4WYbsGJ71bsEPajEtt9yAif LnaHeDtAtM+5c1Dm3+qJNOlN9yasWz9Z/Yj1Jp3tiyPLW+BGg5d6w5AxacmO2+SEtelfUe fRg2/smrX+qJ27rbHuFa4CetcU5ugmCxxbNjRzmLqgBpG4F08UdIgKH9OAKfHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680882635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TPz7EGif+8XDVuEipNt1NZ6Uekx1P4sE2JR9syg9YSQ=; b=is8vA86//PMm5mjXDjts1hfSZO7Jr+w+mUilry9NBs2/sdgJ/CHf4wtcR5LeLAsiuGeVVJ myMO2drLJDi1PK86TsyvyXURfn8PRKG4NMv4/LJnevsJ3CF05r6BvknLsMgdH548Lnpn63 D5jz93TYH3Wpob5cYuCf+iGNP+ypqGgoQOqyP72EPiAvaIUX57dtz2S8linwRuC/8vodT4 S6rhCe3dISqqCMaZVhsUXI+kg8JwGnK3UKIoB/agiE6iFBm36iypqNBkg33aif54X44BTh GMv9TQ4NEHC7SBq2yb2Cl+uCWBoCj/pqeoAixBdKob2rIlqw8apxAihAU2HL9A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1680882635; a=rsa-sha256; cv=none; b=eE45ZcPnY6Fm/VXQf68u01xzj8t3oReV6Hsd+EJDl60HeMZuwov68kJhEpFFLEAdzB9f9n oQNToy9pTXyorbd9u4qBjFgfKpn7bRQiSwN3WJa+tIak2F5uqQ1qwYVUyGmgowwk+Vxiva r1zDpj6aUcHKNFM3id2sAyxDqL+zdNtensCzNSMmWYp8IrrFUpcUG9cjblEdaM1ZQu6y5d 0U+1hOHfvwysSelOCLlTPFjmPnvRuFFOtkEWp9WFQcFvxvlaBVcd8ztcWx9XnpAdOgCc1H FVK8y2I0CmnJXZZPW5sOk87pY6UF0ZjyTmenTz0SVlbzXlfTJPHvEU5e1rpVCA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PtNB354YtzrNN; Fri, 7 Apr 2023 15:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 337FoZAI060794; Fri, 7 Apr 2023 15:50:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 337FoZao060793; Fri, 7 Apr 2023 15:50:35 GMT (envelope-from git) Date: Fri, 7 Apr 2023 15:50:35 GMT Message-Id: <202304071550.337FoZao060793@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik Subject: git: 20be1b4fc4b7 - main - zfs: try to fallback early if can't do optimized copy List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 20be1b4fc4b72f10d5f9411e5bbde0f46a98be5b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=20be1b4fc4b72f10d5f9411e5bbde0f46a98be5b commit 20be1b4fc4b72f10d5f9411e5bbde0f46a98be5b Author: Mateusz Guzik AuthorDate: 2023-04-05 20:42:28 +0000 Commit: Mateusz Guzik CommitDate: 2023-04-07 15:47:45 +0000 zfs: try to fallback early if can't do optimized copy Not complete, but already shaves on some locking. Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c index 67c1a6e3344b..2ddc7133d416 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c @@ -6236,6 +6236,7 @@ struct vop_copy_file_range_args { static int zfs_freebsd_copy_file_range(struct vop_copy_file_range_args *ap) { + zfsvfs_t *outzfsvfs; struct vnode *invp = ap->a_invp; struct vnode *outvp = ap->a_outvp; struct mount *mp; @@ -6251,6 +6252,13 @@ zfs_freebsd_copy_file_range(struct vop_copy_file_range_args *ap) */ vn_start_write(outvp, &mp, V_WAIT); + if (__predict_true(mp == outvp->v_mount)) { + outzfsvfs = (zfsvfs_t *)mp->mnt_data; + if (!spa_feature_is_enabled(dmu_objset_spa(outzfsvfs->z_os), + SPA_FEATURE_BLOCK_CLONING)) { + goto bad_write_fallback; + } + } if (invp == outvp) { if (vn_lock(outvp, LK_EXCLUSIVE) != 0) { goto bad_write_fallback;