On Wed, Mar 6, 2013 at 5:30 AM, mdroth <mdr...@linux.vnet.ibm.com> wrote: > 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? > Yes. > 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. > Not quite sure about it. Seems that AioContext is built on GSource, so I think they are similar, and AioContext is easy to reuse.
> 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. > I have made some fix for this series, apart from the concert about GSource/ AioContext. Hope to discuss it clearly in next version and fix it too. BTW what can we benefit from AioContext besides those from GSource Thanks and regards, Pingfan >> >> 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 >>