[Tarantool-patches] [PATCH 1/2] Copy DSO module before load instead of symlink-ing

Cyrill Gorcunov gorcunov at gmail.com
Mon May 25 18:26:05 MSK 2020


On Mon, May 25, 2020 at 06:18:48PM +0300, Cyrill Gorcunov wrote:
> On Mon, May 25, 2020 at 05:34:19PM +0300, Konstantin Osipov wrote:
> > 
> > > +	off_t pos, left;
> > > +	for (left = st.st_size, pos = 0; left > 0;) {
> > > +		off_t ret = eio_sendfile_sync(dest_fd, source_fd, pos,
> > > +					      st.st_size);
> > 
> > I wonder why do you use eio_sendfile_sync()?
> > 
> > I don't know why coio_copyfile uses it BTW. Why is eio_sendfile()
> > not enough?
> 
> ```
> eio_ssize_t
> eio_sendfile_sync (int ofd, int ifd, off_t offset, size_t count)
> {
>   return eio__sendfile (ofd, ifd, offset, count);
> }
> ```
> 
> They are simply alias to each other.

If you meant that there is no need for a loop, then indeed,
looks like eio__sendfile can handle partial writes by self.
Still it comes from commit

commit 04bf646f359cdf9ef0e07121b4d316c5d5d6213e
Author: Cyrill Gorcunov <gorcunov at gmail.com>
Date:   Thu Apr 18 23:49:58 2019 +0300

    core/coio_file: Use eio_sendfile_sync instead of a chunk mode
    
    eio library provides a portable version of sendfile syscall
    which works a way more efficient than explicit copying file
    by 4K chunks.

we've left this cycle here to be able to test partial transfers.
Probably worth to simply drop it off by now, the commit is more
than year old and I think we can assume that everything is tested
enoough and we don't need error injection in this code anymore.


More information about the Tarantool-patches mailing list