[Libguestfs] [libnbd] How close are we to declaring a stable API?

Daniel P. Berrangé berrange at redhat.com
Wed Jul 3 11:35:36 UTC 2019


On Tue, Jul 02, 2019 at 08:48:15PM -0500, Eric Blake wrote:
> On 6/29/19 5:25 AM, Richard W.M. Jones wrote:
> > As the subject says, how close are we to being able to declare a
> > stable API for libnbd?
> > 
> > I believe these are the main topics:
> > 
> > * Do we need to have an extra thread for writing?  I'm unclear about
> >   whether b92392b717 (which allows the state machine to break during
> >   reply processing) means we definitely don't need threads.  I imagine
> >   that two threads doing simultaneous send(2) and recv(2) calls could
> >   still improve performance (eg. having two cores copying skbs from
> >   userspace to and from kernel).
> 
> It's hard to see how simultaneous send() and recv() with nonblocking
> sockets will do any better across two threads than one. If it was
> blocking, then it makes total sense, but since we have non-blocking I/O,
> I'm not seeing that it will make any noticeable difference.  That said,
> I do know that you were experimenting at one point about adding a way to
> offload writing to a user-controlled thread, and maybe it's still worth
> playing with that a bit more.

Consider also what other work the threads are doing. With GNUTLS' API
design, the thread doing the recv()/send() is almost certainly going
to be doing the encrypt/decrypt of data, and that is likely to dominate
the utilization of the thread, even with harware accelerated crypto.
So if there's likely to be non-trivially size data packets both recvd
and sent oncurrently, separate threads will be a win with TLS.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the Libguestfs mailing list