Re: [PATCH v2 0/5] migration: improve multithreads

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

 



On 12/11/18 04:07, Xiao Guangrong wrote:
> 
> Hi,
> 
> Ping...

Hi Guangrong, I think this isn't being reviewed because we're in freeze.

Paolo

> On 11/6/18 8:20 PM, guangrong.xiao@xxxxxxxxx wrote:
>> From: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxx>
>>
>> Changelog in v2:
>> These changes are based on Paolo's suggestion:
>> 1) rename the lockless multithreads model to threaded workqueue
>> 2) hugely improve the internal design, that make all the request be
>>     a large array, properly partition it, assign requests to threads
>>     respectively and use bitmaps to sync up threads and the submitter,
>>     after that ptr_ring and spinlock are dropped
>> 3) introduce event wait for the submitter
>>
>> These changes are based on Emilio's review:
>> 4) make more detailed description for threaded workqueue
>> 5) add a benchmark for threaded workqueue
>>
>> The previous version can be found at
>>     https://marc.info/?l=kvm&m=153968821910007&w=2
>>
>> There's the simple performance measurement comparing these two versions,
>> the environment is the same as we listed in the previous version.
>>
>> Use 8 threads to compress the data in the source QEMU
>> - with compress-wait-thread = off
>>
>>
>>        total time        busy-ratio
>> --------------------------------------------------
>> v1    125066            0.38
>> v2    120444            0.35
>>
>> - with compress-wait-thread = on
>>           total time    busy-ratio
>> --------------------------------------------------
>> v1    164426            0
>> v2    142609            0
>>
>> The v2 win slightly.
>>
>> Xiao Guangrong (5):
>>    bitops: introduce change_bit_atomic
>>    util: introduce threaded workqueue
>>    migration: use threaded workqueue for compression
>>    migration: use threaded workqueue for decompression
>>    tests: add threaded-workqueue-bench
>>
>>   include/qemu/bitops.h             |  13 +
>>   include/qemu/threaded-workqueue.h |  94 +++++++
>>   migration/ram.c                   | 538
>> ++++++++++++++------------------------
>>   tests/Makefile.include            |   5 +-
>>   tests/threaded-workqueue-bench.c  | 256 ++++++++++++++++++
>>   util/Makefile.objs                |   1 +
>>   util/threaded-workqueue.c         | 466
>> +++++++++++++++++++++++++++++++++
>>   7 files changed, 1030 insertions(+), 343 deletions(-)
>>   create mode 100644 include/qemu/threaded-workqueue.h
>>   create mode 100644 tests/threaded-workqueue-bench.c
>>   create mode 100644 util/threaded-workqueue.c
>>




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux