[Gluster-devel] zero-copy readv

Anand Avati anand.avati at gmail.com
Tue Jan 22 01:39:10 UTC 2013


On Sun, Jan 20, 2013 at 8:16 PM, Bharata B Rao <bharata.rao at gmail.com>wrote:

> On Thu, Jan 10, 2013 at 11:55 AM, Anand Avati <aavati at redhat.com> wrote:
> > - On the read side things are a little more complicated. In
> > rpc-transport/socket, there is a call to iobuf_get() to create a new
> iobuf
> > for reading in the readv reply data from the server. We will need a
> > framework changes where, if the readv request (of the xid for which readv
> > reply is being handled) happened to be a "direct" variant (i.e,
> zero-copy),
> > then the "special iobuf around user's memory" gets picked up and read()
> from
> > socket is performed directly into user's memory. Similar, but equivalent,
>
> AFAICS, the read from the socket is always done to a single buffer and
> the actual "scatter input" (reading or copying into multiple user supplied
> iovec buffer) is actually done at the end in libgfapi. So as you note, some
> framework changes need to be done to enable direct reading of socket data
> into
> multiple user supplied buffers.
>

Right. Those are all (the kind of) details to be taken care of.

Avati
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20130121/6f880a1b/attachment-0001.html>


More information about the Gluster-devel mailing list