Re: [RFC 1/7] mm: Add new vma flag VM_LOCAL_CPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 14, 2018 at 12:31:22PM +0100, Miklos Szeredi wrote:
> On Wed, Mar 14, 2018 at 12:17 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> >> And we already have an interface for this: splice(2).  What am I
> >> missing?  What's the killer argument in favor of the above messing
> >> with tlb caches etc, instead of just letting the kernel do the dirty
> >> work.
> >
> > Great question.  You're completely right that the question is how to tell
> > the kernel what to copy.  The problem is that splice() can only write to
> > the first page of a pipe.  So you need one pipe per outstanding request,
> > which can easily turn into thousands of file descriptors.  If we enhanced
> > splice() so it could write to any page in a pipe, then I think splice()
> > would be the perfect interface.
> 
> Don't know your usecase, but afaict zufs will have one queue per cpu.
> Having one pipe/cpu doesn't sound too bad.

Erm ... there's nothing wrong with having one pipe per CPU.  But pipes
being non-seekable means that ZUFS can only handle synchronous I/Os.
If you want to have a network backend, then you'd only be able to have
one outstanding network request per pipe, which is really going to suck
for bandwidth.

> But yeah, there's plenty of room for improvement in the splice
> interface.  Just needs a killer app like this :)

I'm happy to start investigating making pipes random-access ...



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux