Re: git: 35b7759c05cb - main - cp: Fix build without VM_AND_BUFFER_CACHE_SYNCHRONIZED.
Date: Tue, 30 Aug 2022 15:15:45 UTC
On 8/30/22, Alexander Motin <mav@freebsd.org> wrote: > On 30.08.2022 11:02, Rick Macklem wrote: >> Mateusz Guzik <mjguzik@gmail.com> wrote: >>> On 8/30/22, Alexander Motin <mav@freebsd.org> wrote: >>>> The branch main has been updated by mav: >>>> >>>> URL: >>>> https://cgit.FreeBSD.org/src/commit/?id=35b7759c05cbc65c06d87141da79f0f80af0f458 >>>> >>>> commit 35b7759c05cbc65c06d87141da79f0f80af0f458 >>>> Author: Alexander Motin <mav@FreeBSD.org> >>>> AuthorDate: 2022-08-30 14:51:21 +0000 >>>> Commit: Alexander Motin <mav@FreeBSD.org> >>>> CommitDate: 2022-08-30 14:51:21 +0000 >>>> >>>> cp: Fix build without VM_AND_BUFFER_CACHE_SYNCHRONIZED. >>>> >>>> It allows to not use mmap() for small files, which is not helpful >>>> in case of ZFS. Should be no functional change. >>>> >>> >>> This should be of no use thanks to copy_file_range >> cp does not use copy_file_range(2) for small files, if I recall >> correctly. > > Right. I tried to look for motivation, but history of this file goes > back to 4.4 Lite. :) I wonder whether copy_file_range(2) for UFS does > something clever, like this mmap() to avoid additional memory copy. For > ZFS though it cause big problem with buffer cache squeezing ARC to > absolute minimum. So if there is agreement to modernize this, I'd > completely support it. > > -- > Alexander Motin > The way I see it userspace cannot do it any faster. Especially with the zfs considerations it makes sense to straight up copy_file_range if you can and let the kernel figure out what to do in a sensible manner. Thought I have no idea if zfs is currently handled in such a way. Someone(tm) should look into it. -- Mateusz Guzik <mjguzik gmail.com>