Using per-CPU and per-thread trampolines is expensive and error-prone,
since we're rewriting the same memory blocks constantly. Per-probe
trampolines solve this problem by giving each probe its own block of
executable memory, which more or less remains the same after the initial
write.
What this patch does, is get rid of the initialization code which
allocates a trampoline for each thread., Each port of kinst willand instead let each port of
eventually retire kinst_md_init() and kinst_md_deinit(),kinst allocate a trampoline for each new probe created. as thoseIt also sets up
functions are only used to allocate the per-CPU trampolines, and will
instead allocate athe infrastructure needed to support the new trampoline for each new probe createdscheme.
This change is not currently supported on amd64, as the amd64 port needs
further changes to work, so this is a temporary/gradual patch to fix the
riscv and arm64 ports.