User Details
- User Since
- Sep 8 2016, 3:21 PM (426 w, 1 d)
Jun 20 2024
I ran this on an M3, seems to work fine. I was debating if it would make sense to define a macro specifying how many arguments there are, but it seems fairly unlikely that we'll need that anywhere else, so this looks good to me.
May 2 2024
Apr 22 2024
I ran the tests with this applied on amd64, had a few kmods load/unload concurrently for a while and looked through the concurrency around the patching code. Everything seems to work fine on my end.
Apr 21 2024
@avg It looks like this hit stable as well so will also need to be reverted before the release is cut: https://cgit.freebsd.org/src/commit/?h=stable/14&id=fb9c50f983ff6bdd6f33a22ae7d5b391435dd02a
Apr 7 2024
Looking at the code a little bit further, it seems that
@avg This seems to introduce a kernel panic when -x bufpolicy=ring is used:
Feb 26 2024
Jan 2 2024
Missing comma in man page.
Address @markj's comments.
Dec 8 2023
Update the diff to address a few output alignment issues when not using structured output via xo_emit(). Without the added xo_flush() calls, the output from xo_emit() would be printed after all the other output is printed via fprintf(). Also added a comment explaining why xo_flush() is called in those situations.
Nov 1 2023
That's pretty terrible, given that all flavors of xo_emit* turn into the same codepath (xo_do_emit). Can you isolate this into something I can debug, or send me your current patch (phil@freebsd.org) and I'll see if I can do it?
@phil I've tried to do a basic implementation using xo_create_to_file and then implementing dt_emit() by redirecting buffered output and sprintf output to the regular printf output (it becomes dt_vprintf since i have a va_list instead of variadic arguments). However, I've noticed that if I do regular text output using
Oct 20 2023
Oct 19 2023
Update the diff. This diff should address the following:
Oct 18 2023
Sep 8 2023
Add missing information to the man page and fix some bits in it (e.g. using .Fn for action names).
Updated the diff with documentation in the dtrace(1) man page, as well as a bug fix when it comes to naming aggregations. Namely, min, max, sum and count were all called count in the final output due to missing checks. These are now addressed.
Sep 7 2023
Sep 6 2023
Attempt #2 at addressing @markj's comments... Forgot one gettimeofday
Address some comments by @markj. The man page comment is still true, as I will be updating that when all the documentation comes in.
I don't see a reason to avoid adding it to dtrace.1?
Sep 5 2023
Sep 4 2023
That's true, it's late :). Updated the diff. Thanks!
Aug 25 2023
Jul 25 2023
Add a missing newline to the option file and regenerate src.conf.5.
Remove a leftover .\".
Address the comments by markj and emaste.
Jul 24 2023
Add tools/build/options/WITH_DTRACE_ASAN and update src.conf.
Jan 24 2023
Dec 7 2022
Tested it on my end and it works. Code also looks good to me. Thanks!
Mar 5 2022
I've read through the man page changes twice and couldn't find anything wrong. LGTM but maybe a read through by someone from docs would be a good idea.
Mar 2 2022
Both seem reasonable to me. I'll aim to run some more tests with this and look it over one more time in detail by Friday and flag if I find anything, but overall looks good to me. Thanks for working on this!
Overall the patch looks good to me. I've run all of this under ASAN + UBSAN (with the full patch set applied) and nothing was flagged in this code as problematic when running the DTrace test suite and the FreeBSD build. I feel like it might be a good idea to properly restructure the code around CTFv2 and CTFv3 to account for other versions in the API rather than relying on the "else" case always being v3, but aside from that LGTM. @markj: what do you think about the alignment warning/error propagation?
Feb 24 2022
The code looks good to me, but it probably needs man page changes like @debdrup mentioned. I also wonder if adding a comment at the top of the header somewhere simply stating what CTFv2 and CTFv3 are and how they differ at a high level makes sense. Perhaps in one or two short sentences so that if someone unfamiliar with CTF wants to simply use the header knows what they're working with without needing to read through a fairly detailed man page? Do you have any thoughts on this?
This looks good to me. Thanks!
The original CTF header has a bunch of useful comments describing the format. Perhaps these things should be included in this header too? While I appreciate that this is an import, those comments have helped me quite a bit when dealing with CTF and IMO should be included.
Dec 10 2021
Sep 23 2021
Sep 12 2021
Thanks for writing this up @mhorne, much appreciated! I've left a few comments from my experience of setting it up with QEMU + KVM today and the confusion I had while reading the existing documentation, as well as the confusion that I would probably have while reading this.
Sep 4 2021
@jhb Any chance you could push this? I've been using this for months and it's worked well for me.
Jun 16 2021
Jun 15 2021
May 27 2021
This seems reasonable to me.
May 16 2021
I've been using this locally and found it *extremely* useful, and frankly was quite surprised when I found out that EV_ENABLE/EV_DISABLE trashed udata originally.
May 13 2021
Remove a whole bunch of noise compared to the previous diff.
Update the diff with -U999999
Apr 1 2021
@markj 's comments.
Added -x libdir and -x syslibdir as suggested by @markj
Mar 27 2021
Mar 26 2021
Aug 27 2018
Why "additional"? The problem exists regardless since fbt_invop() returns after the first matching tracepoint. The problem was invisible before ifuncs since before that all tracepoints had distinct addresses. This patch just hides the problem in the common case.
I'm a little worried that this may cause additional confusion if someone expects multiple probes to fire at that point. I wonder if a better workaround would be to just add a warning message whenever DTrace is called, or perhaps when someone calls dtrace -l, in the man page or something along the lines until we fix? Is there a reason we can't fix this in 13 and MFC the changes?
May 8 2018
Preemptively remove a redundant check for INKERNEL(fp).
Apr 30 2018
Had a quick skim, but LGTM.
Apr 21 2018
Apr 12 2018
Is this good to land? Thanks!
Apr 6 2018
Address the other comments by @markj and fix a misleading word in the dtrace_probe_exit() comment.
Address comments by @markj.
Apr 4 2018
Apr 3 2018
Is there anything else I can do for this to land?
Mar 28 2018
Should I make any more changes for this to land? As an aside note: I've tried to make the interface as simple as possible to use with the args[0-2] being consistent.