Re: [PATCH v1 1/5] perf: add context parameter to perf_event overflowhandler

From: Avi Kivity
Date: Sun Jun 05 2011 - 04:08:27 EST


On 06/03/2011 05:41 PM, Peter Zijlstra wrote:
On Wed, 2011-05-11 at 11:55 -0400, Avi Kivity wrote:
> +++ b/include/linux/perf_event.h
> @@ -709,7 +709,9 @@ struct perf_buffer {
>
> struct perf_sample_data;
>
> -typedef void (*perf_overflow_handler_t)(struct perf_event *, int,
> +typedef void (*perf_overflow_handler_t)(void *context,
> + struct perf_event *event,
> + int,
> struct perf_sample_data *,
> struct pt_regs *regs);
>
> @@ -855,6 +857,7 @@ struct perf_event {
> u64 id;
>
> perf_overflow_handler_t overflow_handler;
> + void *overflow_handler_context;
>
> #ifdef CONFIG_EVENT_TRACING
> struct ftrace_event_call *tp_event;

If you're adding a pointer here, then why pass it along in the callback
thing if it already has the perf_event *?

It seems to me the callback can easily do
event->overflow_handler_context if it needs the thing.

Makes sense. Will update.

(I would have preferred a caller-allocated perf_event with container_of(), but that's a huge change).

--
error compiling committee.c: too many arguments to function

--
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/