All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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.