From nobody Wed Sep 20 20:41:45 2023 X-Original-To: doc@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 4RrVnQ2KdZz4v8Ss for ; Wed, 20 Sep 2023 20:41:46 +0000 (UTC) (envelope-from bugzilla-noreply@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 4RrVnQ1Jt4z4KgT for ; Wed, 20 Sep 2023 20:41:46 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1695242506; a=rsa-sha256; cv=none; b=VqTV3ymhCvfrdzIMMZZlh7YCyGCq69piA82qYoCnhfmQZt+UR6URdOA3Vv2Gp4gaL020Gf PlxCqm0jQUJqzHkNgz39rm3Vm4Mkqjdh/oJtmCmf5MgJ455dtn+Kwa2ByvsLSbp9IWuabf 4vhBGamrchQrL9aCl7bMkbW5NcBiQ5rr10oD3yz8Eus+YyzXDZbgd5St1NLnCTk7U560m0 pqO01bX7mfXU/DYJXTHI+kSmc2x+QGuxFptlV6/FyozLNr38Kr1dvfevi6RiU7bvqekBlJ AtCH9vo089KBNwuVtpimPGxXIcsRdqflmhNzATSopykwevjXVvNNNRSeRoaSqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695242506; 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: in-reply-to:in-reply-to:references:references; bh=7y+/Ih/ahVEFd0fDB/L0T1z9VO65frhpgZHH4hPbRSE=; b=vdGwdxyv6iXlGgZm3ALS9m0SF77r90/NY6JBKTMy67g+7cdgIzMJREfs6EQUULyRHMhvHw RLBn6SRa5X2yASUERsuyEZZ4up1rPpWRr2YiQSgzxM8jI36zwPepkUP4VtFGYXxTNGbAv3 KeXsRaQ6TzxzAFvEhmzyLbIzIzCBFuse58NRoKS/kvBPklrtffnN+5GtyV4WUNeO5dazZH xmGN+ryHr1MMbjyGW3fvITgfhQxaxHhKmGQb8eSQs4lmt+VTa2eej5O4AI8M24rpbvhzUY mNqZZpGlhU7HKKISKEYB02/FgbxmGq1BU7Fy2eFbnVnrgG8WwfbORTSCtwAbWQ== Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (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 4RrVnQ03RYz198S for ; Wed, 20 Sep 2023 20:41:46 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 38KKfjut071170 for ; Wed, 20 Sep 2023 20:41:45 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 38KKfjwZ071169 for doc@FreeBSD.org; Wed, 20 Sep 2023 20:41:45 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: doc@FreeBSD.org Subject: [Bug 273962] copy_file_range does not work on shared memory objects Date: Wed, 20 Sep 2023 20:41:45 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Documentation X-Bugzilla-Component: Manual Pages X-Bugzilla-Version: Latest X-Bugzilla-Keywords: needs-patch X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: rmacklem@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated List-Id: Documentation project List-Archive: https://lists.freebsd.org/archives/freebsd-doc List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-doc@freebsd.org MIME-Version: 1.0 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D273962 --- Comment #4 from Rick Macklem --- Long ago when I first worked on 6th edition (late 1970s) there was the "everything was a file" philosophy. However, things like shared emeory did not exist. The fact that the code does not use vnodes suggests they are not files to me. Right now the code (including vn_generic_copy_file_range() which is the fallback) uses vnodes. (The error is actually returned because there is no vnode associated with the file descriptor.) To do this would require a separate chunk of code directly under the syscall to do the copying. A simple loop doing shm_read()/shm_write() should work, I'd guess (but it will need to be done as a special case when there are no vnodes) and needs to check for "no overlapping region", since that is part of the syscall interface. The original intent of copy_file_range(2) was to enable file systems to optimize copying, such as NFSv4 doing the copy locally in the NFS server instead of reading data to the client and writing it back to the server. (The fallback was implemented to simplify the case where the file system does not have a specific VOP_COPY_FILE_RANGE().) Since this case is not file system related, the above does not really apply. (I suppose do so saves a few syscalls.) I will ask on freebsd-fs@ to see if others feel this capability is needed. Feel free to come up with a patch. If others do not, I may do so someday. (It would be called from kern_copy_file_range() when f_vnode =3D=3D NULL.) --=20 You are receiving this mail because: You are on the CC list for the bug.=