From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60088) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UZakA-0000rS-Es for qemu-devel@nongnu.org; Tue, 07 May 2013 01:47:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UZak9-00078Z-Ja for qemu-devel@nongnu.org; Tue, 07 May 2013 01:47:18 -0400 Received: from mail-pb0-x233.google.com ([2607:f8b0:400e:c01::233]:49675) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UZak9-00078I-C7 for qemu-devel@nongnu.org; Tue, 07 May 2013 01:47:17 -0400 Received: by mail-pb0-f51.google.com with SMTP id wy7so147800pbc.38 for ; Mon, 06 May 2013 22:47:15 -0700 (PDT) From: Liu Ping Fan Date: Tue, 7 May 2013 13:46:48 +0800 Message-Id: <1367905622-21038-1-git-send-email-qemulist@gmail.com> Subject: [Qemu-devel] [PATCH v1 00/14] port network layer onto glib List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth , Jan Kiszka , Stefan Hajnoczi , Anthony Liguori , Paolo Bonzini summary: patch1: GSource event abstraction patch2~6: port network backend to glib patch7~10: make network core re-entrant patch11~14: port the slirp backend onto glib The slirp->lock's deadlock problem has been eliminated and works fine. And other components seems more stable, so I change from RFCv- to v- rfcv5->v1: 1. re-arrange logic for net/socket.c rfcv4->rfcv5: 1.use GList to reimplement EventsGSource 2.make readable()/writable() return events which the backend is interested in 3.fix the slirp->lock's potential deadlock issue rfcv3->rfcv4: 1.separate GSource event to dedicated file 2.integrated with net core re-entrant 3.make slirp/ re-entrant rfcv2->rfcv3: 1.drop hub and the frontend(virtio net) 2.split the patch for NetClientSource rfcv1->rfcv2: 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 (14): util: introduce gsource event abstraction net: introduce bind_ctx to NetClientInfo net: port vde onto GSource net: port socket to GSource net: port tap onto 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 | 35 +++- net/socket.c | 194 +++++++++++--- net/tap-win32.c | 31 ++- net/tap.c | 64 ++++- net/vde.c | 31 ++- slirp/if.c | 57 +++- slirp/libslirp.h | 7 +- slirp/main.h | 3 +- slirp/mbuf.h | 2 + slirp/slirp.c | 670 ++++++++++++++++++++++--------------------- slirp/slirp.h | 11 +- slirp/socket.c | 2 + slirp/socket.h | 1 + stubs/slirp.c | 8 - util/Makefile.objs | 1 + util/event_gsource.c | 157 ++++++++++ util/event_gsource.h | 49 ++++ 24 files changed, 1105 insertions(+), 416 deletions(-) create mode 100644 util/event_gsource.c create mode 100644 util/event_gsource.h -- 1.7.4.4