From: Nicolas Schier <nsc@kernel.org>
To: David Disseldorp <ddiss@suse.de>
Cc: linux-kbuild@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-next@vger.kernel.org
Subject: Re: [PATCH v2 3/7] gen_init_cpio: attempt copy_file_range for file data
Date: Mon, 18 Aug 2025 20:40:39 +0200 [thread overview]
Message-ID: <aKNzpz3ibFDQwdSQ@levanger> (raw)
In-Reply-To: <20250814054818.7266-4-ddiss@suse.de>
On Thu, Aug 14, 2025 at 03:18:01PM +1000, David Disseldorp wrote:
> The copy_file_range syscall can improve copy performance by cloning
> extents between cpio archive source and destination files.
> Existing read / write based copy logic is retained for fallback in case
> the copy_file_range syscall is unsupported or unavailable due to
> cross-filesystem EXDEV, etc.
>
> Clone or reflink, as opposed to copy, of source file extents into the
> output cpio archive may (e.g. on Btrfs and XFS) require alignment of the
> output to the filesystem block size. This could be achieved by inserting
> padding entries into the cpio archive manifest.
>
> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---
> usr/gen_init_cpio.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
Thanks. I like introducing copy_file_range() here, it reduces the cpio
generation time on my system by a about 30% on a btrfs filesystem.
May cpio_mkfile_csum() now the slowest part?
Kind regards,
Nicolas
next prev parent reply other threads:[~2025-08-18 18:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-14 5:17 [PATCH v2 0/7] gen_init_cpio: add copy_file_range / reflink support David Disseldorp
2025-08-14 5:17 ` [PATCH v2 1/7] gen_init_cpio: write to fd instead of stdout stream David Disseldorp
2025-08-18 18:40 ` Nicolas Schier
2025-08-14 5:18 ` [PATCH v2 2/7] gen_init_cpio: support -o <output_path> parameter David Disseldorp
2025-08-18 18:40 ` Nicolas Schier
2025-08-14 5:18 ` [PATCH v2 3/7] gen_init_cpio: attempt copy_file_range for file data David Disseldorp
2025-08-18 18:40 ` Nicolas Schier [this message]
2025-08-19 0:20 ` David Disseldorp
2025-08-14 5:18 ` [PATCH v2 4/7] gen_init_cpio: avoid duplicate strlen calls David Disseldorp
2025-08-14 5:18 ` [PATCH v2 5/7] gen_initramfs.sh: use gen_init_cpio -o parameter David Disseldorp
2025-08-18 18:40 ` Nicolas Schier
2025-08-14 5:18 ` [PATCH v2 6/7] docs: initramfs: file data alignment via name padding David Disseldorp
2025-08-14 5:18 ` [PATCH v2 7/7] gen_init_cpio: add -a <data_align> as reflink optimization David Disseldorp
2025-08-18 19:23 ` Nicolas Schier
2025-08-21 8:10 ` David Disseldorp
2025-08-18 18:40 ` [PATCH v2 0/7] gen_init_cpio: add copy_file_range / reflink support Nicolas Schier
2025-08-18 23:46 ` David Disseldorp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aKNzpz3ibFDQwdSQ@levanger \
--to=nsc@kernel.org \
--cc=ddiss@suse.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.