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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).