From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:32838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UPCmo-0003jw-4W for qemu-devel@nongnu.org; Mon, 08 Apr 2013 10:11:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UPCmi-0003e1-1W for qemu-devel@nongnu.org; Mon, 08 Apr 2013 10:11:06 -0400 Received: from mail-we0-x232.google.com ([2a00:1450:400c:c03::232]:58280) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UPCmh-0003dh-Ps for qemu-devel@nongnu.org; Mon, 08 Apr 2013 10:10:59 -0400 Received: by mail-we0-f178.google.com with SMTP id z53so4497162wey.37 for ; Mon, 08 Apr 2013 07:10:58 -0700 (PDT) Date: Mon, 8 Apr 2013 16:10:54 +0200 From: Stefan Hajnoczi Message-ID: <20130408141054.GE4429@stefanha-thinkpad.redhat.com> References: <1364970659-5715-1-git-send-email-eiichi.tsukata.xh@hitachi.com> <1364970659-5715-2-git-send-email-eiichi.tsukata.xh@hitachi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1364970659-5715-2-git-send-email-eiichi.tsukata.xh@hitachi.com> Subject: Re: [Qemu-devel] [PATCH 1/2] trace: Add ftrace tracing backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eiichi Tsukata Cc: qemu-devel@nongnu.org On Wed, Apr 03, 2013 at 03:30:58PM +0900, Eiichi Tsukata wrote: > diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backend/ftrace.py > new file mode 100644 > index 0000000..e02f0ca > --- /dev/null > +++ b/scripts/tracetool/backend/ftrace.py > @@ -0,0 +1,53 @@ > +#!/usr/bin/env python > +# -*- coding: utf-8 -*- > + > +""" > +Ftrace built-in backend. > +""" > + > +__author__ = "Eiichi Tsukata " > +__copyright__ = "Copyright (C) 2013 Hitachi, Ltd." > +__license__ = "GPL version 2 or (at your option) any later version" > + > +__maintainer__ = "Stefan Hajnoczi" > +__email__ = "stefanha@linux.vnet.ibm.com" My email is now stefanha@redhat.com. I can fix this up when merging the patch. > + out('static inline void trace_%(name)s(%(args)s)', > + '{', > + ' char ftrace_buf[MAX_TRACE_STRLEN];', > + ' int unused __attribute__ ((unused));' > + ' bool _state = trace_event_get_state(%(event_id)s);', > + ' if (_state) {', > + ' snprintf(ftrace_buf, MAX_TRACE_STRLEN,', > + ' "%(name)s " %(fmt)s "\\n" %(argnames)s);', > + ' unused = write(trace_marker_fd, ftrace_buf,', > + ' MAX_TRACE_STRLEN);', Looking at kernel/trace/trace.c:tracing_mark_write() the kernel will memcpy() the full number of bytes we give. You could use the snprintf(3) return value (number of characters written, excluding NUL byte). I think that would waste less trace buffer space. Stefan