@@ -333,6 +333,20 @@ static void *uprobe_producer_ret(void *input)
333333 return NULL ;
334334}
335335
336+ #ifdef __x86_64__
337+ __nocf_check __weak void uprobe_target_nop5 (void )
338+ {
339+ asm volatile (".byte 0x0f, 0x1f, 0x44, 0x00, 0x00" );
340+ }
341+
342+ static void * uprobe_producer_nop5 (void * input )
343+ {
344+ while (true)
345+ uprobe_target_nop5 ();
346+ return NULL ;
347+ }
348+ #endif
349+
336350static void usetup (bool use_retprobe , bool use_multi , void * target_addr )
337351{
338352 size_t uprobe_offset ;
@@ -448,6 +462,28 @@ static void uretprobe_multi_ret_setup(void)
448462 usetup (true, true /* use_multi */ , & uprobe_target_ret );
449463}
450464
465+ #ifdef __x86_64__
466+ static void uprobe_nop5_setup (void )
467+ {
468+ usetup (false, false /* !use_multi */ , & uprobe_target_nop5 );
469+ }
470+
471+ static void uretprobe_nop5_setup (void )
472+ {
473+ usetup (true, false /* !use_multi */ , & uprobe_target_nop5 );
474+ }
475+
476+ static void uprobe_multi_nop5_setup (void )
477+ {
478+ usetup (false, true /* use_multi */ , & uprobe_target_nop5 );
479+ }
480+
481+ static void uretprobe_multi_nop5_setup (void )
482+ {
483+ usetup (true, true /* use_multi */ , & uprobe_target_nop5 );
484+ }
485+ #endif
486+
451487const struct bench bench_trig_syscall_count = {
452488 .name = "trig-syscall-count" ,
453489 .validate = trigger_validate ,
@@ -506,3 +542,9 @@ BENCH_TRIG_USERMODE(uprobe_multi_ret, ret, "uprobe-multi-ret");
506542BENCH_TRIG_USERMODE (uretprobe_multi_nop , nop , "uretprobe-multi-nop" );
507543BENCH_TRIG_USERMODE (uretprobe_multi_push , push , "uretprobe-multi-push" );
508544BENCH_TRIG_USERMODE (uretprobe_multi_ret , ret , "uretprobe-multi-ret" );
545+ #ifdef __x86_64__
546+ BENCH_TRIG_USERMODE (uprobe_nop5 , nop5 , "uprobe-nop5" );
547+ BENCH_TRIG_USERMODE (uretprobe_nop5 , nop5 , "uretprobe-nop5" );
548+ BENCH_TRIG_USERMODE (uprobe_multi_nop5 , nop5 , "uprobe-multi-nop5" );
549+ BENCH_TRIG_USERMODE (uretprobe_multi_nop5 , nop5 , "uretprobe-multi-nop5" );
550+ #endif
0 commit comments