From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53435) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqMSq-0007ob-Gz for qemu-devel@nongnu.org; Sun, 25 Oct 2015 10:40:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZqMSn-0005PZ-Bq for qemu-devel@nongnu.org; Sun, 25 Oct 2015 10:40:04 -0400 Received: from mail-wi0-x22b.google.com ([2a00:1450:400c:c05::22b]:36521) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqMSn-0005PH-6l for qemu-devel@nongnu.org; Sun, 25 Oct 2015 10:40:01 -0400 Received: by wicfx6 with SMTP id fx6so83278463wic.1 for ; Sun, 25 Oct 2015 07:40:00 -0700 (PDT) Sender: Paolo Bonzini References: <1445779929-12237-1-git-send-email-pbonzini@redhat.com> From: Paolo Bonzini Message-ID: <562CE9BA.7070804@redhat.com> Date: Sun, 25 Oct 2015 15:39:54 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 0/9] simplify usage of tracepoints, and connect them to logging List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: "Denis V. Lunev" , QEMU Developers , Stefan Hajnoczi , Markus Armbruster On 25/10/2015 14:57, Peter Maydell wrote: > > Opinions? I would like to have this in 2.5 if there is agreement. > > Have you done any performance testing to check that we don't have > previously-nopped-out tracepoints in hot paths that now result in > real code being generated? There definitely are tracepoints in hot paths, depending on what your workload here. Each I/O operation should trigger up to 3 tracepoints in the block layer if I counted them right (thread_pool_submit, thread_pool_complete, bdrv_aio_*), plus possibly some SCSI and virtqueue tracepoints. I haven't checked whether their cost (e.g. in terms of cache misses) has an impact on performance. The obvious first optimization would be to optimize the case of no tracepoints enabled at all, changing each if (tracepoint_enabled[index]) to "unlikely(tracepoint_enabled_any) && tracepoint_enabled[index]". All other patches of course are independent. I put 8 and 9 last because they are a bit more controversial. Paolo