Paolo Bonzini <pbonz...@redhat.com> 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