qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 0/3] io-thread optimizations


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH v2 0/3] io-thread optimizations
Date: Thu, 14 Apr 2011 17:05:26 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.9

On 04/14/2011 04:59 PM, Anthony Liguori wrote:
On 04/14/2011 08:45 AM, Avi Kivity wrote:
On 04/14/2011 10:14 AM, Jan Kiszka wrote:
On 2011-04-13 22:16, Aurelien Jarno wrote:
>  On Mon, Apr 11, 2011 at 10:27:41PM +0200, Jan Kiszka wrote:
>> These patches were posted before. They bring down the overhead of the
>>  io-thread mode for TCG here, specifically when emulating SMP.
>>
>> The major change in this version, besides rebasing, is the exclusion of
>>  KVM from the main loop polling optimization.
>>
>>
>>
>>  Jan Kiszka (3):
>>    Do not drop global mutex for polled main loop runs
>>    Poll main loop after I/O events were received
>>    Do not kick vcpus in TCG mode
>>
>>   cpus.c   |    2 +-
>>   sysemu.h |    2 +-
>>   vl.c     |   22 ++++++++++++++++------
>>   3 files changed, 18 insertions(+), 8 deletions(-)
>>
>
>  Thanks for working on improving the io-thread with TCG. Your patches
>  make sense, but they don't seems to fix the slowdown observed when
> enabling the io-thread. Well maybe they were not supposed to. This is > for example the results of netperf between guest and host using virtio:
>
>  no io-thread            122 MB/s
>  io-thread                97 MB/s
>  io-thread + patches      98 MB/s
>

Can you capture ftraces of io-thread enabled&  disabled runs? They just
need to cover a hand full of frames.


Also interesting would be the context switch rates on the host.

If they're large, perhaps using user-space threading instead of native threads would help.

I still suspect mitigation as the culprit here. Select is going to get to run more often which means more interrupt generation.

I bet if you count the number of packets per interrupt/notify you'll find that less batching is occurring.


Can you clarify?  Which mitigation? virtio-net interrupt mitigation?

virtio-net interrupt mitigation is time-based, no? so why should threading affect it? and why would select() run more often? since we make all fds generate a signal, we ought to run a similar number same number of select()s.

--
error compiling committee.c: too many arguments to function




reply via email to

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