From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50226) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USNu1-0007nx-V1 for qemu-devel@nongnu.org; Wed, 17 Apr 2013 04:39:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USNty-0002bC-ED for qemu-devel@nongnu.org; Wed, 17 Apr 2013 04:39:41 -0400 Received: from mail-da0-x22e.google.com ([2607:f8b0:400e:c00::22e]:58986) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USNty-0002au-9H for qemu-devel@nongnu.org; Wed, 17 Apr 2013 04:39:38 -0400 Received: by mail-da0-f46.google.com with SMTP id y19so678465dan.33 for ; Wed, 17 Apr 2013 01:39:36 -0700 (PDT) From: Liu Ping Fan Date: Wed, 17 Apr 2013 16:39:09 +0800 Message-Id: <1366187964-14265-1-git-send-email-qemulist@gmail.com> Subject: [Qemu-devel] [RFC PATCH v4 00/15] port network layer onto glib List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth , Paolo Bonzini , Stefan Hajnoczi , Anthony Liguori , Jan Kiszka From: Liu Ping Fan summary: patch1: GSource event abstraction patch2~7: port network backend to glib patch8~11: make network core re-entrant patch12~15: port the slirp backend onto glib For the patch --slirp: make slirp event dispatch based on slirp instance, not global The slirp_pollfds_fill/poll logic are untouch, but owning the format issue, it change much. Will fix in next verion. v3->v4: 1.separate GSource event to dedicated file 2.integrated with net core re-entrant 3.make slirp/ re-entrant v2->v3: 1.drop hub and the frontend(virtio net) 2.split the patch for NetClientSource 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 (15): util: introduce gsource event abstration net: introduce bind_ctx to NetClientInfo net: port tap onto GSource net: resolve race of tap backend and its peer net: port vde onto GSource net: port socket to GSource net: port tap-win32 onto GSource net: hub use lock to protect ports list net: introduce lock to protect NetQueue net: introduce lock to protect NetClientState's peer's access net: make netclient re-entrant with refcnt slirp: make timeout local slirp: make slirp event dispatch based on slirp instance, not global slirp: handle race condition slirp: use lock to protect the slirp_instances hw/qdev-properties-system.c | 14 + include/net/net.h | 12 + include/qemu/module.h | 2 + main-loop.c | 4 - net/hub.c | 28 ++- net/net.c | 123 ++++++++- net/queue.c | 15 +- net/slirp.c | 47 ++++- net/socket.c | 158 +++++++++--- net/tap-win32.c | 28 ++- net/tap.c | 67 ++++- net/vde.c | 28 ++- slirp/libslirp.h | 7 +- slirp/slirp.c | 625 +++++++++++++++++++++---------------------- slirp/slirp.h | 6 + slirp/socket.c | 2 + slirp/socket.h | 1 + stubs/slirp.c | 8 - util/Makefile.objs | 1 + util/event_gsource.c | 169 ++++++++++++ util/event_gsource.h | 54 ++++ 21 files changed, 1003 insertions(+), 396 deletions(-) create mode 100644 util/event_gsource.c create mode 100644 util/event_gsource.h -- 1.7.4.4