[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 00/14] port network layer onto glib
From: |
Liu Ping Fan |
Subject: |
[Qemu-devel] [PATCH v1 00/14] port network layer onto glib |
Date: |
Tue, 7 May 2013 13:46:48 +0800 |
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
- [Qemu-devel] [PATCH v1 00/14] port network layer onto glib,
Liu Ping Fan <=
- [Qemu-devel] [PATCH v1 01/14] util: introduce gsource event abstraction, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 02/14] net: introduce bind_ctx to NetClientInfo, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 03/14] net: port vde onto GSource, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 04/14] net: port socket to GSource, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 05/14] net: port tap onto GSource, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 06/14] net: port tap-win32 onto GSource, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 07/14] net: hub use lock to protect ports list, Liu Ping Fan, 2013/05/07
- [Qemu-devel] [PATCH v1 08/14] net: introduce lock to protect NetQueue, Liu Ping Fan, 2013/05/07