From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2275 invoked by alias); 22 Jun 2008 18:03:58 -0000 Received: (qmail 2267 invoked by uid 22791); 22 Jun 2008 18:03:57 -0000 X-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from ug-out-1314.google.com (HELO ug-out-1314.google.com) (66.249.92.172) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sun, 22 Jun 2008 18:03:38 +0000 Received: by ug-out-1314.google.com with SMTP id c2so306587ugf.44 for ; Sun, 22 Jun 2008 11:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:cc :subject:message-id:references:mime-version:content-type :content-disposition:in-reply-to:user-agent; bh=OEEDtTacNlKMGw3JhJdYa+3qmCCeimXgZvoao1Gy+2M=; b=UWzajp8BDXxKjZbs6ZtCBgWsuL+j6koGU1dbRGx+d/aPXgHYpIyJMP11qFgmQeJLLw 4rSncJBzApvNORt4m8m/NwLHY0dYRGKOttJ1lYYrcXZB94cQMxT8ghuRVllkkOVYhPH7 XP/5YPoXpXgaQ6Uat64qRDxjYqObmemf7CJRA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=sXKRrBADJtwq1jNWeW3qxsFfJRP01eiDMp2PrbYI/++2doDLbGsLduHv4tgWGGiU9l dPjJk/EtXL61pYRvMjyNeHrEOBDWCn5aoc2EQe4pJR2iJVQObkiAINwb4n7Ml1ZI4NnM zq8kxjb3oMASzYaw2SWYnnKTlRMWhFiGbAD78= Received: by 10.67.32.7 with SMTP id k7mr896502ugj.38.1214157814814; Sun, 22 Jun 2008 11:03:34 -0700 (PDT) Received: from gmail.com ( [217.67.117.64]) by mx.google.com with ESMTPS id e1sm27425663ugf.71.2008.06.22.11.03.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 22 Jun 2008 11:03:33 -0700 (PDT) Received: by gmail.com (nbSMTP-1.00) for uid 1000 (using TLSv1/SSLv3 with cipher RC4-MD5 (128/128 bits)) adobriyan@gmail.com; Sun, 22 Jun 2008 21:59:30 +0400 (MSD) Date: Mon, 23 Jun 2008 06:34:00 -0000 From: Alexey Dobriyan To: Mathieu Desnoyers Cc: Peter Zijlstra , Masami Hiramatsu , Steven Rostedt , "Frank Ch. Eigler" , Ingo Molnar , LKML , systemtap-ml , Hideo AOKI Subject: Re: [RFC] Tracepoint proposal Message-ID: <20080622175928.GA5022@martell.zuzino.mipt.ru> References: <485BE2C6.1080901@redhat.com> <20080620174529.GB10943@Krystal> <1213992446.3223.195.camel@lappy.programming.kicks-ass.net> <20080622171135.GA19432@Krystal> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080622171135.GA19432@Krystal> User-Agent: Mutt/1.5.16 (2007-06-09) Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2008-q2/txt/msg00711.txt.bz2 On Sun, Jun 22, 2008 at 01:11:35PM -0400, Mathieu Desnoyers wrote: > Tracepoint proposal > > - Tracepoint infrastructure > - In-kernel users > - Complete typing, verified by the compiler > - Dynamically linked and activated > > - Marker infrastructure > - Exported API to userland > - Basic types only > > - Dynamic vs static > - In-kernel probes are dynamically linked, dynamically activated, connected to > tracepoints. Type verification is done at compile-time. Those in-kernel > probes can be a probe extracting the information to put in a marker or a > specific in-kernel tracer such as ftrace. > - Information sinks (LTTng, SystemTAP) are dynamically connected to the > markers inserted in the probes and are dynamically activated. > > - Near instrumentation site vs in a separate tracer module > > A probe module, only if provided with the kernel tree, could connect to internal > tracing sites. This argues for keeping the tracepoing probes near the > instrumentation site code. However, if a tracer is general purpose and exports > typing information to userspace through some mechanism, it should only export > the "basic type" information and could be therefore shipped outside of the > kernel tree. > > In-kernel probes should be integrated to the kernel tree. They would be close to > the instrumented kernel code and would translate between the in-kernel > instrumentation and the "basic type" exports. Other in-kernel probes could > provide a different output (statistics available through debugfs for instance). > ftrace falls into this category. > > Generic or specialized information "sinks" (LTTng, systemtap) could be connected > to the markers put in tracepoint probes to extract the information to userspace. > They would extract both typing information and the per-tracepoint execution > information to userspace. > > Therefore, the code would look like : > > kernel/sched.c: > > #include "sched-trace.h" > > schedule() > { > ... > trace_sched_switch(prev, next); > ... > } Once this is accepted you're going to add hundreds of such calls to every core subsystem, right?