Page MenuHomeFreeBSD
Feed Advanced Search

May 26 2023

christos updated the diff for D39229: kinst: add kinst_excluded().

Get rid of the 'push rbp' removal in this patch.

May 26 2023, 1:11 PM · DTrace

May 25 2023

christos updated the diff for D39884: kinst: port to riscv.

Address comments.

May 25 2023, 4:26 PM · riscv, DTrace
christos added inline comments to D39884: kinst: port to riscv.
May 25 2023, 3:06 PM · riscv, DTrace
jrtc27 added inline comments to D39884: kinst: port to riscv.
May 25 2023, 3:01 PM · riscv, DTrace
christos added inline comments to D39884: kinst: port to riscv.
May 25 2023, 2:45 PM · riscv, DTrace
jrtc27 added inline comments to D39884: kinst: port to riscv.
May 25 2023, 2:36 PM · riscv, DTrace
christos added a comment to D39229: kinst: add kinst_excluded().

The "push %rbp" check isn't sufficient though. Today you can do this: dtrace -n 'kinst::dtrace_probe:0'. This doesn't work very well.

I would like to at least fix that problem before reconsidering the push %rbp check.

May 25 2023, 2:22 PM · DTrace
markj added a comment to D39229: kinst: add kinst_excluded().

I'd suggest posting that as its own patch, since it's needed independent of whether we remove the push %rbp check.

I'm not sure these 2 changes are unrelated. Basically the push %rbp check was our "exclusion" mechanism, now replaced by kinst_excluded().

May 25 2023, 2:20 PM · DTrace
christos added a comment to D39229: kinst: add kinst_excluded().

I'd suggest posting that as its own patch, since it's needed independent of whether we remove the push %rbp check.

May 25 2023, 2:17 PM · DTrace
christos added inline comments to D39884: kinst: port to riscv.
May 25 2023, 1:39 PM · riscv, DTrace
markj added inline comments to D39884: kinst: port to riscv.
May 25 2023, 1:32 PM · riscv, DTrace
christos added a comment to D39229: kinst: add kinst_excluded().

Right now we still have the check for push %rbp at the beginning of each function, which covers most of the rest. Where exactly did we land on that? I know that there are traceable functions where push %rbp is not the first instruction, but perhaps there's another way to handle them?

May 25 2023, 1:23 PM · DTrace
christos added inline comments to D39884: kinst: port to riscv.
May 25 2023, 1:19 PM · riscv, DTrace

May 24 2023

jrtc27 added inline comments to D39884: kinst: port to riscv.
May 24 2023, 4:04 PM · riscv, DTrace
markj added inline comments to D39884: kinst: port to riscv.
May 24 2023, 3:56 PM · riscv, DTrace
jrtc27 added inline comments to D39884: kinst: port to riscv.
May 24 2023, 3:39 PM · riscv, DTrace
markj added inline comments to D39884: kinst: port to riscv.
May 24 2023, 3:35 PM · riscv, DTrace
markj added a comment to D39229: kinst: add kinst_excluded().

So we should certainly exclude dtrace_* like FBT does. Same for unwind_frame(). I'd suggest posting that as its own patch, since it's needed independent of whether we remove the push %rbp check.

May 24 2023, 3:14 PM · DTrace

May 23 2023

christos closed D39872: kinst: use dtrace_dis_get_byte() instead of own copy.
May 23 2023, 3:14 PM · DTrace
markj accepted D39872: kinst: use dtrace_dis_get_byte() instead of own copy.

Approved.

May 23 2023, 3:09 PM · DTrace
christos closed D39956: dtrace: add register bindings for arm64.
May 23 2023, 2:20 PM · DTrace
christos closed D39948: dtrace: remove ifdef around dtrace_instr_size().
May 23 2023, 2:20 PM · DTrace
christos closed D39955: dtrace: implement dtrace_instr_size() for arm64.
May 23 2023, 2:20 PM · ARM, DTrace
christos closed D38732: dtrace(1): add -d flag to dump D script post-dt_sugar.
May 23 2023, 2:20 PM · DTrace
markj accepted D39948: dtrace: remove ifdef around dtrace_instr_size().

Approved.

