Thursday 2 February 2012

Its raining.

No its not raining, but its mighty cold...

Started playing around with USDT - need to iron out some bugs. Alas,
if you run the simple-c example app, and reload the driver, it will
panic the kernel. C'est la vie.

Hope to fix in the next day or two.

Its worth briefly describing "why". When you run an application
which has user space probes (USDT), the application will talk to the
dtrace driver and dynamically create new probes against the PID
of the process and the probes it creates. You can see these by
running "dtrace -l" and diffing a before and after scenario.

Alas, when you terminate the process, the USDT probes arent removed,
and this tickles a problem (which I need to solve).

What dtrace is trying to do is monitor processes as they die, and
removing these stale probes, but it is not.

Now that my other dtrace problems appear to be over (subject to any
naughty regressions I introduce), I can spend a little more time
on USDT and go into more detail.

One area to understand is how a USDT works. I have written about this
before and theres some good web articles on this. The technology is remarkably
simple - but the implementation requires everything to be "just right"
(we are dealing with kernel and user space, after all).



Post created by CRiSP v10.0.23a-b6166


No comments:

Post a Comment