Re: [PATCH v2 5/6] trace: Add tracepoints to call functioninterrupt handlers

From: Peter Zijlstra
Date: Thu Jul 28 2011 - 08:13:13 EST


On Wed, 2011-07-27 at 11:57 -0700, Vaibhav Nagarnaik wrote:
> @@ -172,6 +173,7 @@ void generic_smp_call_function_interrupt(void)
> struct call_function_data *data;
> int cpu = smp_processor_id();
>
> + trace_call_function_ipi_entry(0);
> /*
> * Shouldn't receive this interrupt on a cpu that is not yet online.
> */
> @@ -239,7 +241,7 @@ void generic_smp_call_function_interrupt(void)
>
> csd_unlock(&data->csd);
> }
> -
> + trace_call_function_ipi_exit(0);
> }
>
> /*
> @@ -252,6 +254,7 @@ void generic_smp_call_function_single_interrupt(void)
> unsigned int data_flags;
> LIST_HEAD(list);
>
> + trace_call_function_single_ipi_entry(0);
> /*
> * Shouldn't receive this interrupt on a cpu that is not yet online.
> */
> @@ -282,6 +285,7 @@ void generic_smp_call_function_single_interrupt(void)
> if (data_flags & CSD_FLAG_LOCK)
> csd_unlock(data);
> }
> + trace_call_function_single_ipi_exit(0);
> }

The problem with this is that some archs only have a single IPI and
multiplex all IPIs on top, in that case you're either nesting interrupt
tracepoints or missing a part.

I really think you're doing this at the wrong level.

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