May 23 2023, 2:11 PM · DTrace
markj accepted D39955: dtrace: implement dtrace_instr_size() for arm64.

Approved.

May 23 2023, 2:11 PM · ARM, DTrace
christos added inline comments to D38732: dtrace(1): add -d flag to dump D script post-dt_sugar.
May 23 2023, 2:11 PM · DTrace
markj added inline comments to D38732: dtrace(1): add -d flag to dump D script post-dt_sugar.
May 23 2023, 2:09 PM · DTrace
christos added inline comments to D38732: dtrace(1): add -d flag to dump D script post-dt_sugar.
May 23 2023, 2:06 PM · DTrace
markj added a comment to D38732: dtrace(1): add -d flag to dump D script post-dt_sugar.

I don't think there are any pending changes for this PR, it can get through.

May 23 2023, 2:04 PM · DTrace
christos closed D39504: kinst: replace KINST_TRAMP_INIT.
May 23 2023, 1:59 PM · DTrace
markj accepted D39504: kinst: replace KINST_TRAMP_INIT.

Approved

May 23 2023, 1:51 PM · DTrace
christos updated the diff for D39504: kinst: replace KINST_TRAMP_INIT.

Split line.

May 23 2023, 1:45 PM · DTrace
christos added a comment to D39504: kinst: replace KINST_TRAMP_INIT.

Consider whether we might want to simply implement kinst_trampoline_fill() once per platform. It's not exactly a lot of code.

May 23 2023, 1:44 PM · DTrace
markj accepted D39504: kinst: replace KINST_TRAMP_INIT.

Consider whether we might want to simply implement kinst_trampoline_fill() once per platform. It's not exactly a lot of code.

May 23 2023, 1:23 PM · DTrace
christos updated the diff for D39884: kinst: port to riscv.

Update tramp fill.

May 23 2023, 1:18 PM · riscv, DTrace
christos updated the diff for D39504: kinst: replace KINST_TRAMP_INIT.

Make the algorithm endian-agnostic.

May 23 2023, 1:12 PM · DTrace
christos closed D39177: libdtrace: get rid of illumos ifdefs in dt_module_update(), fix dm_file and dm_modid.
May 23 2023, 12:56 PM · DTrace

May 22 2023

christos closed D39871: dtrace: export dtrace_dis_get_byte().
May 22 2023, 8:22 PM · DTrace
markj accepted D39871: dtrace: export dtrace_dis_get_byte().

Approved

May 22 2023, 8:18 PM · DTrace
markj added inline comments to D39504: kinst: replace KINST_TRAMP_INIT.
May 22 2023, 8:16 PM · DTrace
markj accepted D39177: libdtrace: get rid of illumos ifdefs in dt_module_update(), fix dm_file and dm_modid.

Approved, but the log message should explain the motivation in some detail: this function is highly OS-specific, and the ifdefs make it hard to read and follow what's going on. The removal of ".filename" section handling in particular should be mentioned.

May 22 2023, 8:05 PM · DTrace
markj accepted D39956: dtrace: add register bindings for arm64.

Approved (with the suggested change applied)

May 22 2023, 8:03 PM · DTrace

May 15 2023

christos updated the diff for D39884: kinst: port to riscv.

Fix LL/SC exclusion algorithm.

May 15 2023, 3:08 PM · riscv, DTrace

May 5 2023

christos added inline comments to D39884: kinst: port to riscv.
May 5 2023, 12:21 PM · riscv, DTrace
christos updated the diff for D39884: kinst: port to riscv.

Add some spaces.

May 5 2023, 12:20 PM · riscv, DTrace
christos updated the diff for D39884: kinst: port to riscv.

Remove dtrace_cddl.h ifdefs as they'll also be needed by the aarch64 port.

May 5 2023, 12:19 PM · riscv, DTrace

May 4 2023

christos added inline comments to D39884: kinst: port to riscv.
May 4 2023, 4:56 PM · riscv, DTrace
christos added a comment to D39884: kinst: port to riscv.

I agree, they provide some of the tools/definitions we need, but not all. I won't block this work on that, but we should work together to plan how it can be improved. FYI encoding.h is a generated file, so we should not stick custom definitions in there. I'll take a bit of time to consider how this can be organized so it is reusable elsewhere.

