missing DTrace FBT return probes
Grier, James
Grier at netapp.com
Thu Nov 13 16:33:21 UTC 2014
On Wed, Jun 5, 2013 at 5:50 PM, Navdeep Parhar <np at freebsd.org> wrote: > A large number of kernel functions have an FBT entry probe but no return
> probe. I believe this is due to tail call optimization by the compiler.
> Should we disable this optimization for kernel configs that have DTrace
> support? The missing return probes make it very difficult to write
> DTrace scripts that want to set flags etc. at function entry and then
> clean them up on return.
>
> A quick sample from a recent HEAD shows ~4000 out of ~27000 functions
> are missing return probes. See the list of functions in these files
> (the ones listed in entry-only.txt do not have return probes).
>
> http://people.freebsd.org/~np/entry-only.txt
> http://people.freebsd.org/~np/entry.txt
> http://people.freebsd.org/~np/return.txt
>
> Regards,
> Navdeep
By trial and error, I discovered that it’s ‘-funit-at-a-time’ that does the dirty work, so
using ‘-fno-unit-at-a-time’ with -O2 we get all the return fbt probes. I haven’t determined
the performance impact of this.
More information about the freebsd-arch
mailing list