From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759318Ab0GVLRz (ORCPT ); Thu, 22 Jul 2010 07:17:55 -0400 Received: from mga01.intel.com ([192.55.52.88]:9196 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759260Ab0GVLRw (ORCPT ); Thu, 22 Jul 2010 07:17:52 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.55,242,1278313200"; d="scan'208";a="820554849" Subject: [RFC][PATCH v1 13/15] perf: export tracepoint events via sysfs: ext4, jbd2, xfs, gfs2 From: Lin Ming To: Ingo Molnar Cc: Robert Richter , Corey Ashford , Johannes Berg , Peter Zijlstra , Greg KH , Frederic Weisbecker , Paul Mundt , "eranian@gmail.com" , "Gary.Mohr@Bull.com" , "arjan@linux.intel.com" , "Zhang, Yanmin" , Paul Mackerras , "David S. Miller" , Russell King , Arnaldo Carvalho de Melo , Will Deacon , Maynard Johnson , Carl Love , Kay Sievers , lkml , Thomas Gleixner , Steven Rostedt Content-Type: text/plain; charset="UTF-8" Date: Thu, 22 Jul 2010 19:17:50 +0800 Message-ID: <1279797470.20942.96.camel@minggr.sh.intel.com> Mime-Version: 1.0 X-Mailer: Evolution 2.30.2 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ext4, jbd2, xfs, gfs2 tracepoint events are exported like below, /sys/fs/events/ |-- ext4_alloc_da_blocks | |-- config | `-- type .... .... |-- jbd2_checkpoint | |-- config | `-- type .... .... |-- xfs_agf | |-- config | `-- type .... .... |-- gfs2_block_alloc | |-- config | `-- type .... .... --- fs/namespace.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c index 88058de..b4bc3dd 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include "pnode.h" @@ -2305,6 +2306,20 @@ static void __init init_mount_tree(void) set_fs_root(current->fs, &root); } +static void fs_sys_add_tp(struct kobject *kobj) +{ + struct kobject *events_kobj; + + events_kobj = perf_sys_create_events_dir(kobj); + if (events_kobj) + return; + + perf_sys_add_tp_events(events_kobj, "ext4"); + perf_sys_add_tp_events(events_kobj, "jbd2"); + perf_sys_add_tp_events(events_kobj, "xfs"); + perf_sys_add_tp_events(events_kobj, "gfs2"); +} + void __init mnt_init(void) { unsigned u; @@ -2332,6 +2347,8 @@ void __init mnt_init(void) fs_kobj = kobject_create_and_add("fs", NULL); if (!fs_kobj) printk(KERN_WARNING "%s: kobj create error\n", __func__); + else + fs_sys_add_tp(fs_kobj); init_rootfs(); init_mount_tree(); }