Include performance and multi-CPU scalability of uretprobes by avoiding a rather expensive (and somewhat limiting in terms of multi-CPU scalability) use of kmalloc()+kfree() combo for short-lived struct return_instance, used for keeping track of pending return uprobes. First few patches are preparatory doing some internal refactoring and setting things up for the actual struct return_instance reuse done in the last patch of the series. Andrii Nakryiko (4): uprobes: simplify session consumer tracking uprobes: decouple return_instance list traversal and freeing uprobes: ensure return_instance is detached from the list before freeing uprobes: reuse return_instances between multiple uretprobes within task include/linux/uprobes.h | 16 +++- kernel/events/uprobes.c | 176 +++++++++++++++++++++++++++------------- 2 files changed, 133 insertions(+), 59 deletions(-) -- 2.43.5