lkml.org 
[lkml]   [2018]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v9 0/4] Uprobes: Support SDT markers having reference count (semaphore)
Date

On 08/21/2018 01:04 PM, Naveen N. Rao wrote:
> Song Liu wrote:
>> I am testing the patch set with the following code:
>>
>> #include <stdio.h>
>> #include <unistd.h>
>>
>> volatile short semaphore = 0;
>>
>> int for_uprobe(int c)
>> {
>>         printf("%d\n", c + 10);
>>         return c + 1;
>> }
>>
>> int main(int argc, char *argv[])
>> {
>>         for_uprobe(argc);
>>         while (1) {
>>                 sleep(1);
>>                 printf("semaphore %d\n", semaphore);
>>         }
>> }
>>
>> I created a uprobe on function for_uprobe(), that uses semaphore as
>> reference counter:
>>
>>   echo "p:uprobe_1 /root/a.out:0x49a(0x1036)" >> uprobe_events
>
> Is that even valid? That _looks_ like a semaphore, but I'm not quite sure that it qualifies as an _SDT_ semaphore. Do you see this issue if you instead use the macros provided by <sys/sdt.h> to create SDT markers?
>

Right. By default SDT reference counters(semaphore) goes into .probes
section:

[25] .probes PROGBITS 000000000060102c 00102c 000004 00 WA 0 0 2

which has PROGBITS set. So this works fine. And there are many other
things which are coded into <sys/sdt.h>. So the official way to use
SDT markers should be through that.

Ravi

\
 
 \ /
  Last update: 2018-08-21 13:59    [W:0.071 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site