On Tue, 2 Feb 2016, Snyder, Emile wrote: > On 2/2/16, 10:23 AM, "Gregory Farnum" <gfarnum@xxxxxxxxxx> wrote: > > >On Tue, Feb 2, 2016 at 10:06 AM, Snyder, Emile <emsnyder@xxxxxxxx> wrote: > >> Hi all, > >> > >> I was wondering if anyone had any insights as to the status of http://tracker.ceph.com/projects/ceph/wiki/Zero-copy_bufferlists? Poking around in the buffer code I see that there is some code there to handle zero copy with buffer::raw, but that it's disabled (the if (false && read_fd_zero_copy(fd, len) == 0) in buffer::list::read_fd), and that the read path for osd's using FileStore doesn't appear to go through buffer anyway (FileStore::read uses safe_pread) > >> > >> > >> > >> Was this direction determined to not be worth it, or is it just that no one has had the time to keep pursuing it? > > > >I didn't do any of this work, but I think there ended up being (a) not > >enough time available, and (b) some issue with using pipes as > >described there — the overhead was too high for the typical amount of > >memory we use in a buffer, maybe? Or we were just trying to allocate > >too many pipes for the kernel to handle well, or for us to handle, or > >something. > > Ah, thanks, I was wondering about the effect of all the requied ::pipe() > calls. The other thing is that the new bluestore OSD backend won't use the page cache (in general), which means the only potential win we'd get is when we forward buffers to replicas. sage