[Qemu-devel] [PATCH 0/3] migration: add sztd compression

Denis Plotnikov posted 3 patches 6 years, 7 months ago
Test asan failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190226131535.30361-1-dplotnikov@virtuozzo.com
Maintainers: Eric Blake <eblake@redhat.com>, Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Markus Armbruster <armbru@redhat.com>
There is a newer version of this series
configure             |  26 ++++
hmp.c                 |   8 ++
migration/migration.c |  45 ++++++-
migration/migration.h |   1 +
migration/qemu-file.c |  39 ++----
migration/qemu-file.h |  18 ++-
migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
qapi/migration.json   |  26 +++-
8 files changed, 369 insertions(+), 85 deletions(-)
[Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 7 months ago
zstd date compression algorithm shows better performance on data compression.
It might be useful to employ the algorithm in VM migration to reduce CPU usage.
A user will be able to choose between those algorithms, therefor compress-type
migration parameter is added.

Here are some results of performance comparison zstd vs gzip:

host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
migration to the same host
VM: 2xVCPU, 8G RAM total
5G RAM used, memory populated with postgreqsl data
produced by pgbench performance benchmark


Threads: 1 compress – 1 decompress

zstd provides slightly less compression ratio with almost the same
CPU usage but copes with RAM  compression roghly 2 times faster

compression type              zlib       |      zstd
---------------------------------------------------------
compression level          1       5     |   1       5
compression ratio          6.92    7.05  |   6.69    6.89
cpu idle, %                82      83    |   86      80
time, sec                  49      71    |   26      31
time diff to zlib, sec                      -25     -41


Threads: 8 compress – 2 decompress

zstd provides the same migration time with less cpu consumption

compression type         none  |        gzip(zlib)    |          zstd
------------------------------------------------------------------------------
compression level        -     |  1      5       9    |   1       5       15
compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
time, sec                154   |  22     23      27   |   23      23      25
cpu idle, %              99    |  45     30      12   |   70      52      23
cpu idle diff to zlib          |                      |  -25%    -22%    -11%


Denis Plotnikov (3):
  migration: rework compression code for adding more data compressors
  hmp: add compress-type parameter to migration parameters
  migration: add zstd compression

 configure             |  26 ++++
 hmp.c                 |   8 ++
 migration/migration.c |  45 ++++++-
 migration/migration.h |   1 +
 migration/qemu-file.c |  39 ++----
 migration/qemu-file.h |  18 ++-
 migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
 qapi/migration.json   |  26 +++-
 8 files changed, 369 insertions(+), 85 deletions(-)

-- 
2.17.0


Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 7 months ago
ping!

On 26.02.2019 16:15, Denis Plotnikov wrote:
> zstd date compression algorithm shows better performance on data compression.
> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
> A user will be able to choose between those algorithms, therefor compress-type
> migration parameter is added.
> 
> Here are some results of performance comparison zstd vs gzip:
> 
> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
> migration to the same host
> VM: 2xVCPU, 8G RAM total
> 5G RAM used, memory populated with postgreqsl data
> produced by pgbench performance benchmark
> 
> 
> Threads: 1 compress – 1 decompress
> 
> zstd provides slightly less compression ratio with almost the same
> CPU usage but copes with RAM  compression roghly 2 times faster
> 
> compression type              zlib       |      zstd
> ---------------------------------------------------------
> compression level          1       5     |   1       5
> compression ratio          6.92    7.05  |   6.69    6.89
> cpu idle, %                82      83    |   86      80
> time, sec                  49      71    |   26      31
> time diff to zlib, sec                      -25     -41
> 
> 
> Threads: 8 compress – 2 decompress
> 
> zstd provides the same migration time with less cpu consumption
> 
> compression type         none  |        gzip(zlib)    |          zstd
> ------------------------------------------------------------------------------
> compression level        -     |  1      5       9    |   1       5       15
> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
> time, sec                154   |  22     23      27   |   23      23      25
> cpu idle, %              99    |  45     30      12   |   70      52      23
> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
> 
> 
> Denis Plotnikov (3):
>    migration: rework compression code for adding more data compressors
>    hmp: add compress-type parameter to migration parameters
>    migration: add zstd compression
> 
>   configure             |  26 ++++
>   hmp.c                 |   8 ++
>   migration/migration.c |  45 ++++++-
>   migration/migration.h |   1 +
>   migration/qemu-file.c |  39 ++----
>   migration/qemu-file.h |  18 ++-
>   migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>   qapi/migration.json   |  26 +++-
>   8 files changed, 369 insertions(+), 85 deletions(-)
> 

-- 
Best,
Denis
Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 7 months ago
ping ping

On 04.03.2019 18:10, Denis Plotnikov wrote:
> ping!
> 
> On 26.02.2019 16:15, Denis Plotnikov wrote:
>> zstd date compression algorithm shows better performance on data compression.
>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>> A user will be able to choose between those algorithms, therefor compress-type
>> migration parameter is added.
>>
>> Here are some results of performance comparison zstd vs gzip:
>>
>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>> migration to the same host
>> VM: 2xVCPU, 8G RAM total
>> 5G RAM used, memory populated with postgreqsl data
>> produced by pgbench performance benchmark
>>
>>
>> Threads: 1 compress – 1 decompress
>>
>> zstd provides slightly less compression ratio with almost the same
>> CPU usage but copes with RAM  compression roghly 2 times faster
>>
>> compression type              zlib       |      zstd
>> ---------------------------------------------------------
>> compression level          1       5     |   1       5
>> compression ratio          6.92    7.05  |   6.69    6.89
>> cpu idle, %                82      83    |   86      80
>> time, sec                  49      71    |   26      31
>> time diff to zlib, sec                      -25     -41
>>
>>
>> Threads: 8 compress – 2 decompress
>>
>> zstd provides the same migration time with less cpu consumption
>>
>> compression type         none  |        gzip(zlib)    |          zstd
>> ------------------------------------------------------------------------------
>> compression level        -     |  1      5       9    |   1       5       15
>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>> time, sec                154   |  22     23      27   |   23      23      25
>> cpu idle, %              99    |  45     30      12   |   70      52      23
>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>
>>
>> Denis Plotnikov (3):
>>     migration: rework compression code for adding more data compressors
>>     hmp: add compress-type parameter to migration parameters
>>     migration: add zstd compression
>>
>>    configure             |  26 ++++
>>    hmp.c                 |   8 ++
>>    migration/migration.c |  45 ++++++-
>>    migration/migration.h |   1 +
>>    migration/qemu-file.c |  39 ++----
>>    migration/qemu-file.h |  18 ++-
>>    migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>    qapi/migration.json   |  26 +++-
>>    8 files changed, 369 insertions(+), 85 deletions(-)
>>
> 

-- 
Best,
Denis
Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 6 months ago
ping ping ping!

On 04.03.2019 18:10, Denis Plotnikov wrote:
> ping!
> 
> On 26.02.2019 16:15, Denis Plotnikov wrote:
>> zstd date compression algorithm shows better performance on data compression.
>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>> A user will be able to choose between those algorithms, therefor compress-type
>> migration parameter is added.
>>
>> Here are some results of performance comparison zstd vs gzip:
>>
>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>> migration to the same host
>> VM: 2xVCPU, 8G RAM total
>> 5G RAM used, memory populated with postgreqsl data
>> produced by pgbench performance benchmark
>>
>>
>> Threads: 1 compress – 1 decompress
>>
>> zstd provides slightly less compression ratio with almost the same
>> CPU usage but copes with RAM  compression roghly 2 times faster
>>
>> compression type              zlib       |      zstd
>> ---------------------------------------------------------
>> compression level          1       5     |   1       5
>> compression ratio          6.92    7.05  |   6.69    6.89
>> cpu idle, %                82      83    |   86      80
>> time, sec                  49      71    |   26      31
>> time diff to zlib, sec                      -25     -41
>>
>>
>> Threads: 8 compress – 2 decompress
>>
>> zstd provides the same migration time with less cpu consumption
>>
>> compression type         none  |        gzip(zlib)    |          zstd
>> ------------------------------------------------------------------------------
>> compression level        -     |  1      5       9    |   1       5       15
>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>> time, sec                154   |  22     23      27   |   23      23      25
>> cpu idle, %              99    |  45     30      12   |   70      52      23
>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>
>>
>> Denis Plotnikov (3):
>>     migration: rework compression code for adding more data compressors
>>     hmp: add compress-type parameter to migration parameters
>>     migration: add zstd compression
>>
>>    configure             |  26 ++++
>>    hmp.c                 |   8 ++
>>    migration/migration.c |  45 ++++++-
>>    migration/migration.h |   1 +
>>    migration/qemu-file.c |  39 ++----
>>    migration/qemu-file.h |  18 ++-
>>    migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>    qapi/migration.json   |  26 +++-
>>    8 files changed, 369 insertions(+), 85 deletions(-)
>>
> 

-- 
Best,
Denis
Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 6 months ago
ping ping ping ping!

On 11.03.2019 11:20, Denis Plotnikov wrote:
> ping ping ping!
> 
> On 04.03.2019 18:10, Denis Plotnikov wrote:
>> ping!
>>
>> On 26.02.2019 16:15, Denis Plotnikov wrote:
>>> zstd date compression algorithm shows better performance on data compression.
>>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>>> A user will be able to choose between those algorithms, therefor compress-type
>>> migration parameter is added.
>>>
>>> Here are some results of performance comparison zstd vs gzip:
>>>
>>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>>> migration to the same host
>>> VM: 2xVCPU, 8G RAM total
>>> 5G RAM used, memory populated with postgreqsl data
>>> produced by pgbench performance benchmark
>>>
>>>
>>> Threads: 1 compress – 1 decompress
>>>
>>> zstd provides slightly less compression ratio with almost the same
>>> CPU usage but copes with RAM  compression roghly 2 times faster
>>>
>>> compression type              zlib       |      zstd
>>> ---------------------------------------------------------
>>> compression level          1       5     |   1       5
>>> compression ratio          6.92    7.05  |   6.69    6.89
>>> cpu idle, %                82      83    |   86      80
>>> time, sec                  49      71    |   26      31
>>> time diff to zlib, sec                      -25     -41
>>>
>>>
>>> Threads: 8 compress – 2 decompress
>>>
>>> zstd provides the same migration time with less cpu consumption
>>>
>>> compression type         none  |        gzip(zlib)    |          zstd
>>> ------------------------------------------------------------------------------
>>> compression level        -     |  1      5       9    |   1       5       15
>>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>>> time, sec                154   |  22     23      27   |   23      23      25
>>> cpu idle, %              99    |  45     30      12   |   70      52      23
>>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>>
>>>
>>> Denis Plotnikov (3):
>>>      migration: rework compression code for adding more data compressors
>>>      hmp: add compress-type parameter to migration parameters
>>>      migration: add zstd compression
>>>
>>>     configure             |  26 ++++
>>>     hmp.c                 |   8 ++
>>>     migration/migration.c |  45 ++++++-
>>>     migration/migration.h |   1 +
>>>     migration/qemu-file.c |  39 ++----
>>>     migration/qemu-file.h |  18 ++-
>>>     migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>>     qapi/migration.json   |  26 +++-
>>>     8 files changed, 369 insertions(+), 85 deletions(-)
>>>
>>
> 

-- 
Best,
Denis
Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 6 months ago
ping ping ping ping ping!

On 18.03.2019 10:53, Denis Plotnikov wrote:
> ping ping ping ping!
> 
> On 11.03.2019 11:20, Denis Plotnikov wrote:
>> ping ping ping!
>>
>> On 04.03.2019 18:10, Denis Plotnikov wrote:
>>> ping!
>>>
>>> On 26.02.2019 16:15, Denis Plotnikov wrote:
>>>> zstd date compression algorithm shows better performance on data compression.
>>>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>>>> A user will be able to choose between those algorithms, therefor compress-type
>>>> migration parameter is added.
>>>>
>>>> Here are some results of performance comparison zstd vs gzip:
>>>>
>>>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>>>> migration to the same host
>>>> VM: 2xVCPU, 8G RAM total
>>>> 5G RAM used, memory populated with postgreqsl data
>>>> produced by pgbench performance benchmark
>>>>
>>>>
>>>> Threads: 1 compress – 1 decompress
>>>>
>>>> zstd provides slightly less compression ratio with almost the same
>>>> CPU usage but copes with RAM  compression roghly 2 times faster
>>>>
>>>> compression type              zlib       |      zstd
>>>> ---------------------------------------------------------
>>>> compression level          1       5     |   1       5
>>>> compression ratio          6.92    7.05  |   6.69    6.89
>>>> cpu idle, %                82      83    |   86      80
>>>> time, sec                  49      71    |   26      31
>>>> time diff to zlib, sec                      -25     -41
>>>>
>>>>
>>>> Threads: 8 compress – 2 decompress
>>>>
>>>> zstd provides the same migration time with less cpu consumption
>>>>
>>>> compression type         none  |        gzip(zlib)    |          zstd
>>>> ------------------------------------------------------------------------------
>>>> compression level        -     |  1      5       9    |   1       5       15
>>>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>>>> time, sec                154   |  22     23      27   |   23      23      25
>>>> cpu idle, %              99    |  45     30      12   |   70      52      23
>>>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>>>
>>>>
>>>> Denis Plotnikov (3):
>>>>       migration: rework compression code for adding more data compressors
>>>>       hmp: add compress-type parameter to migration parameters
>>>>       migration: add zstd compression
>>>>
>>>>      configure             |  26 ++++
>>>>      hmp.c                 |   8 ++
>>>>      migration/migration.c |  45 ++++++-
>>>>      migration/migration.h |   1 +
>>>>      migration/qemu-file.c |  39 ++----
>>>>      migration/qemu-file.h |  18 ++-
>>>>      migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>>>      qapi/migration.json   |  26 +++-
>>>>      8 files changed, 369 insertions(+), 85 deletions(-)
>>>>
>>>
>>
> 

-- 
Best,
Denis
[Qemu-devel] [PINGl] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 6 months ago
ping!

On 26.03.2019 18:51, Denis Plotnikov wrote:
> ping ping ping ping ping!
> 
> On 18.03.2019 10:53, Denis Plotnikov wrote:
>> ping ping ping ping!
>>
>> On 11.03.2019 11:20, Denis Plotnikov wrote:
>>> ping ping ping!
>>>
>>> On 04.03.2019 18:10, Denis Plotnikov wrote:
>>>> ping!
>>>>
>>>> On 26.02.2019 16:15, Denis Plotnikov wrote:
>>>>> zstd date compression algorithm shows better performance on data compression.
>>>>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>>>>> A user will be able to choose between those algorithms, therefor compress-type
>>>>> migration parameter is added.
>>>>>
>>>>> Here are some results of performance comparison zstd vs gzip:
>>>>>
>>>>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>>>>> migration to the same host
>>>>> VM: 2xVCPU, 8G RAM total
>>>>> 5G RAM used, memory populated with postgreqsl data
>>>>> produced by pgbench performance benchmark
>>>>>
>>>>>
>>>>> Threads: 1 compress – 1 decompress
>>>>>
>>>>> zstd provides slightly less compression ratio with almost the same
>>>>> CPU usage but copes with RAM  compression roghly 2 times faster
>>>>>
>>>>> compression type              zlib       |      zstd
>>>>> ---------------------------------------------------------
>>>>> compression level          1       5     |   1       5
>>>>> compression ratio          6.92    7.05  |   6.69    6.89
>>>>> cpu idle, %                82      83    |   86      80
>>>>> time, sec                  49      71    |   26      31
>>>>> time diff to zlib, sec                      -25     -41
>>>>>
>>>>>
>>>>> Threads: 8 compress – 2 decompress
>>>>>
>>>>> zstd provides the same migration time with less cpu consumption
>>>>>
>>>>> compression type         none  |        gzip(zlib)    |          zstd
>>>>> ------------------------------------------------------------------------------
>>>>> compression level        -     |  1      5       9    |   1       5       15
>>>>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>>>>> time, sec                154   |  22     23      27   |   23      23      25
>>>>> cpu idle, %              99    |  45     30      12   |   70      52      23
>>>>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>>>>
>>>>>
>>>>> Denis Plotnikov (3):
>>>>>        migration: rework compression code for adding more data compressors
>>>>>        hmp: add compress-type parameter to migration parameters
>>>>>        migration: add zstd compression
>>>>>
>>>>>       configure             |  26 ++++
>>>>>       hmp.c                 |   8 ++
>>>>>       migration/migration.c |  45 ++++++-
>>>>>       migration/migration.h |   1 +
>>>>>       migration/qemu-file.c |  39 ++----
>>>>>       migration/qemu-file.h |  18 ++-
>>>>>       migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>>>>       qapi/migration.json   |  26 +++-
>>>>>       8 files changed, 369 insertions(+), 85 deletions(-)
>>>>>
>>>>
>>>
>>
> 

-- 
Best,
Denis
[Qemu-devel] [PING] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 6 months ago
ping!

On 26.03.2019 18:51, Denis Plotnikov wrote:
> ping ping ping ping ping!
> 
> On 18.03.2019 10:53, Denis Plotnikov wrote:
>> ping ping ping ping!
>>
>> On 11.03.2019 11:20, Denis Plotnikov wrote:
>>> ping ping ping!
>>>
>>> On 04.03.2019 18:10, Denis Plotnikov wrote:
>>>> ping!
>>>>
>>>> On 26.02.2019 16:15, Denis Plotnikov wrote:
>>>>> zstd date compression algorithm shows better performance on data compression.
>>>>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>>>>> A user will be able to choose between those algorithms, therefor compress-type
>>>>> migration parameter is added.
>>>>>
>>>>> Here are some results of performance comparison zstd vs gzip:
>>>>>
>>>>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>>>>> migration to the same host
>>>>> VM: 2xVCPU, 8G RAM total
>>>>> 5G RAM used, memory populated with postgreqsl data
>>>>> produced by pgbench performance benchmark
>>>>>
>>>>>
>>>>> Threads: 1 compress – 1 decompress
>>>>>
>>>>> zstd provides slightly less compression ratio with almost the same
>>>>> CPU usage but copes with RAM  compression roghly 2 times faster
>>>>>
>>>>> compression type              zlib       |      zstd
>>>>> ---------------------------------------------------------
>>>>> compression level          1       5     |   1       5
>>>>> compression ratio          6.92    7.05  |   6.69    6.89
>>>>> cpu idle, %                82      83    |   86      80
>>>>> time, sec                  49      71    |   26      31
>>>>> time diff to zlib, sec                      -25     -41
>>>>>
>>>>>
>>>>> Threads: 8 compress – 2 decompress
>>>>>
>>>>> zstd provides the same migration time with less cpu consumption
>>>>>
>>>>> compression type         none  |        gzip(zlib)    |          zstd
>>>>> ------------------------------------------------------------------------------
>>>>> compression level        -     |  1      5       9    |   1       5       15
>>>>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>>>>> time, sec                154   |  22     23      27   |   23      23      25
>>>>> cpu idle, %              99    |  45     30      12   |   70      52      23
>>>>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
>>>>>
>>>>>
>>>>> Denis Plotnikov (3):
>>>>>        migration: rework compression code for adding more data compressors
>>>>>        hmp: add compress-type parameter to migration parameters
>>>>>        migration: add zstd compression
>>>>>
>>>>>       configure             |  26 ++++
>>>>>       hmp.c                 |   8 ++
>>>>>       migration/migration.c |  45 ++++++-
>>>>>       migration/migration.h |   1 +
>>>>>       migration/qemu-file.c |  39 ++----
>>>>>       migration/qemu-file.h |  18 ++-
>>>>>       migration/ram.c       | 291 ++++++++++++++++++++++++++++++++++--------
>>>>>       qapi/migration.json   |  26 +++-
>>>>>       8 files changed, 369 insertions(+), 85 deletions(-)
>>>>>
>>>>
>>>
>>
> 

-- 
Best,
Denis
Re: [Qemu-devel] [PING PING PING] [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 6 years, 5 months ago

On 05.04.2019 14:40, Denis Plotnikov wrote:
> ping!
> 
> On 26.03.2019 18:51, Denis Plotnikov wrote:
>> ping ping ping ping ping!
>>
>> On 18.03.2019 10:53, Denis Plotnikov wrote:
>>> ping ping ping ping!
>>>
>>> On 11.03.2019 11:20, Denis Plotnikov wrote:
>>>> ping ping ping!
>>>>
>>>> On 04.03.2019 18:10, Denis Plotnikov wrote:
>>>>> ping!
>>>>>
>>>>> On 26.02.2019 16:15, Denis Plotnikov wrote:
>>>>>> zstd date compression algorithm shows better performance on data 
>>>>>> compression.
>>>>>> It might be useful to employ the algorithm in VM migration to 
>>>>>> reduce CPU usage.
>>>>>> A user will be able to choose between those algorithms, therefor 
>>>>>> compress-type
>>>>>> migration parameter is added.
>>>>>>
>>>>>> Here are some results of performance comparison zstd vs gzip:
>>>>>>
>>>>>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>>>>>> migration to the same host
>>>>>> VM: 2xVCPU, 8G RAM total
>>>>>> 5G RAM used, memory populated with postgreqsl data
>>>>>> produced by pgbench performance benchmark
>>>>>>
>>>>>>
>>>>>> Threads: 1 compress – 1 decompress
>>>>>>
>>>>>> zstd provides slightly less compression ratio with almost the same
>>>>>> CPU usage but copes with RAM  compression roghly 2 times faster
>>>>>>
>>>>>> compression type              zlib       |      zstd
>>>>>> ---------------------------------------------------------
>>>>>> compression level          1       5     |   1       5
>>>>>> compression ratio          6.92    7.05  |   6.69    6.89
>>>>>> cpu idle, %                82      83    |   86      80
>>>>>> time, sec                  49      71    |   26      31
>>>>>> time diff to zlib, sec                      -25     -41
>>>>>>
>>>>>>
>>>>>> Threads: 8 compress – 2 decompress
>>>>>>
>>>>>> zstd provides the same migration time with less cpu consumption
>>>>>>
>>>>>> compression type         none  |        gzip(zlib)    |          zstd
>>>>>> ------------------------------------------------------------------------------ 
>>>>>>
>>>>>> compression level        -     |  1      5       9    |   1       
>>>>>> 5       15
>>>>>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    
>>>>>> 6.89    6.93
>>>>>> time, sec                154   |  22     23      27   |   23      
>>>>>> 23      25
>>>>>> cpu idle, %              99    |  45     30      12   |   70      
>>>>>> 52      23
>>>>>> cpu idle diff to zlib          |                      |  -25%    
>>>>>> -22%    -11%
>>>>>>
>>>>>>
>>>>>> Denis Plotnikov (3):
>>>>>>        migration: rework compression code for adding more data 
>>>>>> compressors
>>>>>>        hmp: add compress-type parameter to migration parameters
>>>>>>        migration: add zstd compression
>>>>>>
>>>>>>       configure             |  26 ++++
>>>>>>       hmp.c                 |   8 ++
>>>>>>       migration/migration.c |  45 ++++++-
>>>>>>       migration/migration.h |   1 +
>>>>>>       migration/qemu-file.c |  39 ++----
>>>>>>       migration/qemu-file.h |  18 ++-
>>>>>>       migration/ram.c       | 291 
>>>>>> ++++++++++++++++++++++++++++++++++--------
>>>>>>       qapi/migration.json   |  26 +++-
>>>>>>       8 files changed, 369 insertions(+), 85 deletions(-)
>>>>>>
>>>>>
>>>>
>>>
>>
> 

-- 
Best,
Denis
Re: [PATCH 0/3] migration: add sztd compression
Posted by Juan Quintela 5 years, 8 months ago
Denis Plotnikov <dplotnikov@virtuozzo.com> wrote:
> zstd date compression algorithm shows better performance on data compression.
> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
> A user will be able to choose between those algorithms, therefor compress-type
> migration parameter is added.
>
> Here are some results of performance comparison zstd vs gzip:

Please, could you comment on the series:

[PATCH v3 00/21] Multifd Migration Compression

That series integrated zstd/zlib compression on top of multifd,
advantages over "old" compression code are:
- We don't have to copy data back and forth
- The unit of compression is 512KB instead of 4kb
- We "conserve" the compression state between packets (this is specially
  interesting for zstd, that uses dictionaries)

> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
> migration to the same host
> VM: 2xVCPU, 8G RAM total
> 5G RAM used, memory populated with postgreqsl data
> produced by pgbench performance benchmark
>
>
> Threads: 1 compress – 1 decompress
>
> zstd provides slightly less compression ratio with almost the same
> CPU usage but copes with RAM  compression roghly 2 times faster
>
> compression type              zlib       |      zstd
> ---------------------------------------------------------
> compression level          1       5     |   1       5
> compression ratio          6.92    7.05  |   6.69    6.89
> cpu idle, %                82      83    |   86      80
> time, sec                  49      71    |   26      31
> time diff to zlib, sec                      -25     -41
>
>
> Threads: 8 compress – 2 decompress
>
> zstd provides the same migration time with less cpu consumption
>
> compression type         none  |        gzip(zlib)    |          zstd
> ------------------------------------------------------------------------------
> compression level        -     |  1      5       9    |   1       5       15
> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
> time, sec                154   |  22     23      27   |   23      23      25
> cpu idle, %              99    |  45     30      12   |   70      52      23
> cpu idle diff to zlib          |                      |  -25%    -22%    -11%

I don't have handy results, but it looked for me like you:
- zstd has a way better latency than zlib (i.e. the packet cames sooner)
- And it compress much better

On the migration test (best possible case for a compressor, as we are
writting just one byte of each page, and we write the same value in all
pages):

- zlib: compress 512KB -> 2500 bytes
- zstd: compess 512KB -> 52 bytes (yeap, I tested several times, it
  looked too small)

See that I posted another patch to "delete" the old compression code.
Why?
- I have been unable to modify migration-test to test it and work
  reliablely (only way was to allow a really huge downtime)
- Even with slow networking (1Gigabit) I got really mixed results,
  because as it is so slow, the guest continue dirtying memory, and in
  my tests it was never a winner

Thanks, Juan.


Re: [PATCH 0/3] migration: add sztd compression
Posted by Denis Plotnikov 5 years, 8 months ago
Hi, Juan

I'll read the series soon. Thanks for sending that to me!

Denis

On 24.01.2020 15:43, Juan Quintela wrote:
> Denis Plotnikov <dplotnikov@virtuozzo.com> wrote:
>> zstd date compression algorithm shows better performance on data compression.
>> It might be useful to employ the algorithm in VM migration to reduce CPU usage.
>> A user will be able to choose between those algorithms, therefor compress-type
>> migration parameter is added.
>>
>> Here are some results of performance comparison zstd vs gzip:
> Please, could you comment on the series:
>
> [PATCH v3 00/21] Multifd Migration Compression
>
> That series integrated zstd/zlib compression on top of multifd,
> advantages over "old" compression code are:
> - We don't have to copy data back and forth
> - The unit of compression is 512KB instead of 4kb
> - We "conserve" the compression state between packets (this is specially
>    interesting for zstd, that uses dictionaries)
>
>> host: i7-4790 8xCPU @ 3.60GHz, 16G RAM
>> migration to the same host
>> VM: 2xVCPU, 8G RAM total
>> 5G RAM used, memory populated with postgreqsl data
>> produced by pgbench performance benchmark
>>
>>
>> Threads: 1 compress – 1 decompress
>>
>> zstd provides slightly less compression ratio with almost the same
>> CPU usage but copes with RAM  compression roghly 2 times faster
>>
>> compression type              zlib       |      zstd
>> ---------------------------------------------------------
>> compression level          1       5     |   1       5
>> compression ratio          6.92    7.05  |   6.69    6.89
>> cpu idle, %                82      83    |   86      80
>> time, sec                  49      71    |   26      31
>> time diff to zlib, sec                      -25     -41
>>
>>
>> Threads: 8 compress – 2 decompress
>>
>> zstd provides the same migration time with less cpu consumption
>>
>> compression type         none  |        gzip(zlib)    |          zstd
>> ------------------------------------------------------------------------------
>> compression level        -     |  1      5       9    |   1       5       15
>> compression ratio        -     |  6.94   6.99    7.14 |   6.64    6.89    6.93
>> time, sec                154   |  22     23      27   |   23      23      25
>> cpu idle, %              99    |  45     30      12   |   70      52      23
>> cpu idle diff to zlib          |                      |  -25%    -22%    -11%
> I don't have handy results, but it looked for me like you:
> - zstd has a way better latency than zlib (i.e. the packet cames sooner)
> - And it compress much better
>
> On the migration test (best possible case for a compressor, as we are
> writting just one byte of each page, and we write the same value in all
> pages):
>
> - zlib: compress 512KB -> 2500 bytes
> - zstd: compess 512KB -> 52 bytes (yeap, I tested several times, it
>    looked too small)
>
> See that I posted another patch to "delete" the old compression code.
> Why?
> - I have been unable to modify migration-test to test it and work
>    reliablely (only way was to allow a really huge downtime)
> - Even with slow networking (1Gigabit) I got really mixed results,
>    because as it is so slow, the guest continue dirtying memory, and in
>    my tests it was never a winner
>
> Thanks, Juan.
>

Re: [Qemu-devel] [PATCH 0/3] migration: add sztd compression
Posted by no-reply@patchew.org 6 years, 7 months ago
Patchew URL: https://patchew.org/QEMU/20190226131535.30361-1-dplotnikov@virtuozzo.com/



Hi,

This series failed the docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --python=/usr/bin/python3 --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent

ERROR: zstd check failed
       Make sure to have the zstd libs and headers installed.

# QEMU configure log Wed Mar  6 11:31:58 UTC 2019
---
funcs: do_compiler do_cc compile_object check_define main
lines: 92 122 619 636 0
x86_64-w64-mingw32-gcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:2:2: error: #error __linux__ not defined
 #error __linux__ not defined
  ^~~~~

---
funcs: do_compiler do_cc compile_object check_define main
lines: 92 122 619 688 0
x86_64-w64-mingw32-gcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:2:2: error: #error __i386__ not defined
 #error __i386__ not defined
  ^~~~~

---
funcs: do_compiler do_cc compile_object check_define main
lines: 92 122 619 691 0
x86_64-w64-mingw32-gcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:2:2: error: #error __ILP32__ not defined
 #error __ILP32__ not defined
  ^~~~~

---
lines: 92 128 923 0
x86_64-w64-mingw32-gcc -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -g -liberty
/usr/lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: cannot find -liberty
collect2: error: ld returned 1 exit status

funcs: do_compiler do_cc compile_object main
lines: 92 122 1825 0
---
funcs: do_compiler do_cc compile_prog cc_has_warning_flag main
lines: 92 128 1906 1910 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Werror -Wstring-plus-int -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
x86_64-w64-mingw32-gcc: error: unrecognized command line option '-Wstring-plus-int'; did you mean '-Wstrict-aliasing'?

funcs: do_compiler do_cc compile_prog cc_has_warning_flag main
lines: 92 128 1906 1910 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Werror -Winitializer-overrides -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
x86_64-w64-mingw32-gcc: error: unrecognized command line option '-Winitializer-overrides'; did you mean '-Wno-suggest-override'?

funcs: do_compiler do_cc compile_prog cc_has_warning_flag main
lines: 92 128 1906 1910 0
---
lines: 92 122 2165 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -Werror -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c: In function 'main':
config-temp/qemu-conf.c:4:21: error: unknown conversion type character 'z' in format [-Werror=format=]
     return printf("%zu", SIZE_MAX);
                     ^
config-temp/qemu-conf.c:4:19: error: too many arguments for format [-Werror=format-extra-args]
     return printf("%zu", SIZE_MAX);
                   ^~~~~
config-temp/qemu-conf.c:4:21: error: unknown conversion type character 'z' in format [-Werror=format=]
     return printf("%zu", SIZE_MAX);
                     ^
config-temp/qemu-conf.c:4:19: error: too many arguments for format [-Werror=format-extra-args]
     return printf("%zu", SIZE_MAX);
                   ^~~~~
cc1: all warnings being treated as errors
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2177 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
config-temp/qemu-conf.c:1:10: fatal error: sys/socket.h: No such file or directory
 #include <sys/socket.h>
          ^~~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2248 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -llzo2
config-temp/qemu-conf.c:1:10: fatal error: lzo/lzo1x.h: No such file or directory
 #include <lzo/lzo1x.h>
          ^~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2267 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lsnappy
config-temp/qemu-conf.c:1:10: fatal error: snappy-c.h: No such file or directory
 #include <snappy-c.h>
          ^~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2304 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -llzfse
config-temp/qemu-conf.c:1:10: fatal error: lzfse.h: No such file or directory
 #include <lzfse.h>
          ^~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2387 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lxenstore -lxenctrl -lxenguest
config-temp/qemu-conf.c:1:10: fatal error: xenctrl.h: No such file or directory
 #include <xenctrl.h>
          ^~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 2892 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lpam
config-temp/qemu-conf.c:1:10: fatal error: security/pam_appl.h: No such file or directory
 #include <security/pam_appl.h>
          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_object check_include main
lines: 92 122 627 2907 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c
config-temp/qemu-conf.c:1:10: fatal error: ifaddrs.h: No such file or directory
 #include <ifaddrs.h>
          ^~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3045 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -Dmain=SDL_main -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/SDL2 -Wno-undef -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -lmingw32 -lSDL2main -lSDL2 -mwindows
config-temp/qemu-conf.c:5:2: error: #error No x11 support
 #error No x11 support
  ^~~~~
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/SDL2/SDL.h:32,
                 from config-temp/qemu-conf.c:1:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/SDL2/SDL_main.h:111:17: error: conflicting types for 'SDL_main'
 #define main    SDL_main
                 ^~~~~~~~
config-temp/qemu-conf.c:7:5: note: in expansion of macro 'main'
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3060 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lrdmacm -libverbs -libumad
config-temp/qemu-conf.c:1:10: fatal error: rdma/rdma_cma.h: No such file or directory
 #include <rdma/rdma_cma.h>
          ^~~~~~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3130 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lsasl2
config-temp/qemu-conf.c:1:10: fatal error: sasl/sasl.h: No such file or directory
 #include <sasl/sasl.h>
          ^~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3224 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
config-temp/qemu-conf.c:2:10: fatal error: xfs/xfs.h: No such file or directory
 #include <xfs/xfs.h>
          ^~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3248 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lvdeplug
config-temp/qemu-conf.c:1:10: fatal error: libvdeplug.h: No such file or directory
 #include <libvdeplug.h>
          ^~~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3298 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lcap-ng
config-temp/qemu-conf.c:1:10: fatal error: cap-ng.h: No such file or directory
 #include <cap-ng.h>
          ^~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3394 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lbrlapi
config-temp/qemu-conf.c:1:10: fatal error: brlapi.h: No such file or directory
 #include <brlapi.h>
          ^~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3436 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -DNCURSES_WIDECHAR -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
config-temp/qemu-conf.c:2:10: fatal error: curses.h: No such file or directory
 #include <curses.h>
          ^~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3436 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -DNCURSES_WIDECHAR -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lpdcurses
config-temp/qemu-conf.c:2:10: fatal error: curses.h: No such file or directory
 #include <curses.h>
          ^~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3489 0
x86_64-w64-mingw32-gcc -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g
config-temp/qemu-conf.c:1:10: fatal error: bluetooth/bluetooth.h: No such file or directory
 #include <bluetooth/bluetooth.h>
          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
---
funcs: do_compiler do_cc compile_prog main
lines: 92 128 3609 0
x86_64-w64-mingw32-gcc -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -mms-bitfields -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16 -o config-temp/qemu-conf.exe config-temp/qemu-conf.c -m64 -g -lzstd
config-temp/qemu-conf.c:1:10: fatal error: zstd.h: No such file or directory
 #include <zstd.h>
          ^~~~~~~~
compilation terminated.


The full log is available at
http://patchew.org/logs/20190226131535.30361-1-dplotnikov@virtuozzo.com/testing.docker-mingw@fedora/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com