On May 6, 2008, at 8:21 AM, Dirk-Willem van Gulik wrote:
>
> On May 5, 2008, at 9:27 PM, Theo Schlossnagle wrote:
>
>> The patch has some nastiness to it that I'm sure people would want
>> to strategize on cleaning up. The main issue being that Apache is
>> constructed from a bunch of static apr/libtool built libraries.
>> DTrace doesn't work on archives. So, I've got some bloody knuckles
>> from bending the build system to keep things as normal ELF objects.
>>
>> I had a first good step... and then a red herring issue that I
>> worked through with the DTrace team led me to a much less-elegant
>> way of building. I could revert to the original process (ld -r -o
>> the objects into library-esque packages) as DTrace can work on those.
>>
>> The probes are neatly defined and placed, but the patches to the
>> build system are gruesome.
>>
>> The apr-util patch to the apr_hooks.h is simple and affords some
>> nice probability for future probe uses.
>>
>> Docs on these probes are available here:
>>
>> https://labs.omniti.com/trac/project-dtrace/wiki/
>> Applications#Apache2.2.x
>>
>> I'm not on this list -- Cc me on pertinent responses please.
>
> Works lovely on Solaris with the normal/real libtool - but not with
> Justin's. On MacOSX I think there is something wrong with the
> linker. Either MacOS does not need the extra -G or -h is enough on
> all platforms.
>
> What is the downside/penalty for making this a default ? Or should
> this always be an optional thing - set at ./configure time ?
I see no issues with making this the default and having a --disable-
dtrace. I can see a reason that someone might wish to turn them off
-- thought that someone isn't me.
Note, that to get all the apr_hooks linked up (which allows timing
hook call-times and classifying system calls by hook name and phase)
we need to patch apr_hooks.h. The patch for that changes flow
slightly (but not outcome) and has no cost when disabled. Also, the
way I wrote that was to use another define to turn that on
"APR_DTRACE_PROVIDER". So, anyone using apr-util for hooks can enable
or disable probes on those hooks with that define.
--
Theo Schlossnagle
Esoteric Curio -- http://lethargy.org/
OmniTI Computer Consulting, Inc. -- http://omniti.com/