[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] *** make netlayer re-entrant ***
From: |
mdroth |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] *** make netlayer re-entrant *** |
Date: |
Tue, 5 Mar 2013 15:30:46 -0600 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sun, Mar 03, 2013 at 09:21:19PM +0800, Liu Ping Fan wrote:
> From: Liu Ping Fan <address@hidden>
>
> This series aim to make netlayer re-entrant, so netlayer can
> run out of biglock safely.
I think most of the locking considerations are still applicable either
way, but this series seems to be written under the assumption that
we'll be associating hubs/ports with separate AioContexts to facilitate
driving the event handling outside of the iothread. Is this the case?
>From what I gathered from the other thread, the path forward was to
replace the global iohandler list that we currently use to drive
NetClient events and replace it with a GSource and GMainContext, rather
than relying on AioContexts.
I do agree that the event handlers currently grouped under
iohandler.c:io_handlers look like a nice fit for AioContexts, but other
things like slirp and chardevs seem better served by a more general
mechanism like GSources/GMainContexts. The chardev flow control patches
seem to be doing something similar already as well.
>
> Liu Ping Fan (3):
> net: spread hub on AioContexts
> net: introduce lock to protect NetClientState's send_queue
> net: make netclient re-entrant with refcnt
>
> hw/qdev-properties-system.c | 15 ++++++
> include/block/aio.h | 1 +
> include/net/net.h | 12 +++++
> include/net/queue.h | 15 ++++++
> main-loop.c | 5 ++
> net/hub.c | 81 ++++++++++++++++++++++++++++++--
> net/net.c | 109 ++++++++++++++++++++++++++++++++++++++----
> net/queue.c | 19 ++++++--
> net/slirp.c | 3 +-
> 9 files changed, 239 insertions(+), 21 deletions(-)
>
> --
> 1.7.4.4
>
[Qemu-devel] [PATCH 3/3] net: make netclient re-entrant with refcnt, Liu Ping Fan, 2013/03/03
Re: [Qemu-devel] [PATCH 0/3] *** make netlayer re-entrant ***,
mdroth <=