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