[PATCH V6 21/26] coresight: etm-perf: new PMU driver for ETM tracers

Alexander Shishkin alexander.shishkin at linux.intel.com
Fri Dec 11 07:18:46 PST 2015


Mathieu Poirier <mathieu.poirier at linaro.org> writes:

> +static void etm_event_start(struct perf_event *event, int flags)
> +{
> +	int cpu = smp_processor_id();
> +	struct etm_cpu_data *cpu_data;
> +	struct etm_event_data *event_data;
> +	struct perf_output_handle *handle = this_cpu_ptr(&ctx_handle);
> +	struct coresight_device *sink, *csdev = per_cpu(csdev_src, cpu);
> +
> +	if (!csdev)
> +		goto fail;
> +
> +	/*
> +	 * Deal with the ring buffer API and get a handle on the
> +	 * session's information.
> +	 */
> +	event_data = perf_aux_output_begin(handle, event);
> +	if (WARN_ON_ONCE(!event_data))
> +		goto fail;

Hmm, perf_aux_output_begin() returning NULL is not WARN-worthy and is
actually a normal situation, for example, if the buffer is not
configured yet (which like I suggested in the other email should be a
separate thing from the *event* configuration).

perf_aux_output_begin() will also return NULL if there's no room in the
buffer.

Regards,
--
Alex



More information about the linux-arm-kernel mailing list