From nobody Wed Aug 06 16:28:44 2025 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 4bxwj03SW2z63wcg for ; Wed, 06 Aug 2025 16:28:52 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-yw1-x112a.google.com (mail-yw1-x112a.google.com [IPv6:2607:f8b0:4864:20::112a]) (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-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bxwhz4ztRz3R79; Wed, 06 Aug 2025 16:28:51 +0000 (UTC) (envelope-from mavbsd@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=dA69eO+i; spf=pass (mx1.freebsd.org: domain of mavbsd@gmail.com designates 2607:f8b0:4864:20::112a as permitted sender) smtp.mailfrom=mavbsd@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=freebsd.org (policy=none) Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-71bbfbd994cso87507b3.0; Wed, 06 Aug 2025 09:28:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754497725; x=1755102525; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=SQkpw0DbUmMgj0ySSXktMIF5YtHQBC9l0UsA6+MUUh8=; b=dA69eO+i7BbRF1gMR1BX3dmeodDV7hAk9vjoJZ5OKYXlKB9VULgq0xfXDO9hMy8fKC fbS3DuJqixI2U7nqiaLgbO60G5BCk72cZOvCWPzFv/4iTDNjTu2m0MNz84fS7qakeA+j novpCq+AS5fnKeIF839xKt2xhkaBSb3Fxof7RJp6r7F91U70vCvUEzXVwn4jkD2T0WV+ MGAV43PAB+Cjobc81u1SzLcM4vD+tw98ByBRfTbPsLwDhPQqgXK2YIhNr6cMYIQpqZ1C 4cLdp+fEw0tsUUuwBIWHh0v+EvREgzaGEW8TDyPA8jOrqwc5pGu14nwAj53uNOrYsLgf 8Vxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754497725; x=1755102525; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SQkpw0DbUmMgj0ySSXktMIF5YtHQBC9l0UsA6+MUUh8=; b=VnPvIqWvfU5WulMvMYzWmIkfK+guE1hwv2iV5+zS3eQVipgSouYiP1qNLYwVu+yn/v 9yKnUSsc2O+j4XexUrMNwIge3ybUzSb+F+yvqUq25RIUYsBBg9o97BD/sMuDRQ88rR2X 3XcDBH+cTLUYK9Qq46MEDTYBH5pTsOBtCl2sprKvGoAKnE6eMpFqhBxvJEfNVl5sBPWw ZagCliHvNYO3sldkOaxl+uMDFD5B+ZhieMsPve8zYa7b+DlkfT4GdcD5A6L4f2bQ6Pi4 QHg2ZLPWZC+OkhRQNLCE/C0qysUBAV3wPILNDCE6ZI8twwWOIuoR2W+sdjRZXOiq6cY3 RPHw== X-Forwarded-Encrypted: i=1; AJvYcCWLe8VYWuyuqiOiFDWXWHR+EdW0TUnPH/hwt++xrMNivq236ac6UyWCCCYq6BEJqp5yfsCRXQXN@freebsd.org X-Gm-Message-State: AOJu0Yw0o/2in4jsPfxx6XWvV64iPTj0GofOY5WenZLbl3CJjGXhoTk3 04wTdvEzGO0D3mnyi8ZoDaK4o0n01qGNUyZ0s5wkWD4KkgR7X4lkmU6XsBn/Hw== X-Gm-Gg: ASbGncsslqtmnNKpQs0Qg6mABW7S5czGkt1oUFJR2HmyR5hdf1mXavfyZQeuBFGxgsV jepoaTIp7dSkWwueh6PpnSsCy7XRXjKdJsJWxPgUDOnq8eOJPvTclkOT22tj10lvg8usT/q9OQu nepajMPAU/vF/eLN92PJk+wmRjEZU2XY0hfwEpPuij1Yt4isYashzBHYww9BZKPsl1tzpLGnQrA xVZ/Lmogg9YnsZ/5klJhK3GbIEJmq8/MzZCI1Wcq8eYn8AAtswEZKVpcYaEYQBVn51EKYeMzl7s 7rSMO7R0CmEOSqbaRqBEDb0v1lsmS5vW1gFVCFoxRopNPKxH08YFxbt+UZGwKXYaICqx7ZnDXZC 7xid8r37PyvDkV9G28bBUACnOyHOW54eYS20NUwpfM+KqLTVgjGIVzqHTd4vEjJmtc7xpJmsod7 Sv X-Google-Smtp-Source: AGHT+IF1pARtpjwtQFKWUtN4SlPx0HngEbB7yJM+jeHGCjBVZIGlRD0ueWy2eWgRIOrDkOfVvG6ATw== X-Received: by 2002:a05:690c:3705:b0:710:f1da:1b5f with SMTP id 00721157ae682-71bcc8cefd6mr38019977b3.34.1754497725256; Wed, 06 Aug 2025 09:28:45 -0700 (PDT) Received: from ?IPV6:2600:1700:3580:3560:a236:9fff:fe4f:c69a? ([2600:1700:3580:3560:a236:9fff:fe4f:c69a]) by smtp.gmail.com with ESMTPSA id 00721157ae682-71b5a3fa654sm39996667b3.34.2025.08.06.09.28.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 06 Aug 2025 09:28:44 -0700 (PDT) Message-ID: <8925b735-8398-4e0f-95f7-8d1115413013@FreeBSD.org> Date: Wed, 6 Aug 2025 12:28:44 -0400 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 User-Agent: Mozilla Thunderbird Subject: Re: RFC: Does ZFS block cloning do this? To: Rick Macklem , Alan Somers Cc: FreeBSD CURRENT References: Content-Language: en-US From: Alexander Motin In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Result: default: False [-2.10 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FORGED_SENDER(0.30)[mav@FreeBSD.org,mavbsd@gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), DKIM not aligned (relaxed),none]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_TO(0.00)[gmail.com,freebsd.org]; ARC_NA(0.00)[]; TO_DN_ALL(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[gmail.com:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::112a:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[mav@FreeBSD.org,mavbsd@gmail.com]; RCPT_COUNT_THREE(0.00)[3]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; TAGGED_RCPT(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-Rspamd-Queue-Id: 4bxwhz4ztRz3R79 X-Spamd-Bar: -- Hi Rick, On 8/6/25 11:54, Rick Macklem wrote: > The difference for NFSv4.2 is that CLONE cannot return with partial completion. > (It assumes that a CLONE of any size will complete quickly enough for an RPC. > Although there is no fixed limit, most assume an RPC reply should happen in > 1-2sec at most. For COPY, the server can return with only part of the > copy done.) > It also includes alignment restrictions for the byte offsets. > > There is also the alignment restriction on CLONE. There doesn't seem to be > an alignment restriction on zfs_clone_range(), but maybe it is buried inside it? > I think adding yet another pathconf name to get the alignment requirement and > whether or not the file system supports it would work without any VOP change. The semantics you describe looks similar to Linux FICLONE/FICLONERANGE calls, that got adopted there before copy_file_range(). IIRC those effectively mean -- clone the file or its range as requested or fail. I am not sure why some people prefer those calls, explicitly not allowing fallback to copy, but theere are some, for example Veeam backup fails if ZFS rejects the cloning request for any reason. For Linux ZFS has a separate code (see zpl_remap_file_range() and respective VFS calls) wrapping around block cloning to implement this semantics. FreeBSD does not have the equivalent at this point, but it would be trivial to add, if we really need those VOPs. -- Alexander Motin