qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH for-1.5 0/9] Disable expensive QOM cast debuggin


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH for-1.5 0/9] Disable expensive QOM cast debugging for official releases
Date: Fri, 10 May 2013 08:01:40 -0500
User-agent: Notmuch/0.15.2+77~g661dcf8 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Paolo Bonzini <address@hidden> writes:

> Cast debugging can have a substantial cost (20% or more, measured by
> Aurelien on qemu-system-ppc64).

[Needs citation]

> Instead of adding special-cased "fast
> casts" in the hot paths, we can just disable it in releases.  At the
> same time, add tracing facilities that simplify the analysys of those
> problems that cast debugging would reveal.

I'd prefer not to disable but instead focus on improving performance.

I suspect any performance overhead is resolving the type string to
typeimpl.  One work around is to have a dynamic cast that takes a
typeimpl and then use a function that returns a static similar to how
glib works.

If you've got a reproducible case where the overhead is high, it should
be easy to check.

Regards,

Anthony Liguori

>
> At least patches 1-7 are for 1.5.
>
> Paolo Bonzini (9):
>   qom: improve documentation of cast functions
>   qom: allow casting of a NULL class
>   qom: add a fast path to object_class_dynamic_cast
>   qom: pass file/line/function to asserting casts
>   qom: trace asserting casts
>   qom: allow turning cast debugging off
>   build: disable QOM cast debugging for official releases
>   qom: simplify object_class_dynamic_cast, part 1
>   qom: simplify object_class_dynamic_cast, part 2
>
>  configure            | 20 ++++++++------
>  include/qom/object.h | 40 ++++++++++++++++++++++-----
>  qom/object.c         | 77 
> ++++++++++++++++++++++++++++++++++------------------
>  trace-events         |  3 ++
>  4 files changed, 99 insertions(+), 41 deletions(-)
>
> -- 
> 1.8.1.4




reply via email to

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