From: Andreas Dilger <adilger@turbolabs.com>
To: Daniel Phillips <phillips@bonn-fries.net>
Cc: "Albert D. Cahalan" <acahalan@cs.uml.edu>,
Quinn Harris <quinn@nmt.edu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: File copy system call proposal
Date: Thu, 13 Dec 2001 03:01:08 -0700 [thread overview]
Message-ID: <20011213030107.L940@lynx.no> (raw)
In-Reply-To: <200112100544.fBA5isV223458@saturn.cs.uml.edu> <E16DSDU-0001EN-00@starship.berlin>
In-Reply-To: <E16DSDU-0001EN-00@starship.berlin>; from phillips@bonn-fries.net on Mon, Dec 10, 2001 at 04:19:33PM +0100
On Dec 10, 2001 16:19 +0100, Daniel Phillips wrote:
> On December 10, 2001 06:44 am, Albert D. Cahalan wrote:
> > No, mmap+write does not do the job. SMB file servers have
> > a remote copy operation. There shouldn't be any need to
> > pull data over the network only to push it back again!
>
> I don't get it, you're saying that this zero-copy optimization, which happens
> entirely within the vfs, shouldn't be done because smb can't do it over a
> network?
No, I think he means just the opposite - that having a "copy(2)" syscall
would greatly _help_ SMB in that the copy could be done entirely at the
server side, rather than having to pull _all_ of the data to the client
and then sending it back again.
When I was working on another network storage system (formerly called
Lustre, don't know what it is called now) we had a "copy" primitive in
the VFS interface, and there were lots of useful things you could do
with it.
Consider the _very_ common case (that nobody has mentioned yet) where you
are editing a large file. When you write to the file, the editor copies
the file to a backup, then immediately truncates the original file and
writes the new data there. What would be _far_ preferrable is to just
"copy" the file to the new location within the kernel (zero work), and
then the new data will be the only I/O going to disk. This requires
some smarts on the part of the filesystem (essentially COW semantics),
but it well worth it on network storage. Even for "dumb" filesystems,
we could save the two (or one, with mmap) userspace copies, and optimize
to-boot (because we know the full size of the file in advance).
What about "link" you say? Well, emacs at least does a full copy instead
of a link, so that things like "cp -al linux-2.4.17 linux-2.4.17-new" will
work properly when you edit files in one of those trees. Not that I'm
an emacs user...
Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/
next prev parent reply other threads:[~2001-12-13 10:02 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-08 3:42 File copy system call proposal Quinn Harris
2001-12-08 4:00 ` H. Peter Anvin
2001-12-08 6:03 ` Quinn Harris
2001-12-08 13:57 ` Daniel Phillips
2001-12-09 0:19 ` H. Peter Anvin
2001-12-09 4:56 ` Quinn Harris
2001-12-10 5:44 ` Albert D. Cahalan
2001-12-09 20:25 ` Hans Reiser
2001-12-10 15:19 ` Daniel Phillips
2001-12-13 10:01 ` Andreas Dilger [this message]
2001-12-13 21:17 ` Pavel Machek
2001-12-19 20:26 ` Daniel Phillips
2001-12-20 10:09 ` Pavel Machek
2001-12-20 13:38 ` Svein Ove Aas
2001-12-20 13:53 ` Jakob Østergaard
2001-12-20 14:00 ` Jakob Østergaard
2001-12-23 1:19 ` Pavel Machek
2001-12-20 14:31 ` David Woodhouse
2001-12-20 15:06 ` George Greer
2001-12-20 15:07 ` David Woodhouse
2001-12-20 21:32 ` Jamie Lokier
2001-12-08 4:25 ` Christian Lavoie
[not found] ` <1007833194.17577.0.camel@buffy>
2001-12-08 19:23 ` Quinn Harris
2001-12-08 23:11 ` Ton Hospel
2001-12-09 15:35 ` Pavel Machek
2001-12-10 11:50 ` Albert D. Cahalan
2001-12-10 2:49 ` Hans Reiser
2001-12-10 12:13 ` Pavel Machek
2001-12-10 15:20 ` vda
-- strict thread matches above, loose matches on Subject: below --
2001-12-10 18:44 Petr Vandrovec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011213030107.L940@lynx.no \
--to=adilger@turbolabs.com \
--cc=acahalan@cs.uml.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@bonn-fries.net \
--cc=quinn@nmt.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox