qemu-devel
[Top][All Lists]
Advanced

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

Re: Big TCG slowdown when using zstd with aarch64


From: Alex Bennée
Subject: Re: Big TCG slowdown when using zstd with aarch64
Date: Fri, 02 Jun 2023 10:42:26 +0100
User-agent: mu4e 1.11.6; emacs 29.0.91

Peter Maydell <peter.maydell@linaro.org> writes:

> On Fri, 2 Jun 2023 at 10:10, Daniel P. Berrangé <berrange@redhat.com> wrote:
>> I suspect that the zstd logic takes a little bit longer in setup,
>> which allows often allows the guest dirty workload to get ahead of
>> it, resulting in a huge amount of data to transfer. Every now and
>> then the compression code gets ahead of the workload and thus most
>> data is zeros and skipped.
>>
>> IMHO this feels like just another example of compression being largely
>> useless. The CPU overhead of compression can't keep up with the guest
>> dirty workload, making the supposedly network bandwidth saving irrelevant.
>
> It seems a bit surprising if compression can't keep up with
> a TCG guest workload, though...

Actual running code doesn't see much of a look in on the perf data:

   4.17%  CPU 0/TCG        qemu-system-aarch64      [.] tlb_set_dirty
   3.55%  CPU 0/TCG        qemu-system-aarch64      [.] helper_ldub_mmu
   1.58%  live_migration   qemu-system-aarch64      [.] buffer_zero_avx2
   1.35%  CPU 0/TCG        qemu-system-aarch64      [.] tlb_set_page_full
   1.11%  multifdsend_2    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.07%  multifdsend_13   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.07%  multifdsend_6    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.07%  multifdsend_8    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.06%  multifdsend_10   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.06%  multifdsend_3    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.05%  multifdsend_7    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.04%  multifdsend_11   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.04%  multifdsend_15   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.04%  multifdsend_9    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.03%  multifdsend_1    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.03%  multifdsend_0    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.02%  multifdsend_4    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.02%  multifdsend_14   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.02%  multifdsend_12   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   1.01%  multifdsend_5    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.96%  multifdrecv_3    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.94%  multifdrecv_13   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.94%  multifdrecv_2    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.93%  multifdrecv_15   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.93%  multifdrecv_10   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.93%  multifdrecv_12   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.92%  multifdrecv_0    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.92%  multifdrecv_1    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.92%  multifdrecv_8    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.91%  multifdrecv_6    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.91%  multifdrecv_7    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.91%  multifdrecv_4    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.91%  multifdrecv_11   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.90%  multifdrecv_14   libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.90%  multifdrecv_5    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.89%  multifdrecv_9    libc.so.6                [.] 
__memmove_avx_unaligned_erms
   0.77%  CPU 0/TCG        qemu-system-aarch64      [.] 
cpu_physical_memory_get_dirty.constprop.0
   0.59%  migration-test   [kernel.vmlinux]         [k] 
syscall_exit_to_user_mode
   0.55%  multifdrecv_12   libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.54%  multifdrecv_4    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.51%  multifdrecv_5    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.51%  multifdrecv_14   libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.49%  multifdrecv_2    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.45%  multifdrecv_1    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.45%  multifdrecv_9    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.42%  multifdrecv_10   libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.40%  multifdrecv_6    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.40%  multifdrecv_3    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.40%  multifdrecv_8    libzstd.so.1.5.4         [.] 0x000000000008ec20
   0.39%  multifdrecv_7    libzstd.so.1.5.4         [.] 0x000000000008ec20

>
> -- PMM


-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro



reply via email to

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