qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu-user performance


From: Etienne Dublé
Subject: Re: [Qemu-devel] qemu-user performance
Date: Fri, 16 Nov 2018 17:46:09 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

On 16/11/2018 16:41, Emilio G. Cota wrote:
There's a recent paper that implements something similar to what you
propose:

   "A General Persistent Code Caching Framework for Dynamic Binary
   Translation (DBT)", ATC'16
   https://www.usenix.org/system/files/conference/atc16/atc16_paper-wang.pdf
Interesting. Thanks for the link.

Note that in that paper they compare against HQEMU, and not against
upstream QEMU. I presume they chose HQEMU because it spends
more effort than QEMU in trying to generate better code for hot
code paths (they use LLVM in a separate thread for those), which
means that code generation can be a bottleneck for some workloads
(e.g. SPEC's gcc or perlbench).

QEMU, on the other hand, generates much simpler code, and as a result
it is rare to find workloads where code generation is a bottleneck.
(You can measure this with perf top in your system; make sure you
configured QEMU with --disable-strip to keep the symbols after
"make install".)
So until QEMU gets some sort of "hot code optimization" that makes
translation more expensive, there's little point in implementing
persistent code caching for it.
I see.

As an aside, what QEMU version are you running? Performance has
improved quite a bit (particularly for integer workloads) in the
last couple of years, e.g. see the perf improvements from v2.6 to
v2.11 here:
   https://imgur.com/a/5P5zj
Various versions.
I am the tech leader of WalT project (https://walt-project.liglab.fr/) which allows to build network experimentation testbeds. Nodes are either Raspberry Pi boards, or any PC booted with our custom USB key, or virtual devices (based on kvm). We package OS of nodes as docker images. This allows to easily share them (handy for experiment reproducibility), and to let users easily create/modify such an OS. When the user wants to modify the docker image of a raspberry pi board, this is where qemu comes in. So actually the qemu version we have in the image depends when it was first built. I did not know the performance improvement has been so important in these last years.
Thanks.
Etienne

--
Etienne Dublé
CNRS / LIG - Bâtiment IMAG
700 avenue Centrale - 38401 St Martin d'Hères
Bureau 426 - Tel 0457421431



reply via email to

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