[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] *** make netlayer re-entrant ***
From: |
liu ping fan |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] *** make netlayer re-entrant *** |
Date: |
Thu, 7 Mar 2013 10:06:52 +0800 |
On Wed, Mar 6, 2013 at 5:30 AM, mdroth <address@hidden> wrote:
> 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?
>
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
>>
[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, 2013/03/05