May 4 2023, 4:51 PM · riscv, DTrace
mhorne added a comment to D39884: kinst: port to riscv.

My main hesitation with the change is the magic numbers in the instruction parsing... named constants are preferable in general. I guess you looked a bit at what is provided by encoding.h and riscvreg.h?

I have, but it's quite limited, which is why I decided to go with no constants from encoding.h and riscvreg.h for now. I am however thinking of patching those 2 header files to include more constants which can be used in kinst.

May 4 2023, 4:50 PM · riscv, DTrace
christos added inline comments to D39884: kinst: port to riscv.
May 4 2023, 4:12 PM · riscv, DTrace
christos added a comment to D39884: kinst: port to riscv.

My main hesitation with the change is the magic numbers in the instruction parsing... named constants are preferable in general. I guess you looked a bit at what is provided by encoding.h and riscvreg.h?

May 4 2023, 4:09 PM · riscv, DTrace
mhorne added a comment to D39884: kinst: port to riscv.

Thanks for working on this, it's a great tool to have. I'll trust most of the functional parts to your testing and Mark's review.

May 4 2023, 3:46 PM · riscv, DTrace
christos added a reviewer for D39948: dtrace: remove ifdef around dtrace_instr_size(): mhorne.
May 4 2023, 2:45 PM · DTrace
mhorne accepted D39956: dtrace: add register bindings for arm64.

LGTM

May 4 2023, 2:41 PM · DTrace
christos added inline comments to D39956: dtrace: add register bindings for arm64.
May 4 2023, 2:37 PM · DTrace
christos updated the diff for D39956: dtrace: add register bindings for arm64.

Address Mitchell's comments.

May 4 2023, 2:35 PM · DTrace
mhorne added inline comments to D39956: dtrace: add register bindings for arm64.
May 4 2023, 2:29 PM · DTrace
christos updated the diff for D39229: kinst: add kinst_excluded().

return 1 not 0

May 4 2023, 1:58 PM · DTrace
markj added a reviewer for D39956: dtrace: add register bindings for arm64: arm64.
May 4 2023, 1:51 PM · DTrace
christos requested review of D39956: dtrace: add register bindings for arm64.
May 4 2023, 1:44 PM · DTrace
christos updated the diff for D39229: kinst: add kinst_excluded().

Exclude unsafe arm64 exception handlers.

May 4 2023, 12:57 PM · DTrace
christos updated the diff for D39955: dtrace: implement dtrace_instr_size() for arm64.

Fix styling error.

May 4 2023, 12:29 PM · ARM, DTrace
christos requested review of D39955: dtrace: implement dtrace_instr_size() for arm64.
May 4 2023, 12:28 PM · ARM, DTrace
christos updated the diff for D39884: kinst: port to riscv.

Add riscv to dtraceall

May 4 2023, 12:14 PM · riscv, DTrace

May 3 2023

christos updated the diff for D38825: libdtrace: implement inline function tracing for kinst.

Bail out if kinst doesn't exist (i.e the architecture doesn't support it).

May 3 2023, 4:43 PM · DTrace
christos updated the summary of D39948: dtrace: remove ifdef around dtrace_instr_size().
May 3 2023, 3:23 PM · DTrace
christos requested review of D39948: dtrace: remove ifdef around dtrace_instr_size().
May 3 2023, 3:22 PM · DTrace

May 2 2023

christos updated the diff for D38825: libdtrace: implement inline function tracing for kinst.

Add libdwarf in Makefile.inc1 (Thanks Mark).

May 2 2023, 6:05 PM · DTrace

May 1 2023

markj closed D39883: kinst: test lock in kinst_trampoline_dealloc_locked().
May 1 2023, 3:41 PM · DTrace
markj closed D39882: fbt: get rid of redundant defines.
May 1 2023, 3:40 PM · DTrace
christos updated the diff for D39884: kinst: port to riscv.

Address Mark's comments.

May 1 2023, 3:24 PM · riscv, DTrace
christos updated the diff for D39883: kinst: test lock in kinst_trampoline_dealloc_locked().

Update to match D39504.

May 1 2023, 2:35 PM · DTrace
christos updated the diff for D39504: kinst: replace KINST_TRAMP_INIT.

