From: "Alex Bennée" <alex.bennee@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
"Juan Quintela" <quintela@redhat.com>,
"Richard Henderson" <rth@twiddle.net>,
qemu-devel@nongnu.org
Subject: Re: Big TCG slowdown when using zstd with aarch64
Date: Fri, 02 Jun 2023 10:42:26 +0100 [thread overview]
Message-ID: <877csmb3l2.fsf@linaro.org> (raw)
In-Reply-To: <CAFEAcA_1FF6tBt7C=zfLcSiFPNzSecZkRMtppYbUBjwZPVfbmg@mail.gmail.com>
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
next prev parent reply other threads:[~2023-06-02 9:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-01 21:06 Big TCG slowdown when using zstd with aarch64 Juan Quintela
2023-06-02 9:10 ` Daniel P. Berrangé
2023-06-02 9:22 ` Peter Maydell
2023-06-02 9:37 ` Daniel P. Berrangé
2023-06-02 9:42 ` Alex Bennée [this message]
2023-06-02 9:24 ` Thomas Huth
2023-06-02 9:34 ` Juan Quintela
2023-06-02 9:47 ` Thomas Huth
2023-06-02 9:25 ` Juan Quintela
2023-06-02 10:14 ` Daniel P. Berrangé
2023-06-02 10:41 ` Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877csmb3l2.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.