From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UamxX-0007RF-0o for qemu-devel@nongnu.org; Fri, 10 May 2013 09:02:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UamxS-0007BP-EL for qemu-devel@nongnu.org; Fri, 10 May 2013 09:02:02 -0400 Received: from e23smtp09.au.ibm.com ([202.81.31.142]:55518) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UamxR-0007BA-SP for qemu-devel@nongnu.org; Fri, 10 May 2013 09:01:58 -0400 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 11 May 2013 09:59:38 +1000 Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [9.190.235.21]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id F13FF3578018 for ; Fri, 10 May 2013 23:01:47 +1000 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r4AD1c5L16646326 for ; Fri, 10 May 2013 23:01:41 +1000 Received: from d23av03.au.ibm.com (loopback [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r4AD1ijt031545 for ; Fri, 10 May 2013 23:01:44 +1000 From: Anthony Liguori In-Reply-To: <1368188203-3407-1-git-send-email-pbonzini@redhat.com> References: <1368188203-3407-1-git-send-email-pbonzini@redhat.com> Date: Fri, 10 May 2013 08:01:40 -0500 Message-ID: <874nebdm4r.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH for-1.5 0/9] Disable expensive QOM cast debugging for official releases List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: Andreas Faerber , Aurelien Jarno , mst@redhat.com Paolo Bonzini 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