[ltt-dev] [PATCH] LTTNG: Make marker enabled in advance

Gui Jianfeng guijianfeng at cn.fujitsu.com
Wed Mar 4 20:05:30 EST 2009


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 <guijianfeng at cn.fujitsu.com>
>> ---
>>  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 <linux/debugfs.h>
>>  #include <linux/ltt-tracer.h>
>>  #include <linux/notifier.h>
>> +#include <linux/mutex.h>
>>  
>>  #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





More information about the lttng-dev mailing list