Disabling CONFIG_QOM_CAST_DEBUG in Fedora qemu builds

Richard W.M. Jones rjones at redhat.com
Fri Oct 6 18:36:06 UTC 2023


[This is a fairly trivial configuration change, but let's discuss
before I go about making a pull request for it ...]

QEmu in Fedora, all branches as far as I can tell, enables
CONFIG_QOM_CAST_DEBUG:

    qom_cast_debug                               : true

This adds 6.6% overhead to TCG runs, directly making emulated code
slower.

Below is a flamegraph from qemu 8.1.1, running a 16 core RISC-V guest
which is doing a bunch of parallel compilation.  If you hit [Ctrl]+F
and type in "object_dynamic_cast_assert" you'll see the 6.6% figure:

  http://oirase.annexia.org/tmp/qemu-riscv.svg

I patched my copy of qemu to add ../configure --disable-qom-cast-debug
flag.  This reduced the time taken to run two test compiles inside the
guest from [465, 467] seconds down to [445, 441] seconds, which is a
saving of about 5%.

Or ... maybe someone knows a way to disable the debugging code when
called from particular call sites?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW


More information about the virt-tools-list mailing list