On Wed, 22 Mar 2023 at 12:14, Jonathan Wakely wrote: > > > On Mon, 20 Mar 2023 at 22:30, Jonathan Wakely via Libstdc++ < > libstdc++@gcc.gnu.org> wrote: > >> On 20/03/23 22:27 +0000, Jonathan Wakely wrote: >> >On 06/03/23 20:52 +0100, Jannik Glückert wrote: >> >>we were previously only using sendfile for files smaller than 2GB, as >> >>sendfile needs to be called repeatedly for files bigger than that. >> >> >> >>some quick numbers, copying a 16GB file, average of 10 repetitions: >> >> old: >> >> real: 13.4s >> >> user: 0.14s >> >> sys : 7.43s >> >> new: >> >> real: 8.90s >> >> user: 0.00s >> >> sys : 3.68s >> >> >> >>Additionally, this fixes >> >>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108178 >> >> >> >>libstdc++-v3/ChangeLog: >> >> >> >> * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): define >> >> * config.h.in: Regenerate. >> >> * configure: Regenerate. >> >> * src/filesystem/ops-common.h: enable sendfile for files >> >> >2GB in std::filesystem::copy_file, skip zero-length files >> >> Also, the ChangeLog entry needs to be indented with tabs, name the >> changed functions, and should be complete sentences, e.g. >> >> * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define. >> * config.h.in: Regenerate. >> * configure: Regenerate. >> * src/filesystem/ops-common.h (copy_file_sendfile): Define new >> function for sendfile logic. Loop to support large files. Skip >> zero-length files. >> (do_copy_file): Use it. >> >> > Here's what I plan to commit in a few weeks when GCC 14 Stage 1 opens. > > > And similarly for the copy_file_range change.