On Thu, May 25, 2017 at 10:55:47PM -0700, Alexei Starovoitov wrote:

> +++ b/kernel/bpf/arraymap.c
> @@ -462,26 +462,22 @@ static void *perf_event_fd_array_get_ptr(struct bpf_map 
> *map,
>  
>       event = perf_file->private_data;
>       ee = ERR_PTR(-EINVAL);
> +     /* Per-task events are not supported */
> +     if (event->attach_state & PERF_ATTACH_TASK)
> +             goto err_out;
>  
>       attr = perf_event_attrs(event);
>       if (IS_ERR(attr) || attr->inherit)
>               goto err_out;

> +     /* TRACEPOINT and BREAKPOINT not supported in perf_event_read_local */

I cannot find reason for this comment. That is, why would
perf_event_read_local() not support those two types?

> +     if (attr->type == PERF_TYPE_TRACEPOINT ||
> +         attr->type == PERF_TYPE_BREAKPOINT)
> +             goto err_out;
>  
> +     ee = bpf_event_entry_gen(perf_file, map_file);
> +     if (ee)
> +             return ee;
> +     ee = ERR_PTR(-ENOMEM);
>  
>  err_out:
>       fput(perf_file);

Reply via email to