Linux kernel marker questions

Mike Mason mmlnx@us.ibm.com
Thu May 24 13:59:00 GMT 2007


David Smith wrote:
> Mike Mason wrote:
>> David,
>>
>> Is there enough marker support in CVS now that we can write scripts 
>> against it?  I tried using the latest CVS against a kernel with a few 
>> markers, but I'm seeing errors.
>>
>> Here's the script:
>> global sem_up_cnt
>> probe kernel.mark("sem_up") { sem_up_cnt++ }
>> probe end { printf("sem_up_cnt = %d\n", sem_up_cnt)}
>>
>> Here's the marker I'm trying to access in __up() in semaphore-sleepers.c:
>>
>> MARK(sem_down, "%ul", (unsigned long) sem);
>>
>> Here are the errors I'm seeing:
>>
>> semantic error: bad __markers_string section?
>> semantic error: no match for probe point while resolving probe point 
>> kernel.mark("sem_up")
>>
>> Should this work yet?
> 
> Yes it should work - depending on which version of Mathieu's patches 
> you've got.  I've bet we've got differing versions if you are getting 
> the "bad __markers_string section" message.  I've been using the version 
> of Mathieu's patches that Andrew Morton has.  I can send you a copy of 
> the patches I've been using if you'd like.

I'm using a version of the Andrew's patches, but perhaps not the latest.  Please send me what you're using.

> 
> One more thing - your marker is called "sem_down", but you look to be 
> putting a probe on "sem_up"...
> 

Oops, cut-and-paste error.  I do have a "sem_up" marker as well.

BTW, what data can be accessed in a SystemTap marker probe handler?  Can it access the data defined by the marker or any local or global variables?

Thanks,
Mike



More information about the Systemtap mailing list