[lkml]   [1998]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Thread implementations...
Linus Torvalds <> writes:

> I've also done some more testing of sendfile(), and the nice thing is that
> when I compared doing a file copy with sendfile compared to a plain "cp",
> the sendfile implementation was about twice as fast (at least my version
> of "cp" will just do read+write pairs over and over again). When I copied
> a 38MB file the "cp" took 1:58 seconds while sendfile took 1:08 seconds
> according to "time" (I have 512MB of RAM, so this was all cached,
> obviously)..

But how does it look if you compare it to something that uses mmap() ?
On my machine GNU cp always seems to use read/write for copying.

In this situation it would be nice to "redeclare" a mmaped region
to another fd. Currently it would have to do either mmap()->write()
[implicit copy] or mmap()->mmaped region[explicit copy], because one
mmaped data region can only belong to a specific inode.

Something like:
adr = mmap(0, length, PROT_READ, MAP_SHARED, input_fd, offset);
mmap(adr, length, PROT_READ|PROT_WRITE,
MAP_SHARED|MAP_REUSE, output_fd, offset);
msync(adr, length, MS_INVALIDATE);
To copy data without it ever leaving the page cache. Do you think that is
possible, or are the fixed costs of mmap just too big to make it worthwhile?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to

 \ /
  Last update: 2005-03-22 13:43    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean