Get rid of the 'push rbp' removal in this patch.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
May 26 2023
May 25 2023
Address comments.
In D39229#916822, @markj wrote: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.
In D39229#916821, @christos wrote:In D39229#916539, @markj wrote: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().
In D39229#916539, @markj wrote:I'd suggest posting that as its own patch, since it's needed independent of whether we remove the push %rbp check.
In D39229#916539, @markj wrote: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 24 2023
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 23 2023
Approved.
Approved.
Approved.
In D38732#891505, @christos wrote:I don't think there are any pending changes for this PR, it can get through.
Split line.
In D39504#915855, @markj wrote:Consider whether we might want to simply implement kinst_trampoline_fill() once per platform. It's not exactly a lot of code.
Consider whether we might want to simply implement kinst_trampoline_fill() once per platform. It's not exactly a lot of code.
Update tramp fill.
Make the algorithm endian-agnostic.
May 22 2023
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.
Approved (with the suggested change applied)
May 15 2023
Fix LL/SC exclusion algorithm.
May 5 2023
Add some spaces.
Remove dtrace_cddl.h ifdefs as they'll also be needed by the aarch64 port.
May 4 2023
In D39884#909681, @mhorne wrote: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.
In D39884#909646, @christos wrote:In D39884#909620, @mhorne wrote: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.
In D39884#909620, @mhorne wrote: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?
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.
Address Mitchell's comments.
return 1 not 0
Exclude unsafe arm64 exception handlers.
Fix styling error.
Add riscv to dtraceall
May 3 2023
Bail out if kinst doesn't exist (i.e the architecture doesn't support it).
May 2 2023
Add libdwarf in Makefile.inc1 (Thanks Mark).
May 1 2023
Address Mark's comments.
Update to match D39504.
Make KINST_TRAMP_FILL into a regular function.
Ignore LL/SC blocks.
Apr 30 2023
Apr 29 2023
Apr 28 2023
Remove unused KINST_PUSHL_RBP define.
Apr 27 2023
Fix Makefile conflict, check if dtracetest is already loaded before attempting to load it.
Apr 20 2023
Apr 18 2023
Much better, thanks.