From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46162) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQcMK-0000sE-Fd for qemu-devel@nongnu.org; Thu, 20 Mar 2014 08:46:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQcME-0003qq-Gw for qemu-devel@nongnu.org; Thu, 20 Mar 2014 08:46:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:19543) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQcME-0003qi-96 for qemu-devel@nongnu.org; Thu, 20 Mar 2014 08:46:02 -0400 Message-ID: <532AE304.8060904@redhat.com> Date: Thu, 20 Mar 2014 13:45:56 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] QOM cast debug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Desnogues , "qemu-devel@nongnu.org" Il 20/03/2014 11:52, Laurent Desnogues ha scritto: > Hello, > > while looking at some perf results, I saw object_dynamic_cast_assert > taking more than 3% of the run time. > > After some digging I found out that this time can be cut by passing > --disable-qom-cast-debug to configure. This was added by Paolo: > > commit 3556c233d931ad5ffa46a35cb25cfc057732ebb8 > Author: Paolo Bonzini > Date: Fri May 10 14:16:40 2013 +0200 > > qom: allow turning cast debugging off > > Cast debugging can have a substantial cost (20% or more). Instead of adding > special-cased "fast casts" in the hot paths, we can just disable it in > releases. The tracing facilities we just added make it easier to analyze > those problems that cast debugging would reveal. > > I find it odd that the default is to have this debug flag on by > default while the other such debug options are off. Wouldn't it make > more sense to have it off by default and let devs turn it on? I agree, but Anthony (and Andreas?) did not. Which path is calling object_dynamic_cast_assert so much? It was agreed to just use C casts in hot code. Paolo