Re: [PATCHv2] tracing - support multiple pids in set_pid_ftrace file

From: Li Zefan
Date: Tue Sep 15 2009 - 21:02:11 EST


jolsa@xxxxxxxxxx wrote:
> Adding the possibility to set more than 1 pid in the set_pid_ftrace file,
> thus allowing to trace more than 1 independent processes.
>
> Usage:
>
> sh-4.0# echo 284 > ./set_ftrace_pid
> sh-4.0# cat ./set_ftrace_pid
> 284
> sh-4.0# echo 1 >> ./set_ftrace_pid
> sh-4.0# echo 0 >> ./set_ftrace_pid
> sh-4.0# cat ./set_ftrace_pid
> swapper tasks
> 1
> 284
> sh-4.0# echo 4 > ./set_ftrace_pid
> sh-4.0# cat ./set_ftrace_pid
> 4
> sh-4.0# echo > ./set_ftrace_pid
> sh-4.0# cat ./set_ftrace_pid
> no pid
> sh-4.0#
>
>
> wbr,
> jirka
>
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>

Looks good.

Reviewed-by: Li Zefan <lizf@xxxxxxxxxxxxxx>

a few nitpicks.

> /* set when tracing only a pid */

This comment should be removed too.

> -struct pid *ftrace_pid_trace;
> static struct pid * const ftrace_swapper_pid = &init_struct_pid;
>
...
> +static int ftrace_pid_add(int p)
> +{
> + struct pid *pid;
> + struct ftrace_pid *fpid;
> + int ret = -EINVAL;
> +
> + mutex_lock(&ftrace_lock);
> +
> + if (!p)
> + pid = ftrace_swapper_pid;
> + else
> + pid = find_get_pid(p);
> +
> + if (!pid)
> + goto out;
> +
> + list_for_each_entry(fpid, &ftrace_pids, list)
> + if (fpid->pid == pid)
> + goto out_put;

rather than returning EINVAL, return EEXIST or just return 0?

> +
> + ret = -ENOMEM;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/