Make KINST_TRAMP_FILL into a regular function.

May 1 2023, 2:33 PM · DTrace
markj added inline comments to D39504: kinst: replace KINST_TRAMP_INIT.
May 1 2023, 2:20 PM · DTrace
markj added inline comments to D39884: kinst: port to riscv.
May 1 2023, 2:12 PM · riscv, DTrace
christos updated the diff for D39884: kinst: port to riscv.

Ignore LL/SC blocks.

May 1 2023, 12:49 PM · riscv, DTrace

Apr 30 2023

christos requested review of D39884: kinst: port to riscv.
Apr 30 2023, 2:17 PM · riscv, DTrace
markj accepted D39883: kinst: test lock in kinst_trampoline_dealloc_locked().
Apr 30 2023, 1:55 PM · DTrace
christos requested review of D39883: kinst: test lock in kinst_trampoline_dealloc_locked().
Apr 30 2023, 1:53 PM · DTrace
markj accepted D39882: fbt: get rid of redundant defines.
Apr 30 2023, 1:42 PM · DTrace
christos requested review of D39882: fbt: get rid of redundant defines.
Apr 30 2023, 11:51 AM · DTrace

Apr 29 2023

christos retitled D39229: kinst: add kinst_excluded() from kinst(4): add kinst_excluded() to kinst: add kinst_excluded().
Apr 29 2023, 10:21 AM · DTrace
christos retitled D39504: kinst: replace KINST_TRAMP_INIT from kinst(4): generalize KINST_TRAMP_INIT to kinst: generalize KINST_TRAMP_INIT.
Apr 29 2023, 10:21 AM · DTrace

Apr 28 2023

christos updated the summary of D39871: dtrace: export dtrace_dis_get_byte().
Apr 28 2023, 3:40 PM · DTrace
christos requested review of D39872: kinst: use dtrace_dis_get_byte() instead of own copy.
Apr 28 2023, 3:38 PM · DTrace
christos requested review of D39871: dtrace: export dtrace_dis_get_byte().
Apr 28 2023, 3:35 PM · DTrace
markj closed D39870: kinst(4): do not use DPCPU_ID_GET if we already have the tramp.
Apr 28 2023, 3:19 PM · DTrace
christos updated the diff for D39229: kinst: add kinst_excluded().

Remove unused KINST_PUSHL_RBP define.

Apr 28 2023, 3:11 PM · DTrace
markj accepted D39870: kinst(4): do not use DPCPU_ID_GET if we already have the tramp.
Apr 28 2023, 3:10 PM · DTrace
christos requested review of D39870: kinst(4): do not use DPCPU_ID_GET if we already have the tramp.
Apr 28 2023, 3:09 PM · DTrace

Apr 27 2023

christos updated the diff for D38825: libdtrace: implement inline function tracing for kinst.

Fix Makefile conflict, check if dtracetest is already loaded before attempting to load it.

Apr 27 2023, 3:54 PM · DTrace

Apr 20 2023

markj closed D39611: dtrace: add register bindings for RISC-V.
Apr 20 2023, 5:38 PM · riscv, DTrace
markj closed D39652: riscv/dtrace_subr.c: use dtrace_instr_size().
Apr 20 2023, 5:38 PM · riscv, DTrace
markj closed D39489: dtrace: expose dtrace_instr_size() to userland and implement it for RISC-V.
Apr 20 2023, 5:37 PM · DTrace
markj closed D39490: dtrace: get rid of uchar_t types.
Apr 20 2023, 5:37 PM · DTrace

Apr 18 2023

markj accepted D39611: dtrace: add register bindings for RISC-V.
Apr 18 2023, 3:53 PM · riscv, DTrace
markj accepted D39652: riscv/dtrace_subr.c: use dtrace_instr_size().
Apr 18 2023, 3:52 PM · riscv, DTrace
mhorne accepted D39652: riscv/dtrace_subr.c: use dtrace_instr_size().

Much better, thanks.

Apr 18 2023, 3:01 PM · riscv, DTrace
christos requested review of D39652: riscv/dtrace_subr.c: use dtrace_instr_size().
Apr 18 2023, 12:47 PM · riscv, DTrace