On Wed, 11 Sep 2013 21:17:23 +0000 Eric Wong <normalperson@xxxxxxxx> wrote: > Zach Brown <zab@xxxxxxxxxx> wrote: > > Towards the end of that thread Eric Wong asked why we didn't just > > extend splice. I immediately replied with some dumb dismissive > > answer. Once I sat down and looked at it, though, it does make a > > lot of sense. So good job, Eric. +10 Dummie points for me. > > Thanks for revisiting that :> > > > Some things to talk about: > > - I really don't care about the naming here. If you do, holler. > > Exposing "DIRECT" to userspace now might confuse users into expecting > O_DIRECT behavior. I say this as an easily-confused user. > > In the future, perhaps O_DIRECT behavior can become per-splice (instead > of just per-open) and can save SPLICE_F_DIRECT for that. > > > - We might want different flags for file-to-file splicing and acceleration > > - We might want flags to require or forbid acceleration > Do we need new flags at all? If both fds refer to files, then perhaps we can just take it that SPLICE_F_DIRECT behavior is implied? I'd probably suggest that we not add any more flags than are necessary until use-cases for them become clear. > > - We might want to provide all these flags to sendfile, too > > Another syscall? I prefer not. Better to just maintain the sendfile > API as-is for compatibility reasons and nudge users towards splice. > Agreed. > > Thoughts? Objections? > > I'll try to test/comment more in a week or two (not much time for > computing until then). On the whole, the concept looks sound. I'll note too that by simply lifting the restriction that one of the fd's to splice must always be a pipe, that may also give us a relatively simple way to add recvfile() as well, even if only as a macro wrapper around splice(). That's been a long sought-after feature of the samba developers... Just allow userland to do a splice straight from a socket fd to a file. We may end up having to copy data if the alignment isn't right, but it'd still be valuable to do that directly in the kernel in a single syscall. -- Jeff Layton <jlayton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html