qemu-devel
[Top][All Lists]
Advanced

[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
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]