On Thu, 28 Sep 2017 13:11:40 +0200
Jan Kiszka <jan.kis...@siemens.com> wrote:

> From: Jan Kiszka <jan.kis...@siemens.com>
> 
> If filter_mod is NULL, there is no need to add it to the list. This
> avoids premature termination of trace-cmd on systems without
> CONFIG_DYNAMIC_FTRACE.

Thanks, and it also fixes setting all functions needlessly being set in
the filter.

 # trace-cmd record -p function cat /sys/kernel/tracing/set_ftrace_filter | head
  plugin 'function'
initcall_blacklisted
run_init_process
try_to_run_init_process
do_one_initcall
rootfs_mount
name_to_dev_t
match_dev_by_uuid
init_linuxrc
bstat
calibration_delay_done
CPU0 data recorded at offset=0x446000
    1515520 bytes in size
CPU1 data recorded at offset=0x5b8000
    1540096 bytes in size
CPU2 data recorded at offset=0x730000
    1527808 bytes in size
CPU3 data recorded at offset=0x8a5000
    1540096 bytes in size

When it should be:

# trace-cmd record -p function cat /debug/tracing/set_ftrace_filter |head
  plugin 'function'
#### all functions enabled ####
CPU0 data recorded at offset=0x446000
    1605632 bytes in size
CPU1 data recorded at offset=0x5ce000
    1478656 bytes in size
CPU2 data recorded at offset=0x737000
    1601536 bytes in size
CPU3 data recorded at offset=0x8be000
    1576960 bytes in size
CPU 0: 8600 events lost
CPU 1: 5705 events lost
CPU 2: 920 events lost
CPU 3: 2225 events lost

-- Steve


> 
> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
> ---
>  trace-record.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/trace-record.c b/trace-record.c
> index 020a373..a0b6541 100644
> --- a/trace-record.c
> +++ b/trace-record.c
> @@ -4680,7 +4680,7 @@ void trace_record (int argc, char **argv)
>               }
>       }
>  
> -     if (!filtered)
> +     if (!filtered && instance->filter_mod)
>               add_func(&instance->filter_funcs,
>                        instance->filter_mod, "*");
>  

Reply via email to