From mboxrd@z Thu Jan 1 00:00:00 1970 From: guijianfeng@cn.fujitsu.com (Gui Jianfeng) Date: Thu, 05 Mar 2009 09:05:30 +0800 Subject: [ltt-dev] [PATCH] LTTNG: Make marker enabled in advance In-Reply-To: <20090304171022.GA2554@Krystal> References: <49AC9C77.5050206@cn.fujitsu.com> <20090304171022.GA2554@Krystal> Message-ID: <49AF255A.4040502@cn.fujitsu.com> Mathieu Desnoyers wrote: > * Gui Jianfeng (guijianfeng at cn.fujitsu.com) wrote: >> Hi Mathieu, >> >> This patch makes marker enabled in advance. >> IOW, even if the marker isn't present for the moment, >> you can still enable it for future use. >> As soon as the marker is inserted into kernel, tracing >> work can be started immediately. >> >> Here is an example for using the user interface: >> This patch assumes the marker control patch is applied. >> >> [root at localhost markers]# cd /mnt/debugfs/ltt/markers >> [root at localhost markers]# mkdir fs >> [root at localhost markers]# cd fs >> [root at localhost fs]# mkdir close >> [root at localhost fs]# cd close/ >> [root at localhost close]# ls >> enable info >> [root at localhost close]# echo 1 > enable >> [root at localhost close]# cat enable >> 2 >> [root at localhost close]# cat info >> marker is not present now! >> [root at localhost close]# modprobe fs_trace >> [root at localhost close]# cat enable >> 1 >> [root at localhost close]# cat info >> format: "fd %u" >> state: 1 >> event_id: 1 >> call: 0xc0468167 >> probe single : 0xc0520cdc >> >> Signed-off-by: Gui Jianfeng >> --- >> ltt/ltt-trace-control.c | 357 ++++++++++++++++++++++++++++++++--------------- >> 1 files changed, 247 insertions(+), 110 deletions(-) >> >> diff --git a/ltt/ltt-trace-control.c b/ltt/ltt-trace-control.c >> index 128db4e..7e1c32e 100644 >> --- a/ltt/ltt-trace-control.c >> +++ b/ltt/ltt-trace-control.c >> @@ -19,6 +19,7 @@ >> #include >> #include >> #include >> +#include >> >> #define LTT_CONTROL_DIR "control" >> #define MARKERS_CONTROL_DIR "markers" >> @@ -27,9 +28,240 @@ >> >> #define LTT_WRITE_MAXLEN (128) >> >> +#define MARKER_ENABLE_MASK 0x7UL > > What is this doing ? marker is 8 bytes aligned, the last 3 bit must 0. I use these bits to identify whether the marker is enabled in advance. > >> + >> +static DEFINE_MUTEX(unload_mutex); > > Can you tell me exactly what this protects, where it is nested ? when doing mkdir to create a new dir by debugfs_create_dir(), I have to drop the parent's i_mutex, because debugfs_create_dir() need it. To prevent the parent to be removed, this mutex is introduced. > > Mathieu > >> + -- Regards Gui Jianfeng