[llvm-dev] LLD: Using sendfile(2) to copy file contents

Rui Ueyama via llvm-dev
2016-06-06T19:17:47Z

On Mon, Jun 6, 2016 at 12:11 PM, Matt Godbolt <matt at godbolt.org> wrote:

>
> On Mon, Jun 6, 2016 at 1:41 PM Rui Ueyama via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> As to leave an opportunity for the kernel, I think mmap+write would be
>> enough. Because the kernel knows what address is mmap'ed, it can
detect
>> that write's source is actually a mmap'ed file and if
that's the case it
>> can optimize as it does for sendfile. It seems that Linux doesn't
do that
>> now, though.
>>
>
> Pardon my ignorance here, but how might the kernel in general know what
> the "source" of a write is?
>

The kernel knows where all mmap'ed files are mapped. So, it can decides
whether a memory address is in a mmap'ed region or not, no?

Also, in terms of the async_io option, in my (non-llvm)
experimentation
> with reading very large files the aio subsystem is not well-supported or
> optimized  (hence the lack of Glibc support).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20160606/3bc5d1e0/attachment.html>