qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH v2 0/4]  port network layer onto glib
@ 2013-03-28  7:55 Liu Ping Fan
  2013-03-28  7:55 ` [Qemu-devel] [RFC PATCH v2 1/4] net: port tap " Liu Ping Fan
                   ` (5 more replies)
  0 siblings, 6 replies; 26+ messages in thread
From: Liu Ping Fan @ 2013-03-28  7:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Anthony Liguori, mdroth, Stefan Hajnoczi

From: Liu Ping Fan <pingfank@linux.vnet.ibm.com>

These series aim to make the whole network re-entrant, here only apply backend and frontend,
and for the netcore, separated patches have been sent out.  All of these will prepare us for
moving towards making network layer mutlit-thread.
Finally it would be omething like
   qemu -object io-thread,id=thread0 \
     -device virtio-net,rx[0]=thread0,tx[0]=thread0

The brief of the whole aim and plan is documented on
  http://wiki.qemu.org/Features/network_reentrant

The main issue is about GSource or AioContext,
  http://marc.info/?t=136315453300002&r=1&w=3
And I sumary the main points:
  disadvantage for current AioContext
   1st. need to define and expand interface for other fd events, while glib open this interface for user *
   2nd. need to add support for IOCanReadHandler, while gsource provide prepare, check method to allow more flexible control
   3rd. block layer's AioContext will block other AioContexts on the same thread.
   4th. need more document
 disadvantage for glib
   1st. if more than one fds on the same GSource, need re-implement something like aio_set_file_handler

Since I have successed to port frontend on glib, there is no obstale to use glib.


v1->v2:
  1.NetClientState can associate with up to 2 GSource, for virtio net, one for tx, one for rx, 
    so vq can run on different threads.
  2.make network front-end onto glib, currently virtio net dataplane


Liu Ping Fan (4):
  net: port tap onto glib
  net: resolve race of tap backend and its peer
  net: port hub onto glib
  net: port virtio net onto glib

 hw/qdev-properties-system.c |    1 +
 hw/virtio-net.c             |  165 +++++++++++++++++++++++++++++++++++++++++++
 hw/virtio.c                 |    6 ++
 hw/virtio.h                 |    2 +
 include/net/net.h           |   27 +++++++
 include/net/queue.h         |   14 ++++
 net/hub.c                   |   34 ++++++++-
 net/net.c                   |   97 +++++++++++++++++++++++++
 net/queue.c                 |    4 +-
 net/tap.c                   |   62 +++++++++++++---
 10 files changed, 397 insertions(+), 15 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2013-04-11  9:19 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-28  7:55 [Qemu-devel] [RFC PATCH v2 0/4] port network layer onto glib Liu Ping Fan
2013-03-28  7:55 ` [Qemu-devel] [RFC PATCH v2 1/4] net: port tap " Liu Ping Fan
2013-03-28 14:32   ` Stefan Hajnoczi
2013-04-03  9:28     ` liu ping fan
2013-04-08 11:44       ` Stefan Hajnoczi
2013-04-09  5:12         ` liu ping fan
2013-04-11  9:09           ` Stefan Hajnoczi
2013-03-28  7:55 ` [Qemu-devel] [RFC PATCH v2 2/4] net: resolve race of tap backend and its peer Liu Ping Fan
2013-03-28 14:34   ` Stefan Hajnoczi
2013-03-29  7:21     ` liu ping fan
2013-03-29 14:38       ` Stefan Hajnoczi
2013-03-28  7:55 ` [Qemu-devel] [RFC PATCH v2 3/4] net: port hub onto glib Liu Ping Fan
2013-03-28 14:47   ` Stefan Hajnoczi
2013-03-29  7:21     ` liu ping fan
2013-03-28  7:55 ` [Qemu-devel] [RFC PATCH v2 4/4] net: port virtio net " Liu Ping Fan
2013-03-28  8:42 ` [Qemu-devel] [RFC PATCH v2 0/4] port network layer " Paolo Bonzini
2013-03-28 13:40   ` Stefan Hajnoczi
2013-04-02  9:49     ` liu ping fan
2013-04-08 11:46       ` Stefan Hajnoczi
2013-04-09  5:10         ` liu ping fan
2013-04-11  9:19           ` Stefan Hajnoczi
2013-03-28 14:55 ` Stefan Hajnoczi
2013-03-28 17:41   ` mdroth
2013-04-01  8:15   ` liu ping fan
2013-04-08 11:49     ` Stefan Hajnoczi
2013-04-09  5:10       ` liu ping fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).