Enabling semaphore-enabled probes system-wide requires poking
the semaphore’s memory in each process, I’m afraid. We can come
up with some implementation that would hook new process creation
and try to enable the semaphore when the relevant library gets loaded,
but it sounds a bit fragile. It could be interesting to explore
implementation alternatives for this. To hermetically enable the probe
we would need to synchronously block loading the provider’s library
into the target until we can modify the semaphore. This isn’t something
a BPF program can do, so it would require some external mechanism.

> On Jan 17, 2018, at 03:44, Kiran T <[email protected]> wrote:
> 
> Thanks Sasha, Yonghong.
> Looks like both php and python use semaphores.  Is it fundamentally
> not possible to enable this systemwide or is it a feature which hasn't
> been implemented?
> Maybe we get pids of the process as they hit another probe and then
> get the semaphore addresses and enable them?
> Or is there a way to start the processes with the semaphore enabled --
> a elf indicator or something?  Just thinking out loud.
> 
> Thanks,
> Kiran
> 
>> On Mon, Jan 15, 2018 at 10:30 PM, Sasha Goldshtein <[email protected]> 
>> wrote:
>> Please note that some USDT probes have an associated "semaphore",
>> which is really just a memory location that the probed code checks
>> before actually invoking the probe. You cannot enable USDT probes that
>> have a semaphore system-wide, without a process ID, because the
>> semaphore location has to be poked in each target process.
>> 
>> To see if your probes have an associated semaphore, just run tplist with
>> -v -v and it will print out the semaphore address for each probe. If it's
>> 0, you're good to do system-wide tracing.
>> 
>> Sasha
>> 
>> 
>> On Tue, Jan 16, 2018 at 8:08 AM Y Song via iovisor-dev
>> <[email protected]> wrote:
>>> 
>>> Kiran,
>>> 
>>> Yes, tracing through USDT without PID should work.
>>> You can just remove "-p" parameter and give a try.
>>> 
>>> Please try latest bcc as it fixed a few bugs.
>>> Let us know if you hit any issues.
>>> 
>>> Yonghong
>>> 
>>> 
>>> On Mon, Jan 15, 2018 at 5:11 PM, Kiran T via iovisor-dev
>>> <[email protected]> wrote:
>>>> I meant to say
>>>> 
>>>> Can one request to monitor binaries -- like with
>>>> uprobes/uretprobes but with USDT?
>>>> 
>>>>> On Mon, Jan 15, 2018 at 5:09 PM, Kiran T <[email protected]> wrote:
>>>>> Hi
>>>>> All the examples on tracing processes with USDT require the pid of the
>>>>> traced program:
>>>>> 
>>>>> https://github.com/iovisor/bcc/tree/master/examples/tracing
>>>>> 
>>>>> Can one not request to monitor binaries -- like with
>>>>> uprobes/uretprobes but with USDT?
>>>>> 
>>>>> I am trying to trace php scripts running on a webserver, and USDT
>>>>> would be ideal.  But, I won't have the pid of the process that will be
>>>>> spawned by the webserver in advance.
>>>>> 
>>>>> Thanks,
>>>>> Kiran
>>>> _______________________________________________
>>>> iovisor-dev mailing list
>>>> [email protected]
>>>> https://lists.iovisor.org/mailman/listinfo/iovisor-dev
>>> _______________________________________________
>>> iovisor-dev mailing list
>>> [email protected]
>>> https://lists.iovisor.org/mailman/listinfo/iovisor-dev
_______________________________________________
iovisor-dev mailing list
[email protected]
https://lists.iovisor.org/mailman/listinfo/iovisor-dev

Reply via email to