Messages in this thread | | | From | Puranjay Mohan <> | Subject | Re: [RFC PATCH] riscv: Implement HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS | Date | Thu, 14 Mar 2024 14:16:04 +0000 |
| |
Björn Töpel <bjorn@kernel.org> writes:
> > Hmm, depending on RISC-V's CMODX path, the pro/cons CALL_OPS vs dynamic > trampolines changes quite a bit. > > The more I look at the pains of patching two instruction ("split > immediates"), the better "patch data" + one insn patching look.
I was looking at how dynamic trampolines would be implemented for RISC-V.
With CALL-OPS we need to patch the auipc+jalr at function entry only, the ops pointer above the function can be patched atomically.
With a dynamic trampoline we need a auipc+jalr pair at function entry to jump to the trampoline and then another auipc+jalr pair to jump from trampoline to ops->func. When the ops->func is modified, we would need to update the auipc+jalr at in the trampoline.
So, I am not sure how to move forward here, CALL-OPS or Dynamic trampolines?
Thanks, Puranjay
| |