On Sun, Mar 03, 2013 at 09:21:19PM +0800, Liu Ping Fan wrote: > From: Liu Ping Fan <pingf...@linux.vnet.ibm.com> > > 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 >