All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Ingo Molnar <mingo@redhat.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linaro-kernel@lists.linaro.org, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v2 5/5] X86: add IPI tracepoints
Date: Thu, 7 Aug 2014 11:33:02 -0400	[thread overview]
Message-ID: <20140807113302.55aee779@gandalf.local.home> (raw)
In-Reply-To: <1406318733-26754-6-git-send-email-nicolas.pitre@linaro.org>

Peter,

I'm pulling in Nicolas's changes to trace and the arm architectures. He
has this x86 patch. Do you think this would be fine as well? Otherwise,
I'll just add the arm patches, and push that for this merge window
(these patches have been out on the mailing list for some time, with no
changes).

-- Steve


On Fri, 25 Jul 2014 16:05:33 -0400
Nicolas Pitre <nicolas.pitre@linaro.org> wrote:

> On X86 there are already tracepoints for IRQ vectors through which IPIs
> are handled.  However this is highly X86 specific, and the IPI signaling
> is not currently traced.
> 
> This is an attempt at adding generic IPI tracepoints to X86.
> 
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
> ---
>  arch/x86/kernel/smp.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
> index be8e1bde07..d193609bea 100644
> --- a/arch/x86/kernel/smp.c
> +++ b/arch/x86/kernel/smp.c
> @@ -31,6 +31,16 @@
>  #include <asm/apic.h>
>  #include <asm/nmi.h>
>  #include <asm/trace/irq_vectors.h>
> +
> +#define CREATE_TRACE_POINTS
> +/*
> + * Those were defined in <asm/trace/irq_vectors.h> and cause problems
> + * when including <trace/events/ipi.h>.
> + */
> +#undef TRACE_INCLUDE_PATH
> +#undef TRACE_INCLUDE_FILE
> +#include <trace/events/ipi.h>
> +
>  /*
>   *	Some notes on x86 processor bugs affecting SMP operation:
>   *
> @@ -124,11 +134,13 @@ static void native_smp_send_reschedule(int cpu)
>  		WARN_ON(1);
>  		return;
>  	}
> +	trace_ipi_raise(cpumask_of(cpu), tracepoint_string("RESCHEDULE"));
>  	apic->send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR);
>  }
>  
>  void native_send_call_func_single_ipi(int cpu)
>  {
> +	trace_ipi_raise(cpumask_of(cpu), tracepoint_string("CALL_FUNCTION_SINGLE"));
>  	apic->send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR);
>  }
>  
> @@ -136,6 +148,8 @@ void native_send_call_func_ipi(const struct cpumask *mask)
>  {
>  	cpumask_var_t allbutself;
>  
> +	trace_ipi_raise(mask, tracepoint_string("CALL_FUNCTION"));
> +
>  	if (!alloc_cpumask_var(&allbutself, GFP_ATOMIC)) {
>  		apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
>  		return;
> @@ -252,8 +266,10 @@ finish:
>   */
>  static inline void __smp_reschedule_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("RESCHEDULE"));
>  	inc_irq_stat(irq_resched_count);
>  	scheduler_ipi();
> +	trace_ipi_exit(tracepoint_string("RESCHEDULE"));
>  }
>  
>  __visible void smp_reschedule_interrupt(struct pt_regs *regs)
> @@ -291,8 +307,10 @@ __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs)
>  
>  static inline void __smp_call_function_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("CALL_FUNCTION"));
>  	generic_smp_call_function_interrupt();
>  	inc_irq_stat(irq_call_count);
> +	trace_ipi_exit(tracepoint_string("CALL_FUNCTION"));
>  }
>  
>  __visible void smp_call_function_interrupt(struct pt_regs *regs)
> @@ -313,8 +331,10 @@ __visible void smp_trace_call_function_interrupt(struct pt_regs *regs)
>  
>  static inline void __smp_call_function_single_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("CALL_FUNCTION_SINGLE"));
>  	generic_smp_call_function_single_interrupt();
>  	inc_irq_stat(irq_call_count);
> +	trace_ipi_exit(tracepoint_string("CALL_FUNCTION_SINGLE"));
>  }
>  
>  __visible void smp_call_function_single_interrupt(struct pt_regs *regs)


WARNING: multiple messages have this Message-ID
From: rostedt@goodmis.org (Steven Rostedt)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 5/5] X86: add IPI tracepoints
Date: Thu, 7 Aug 2014 11:33:02 -0400	[thread overview]
Message-ID: <20140807113302.55aee779@gandalf.local.home> (raw)
In-Reply-To: <1406318733-26754-6-git-send-email-nicolas.pitre@linaro.org>

Peter,

I'm pulling in Nicolas's changes to trace and the arm architectures. He
has this x86 patch. Do you think this would be fine as well? Otherwise,
I'll just add the arm patches, and push that for this merge window
(these patches have been out on the mailing list for some time, with no
changes).

-- Steve


On Fri, 25 Jul 2014 16:05:33 -0400
Nicolas Pitre <nicolas.pitre@linaro.org> wrote:

> On X86 there are already tracepoints for IRQ vectors through which IPIs
> are handled.  However this is highly X86 specific, and the IPI signaling
> is not currently traced.
> 
> This is an attempt at adding generic IPI tracepoints to X86.
> 
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
> ---
>  arch/x86/kernel/smp.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
> index be8e1bde07..d193609bea 100644
> --- a/arch/x86/kernel/smp.c
> +++ b/arch/x86/kernel/smp.c
> @@ -31,6 +31,16 @@
>  #include <asm/apic.h>
>  #include <asm/nmi.h>
>  #include <asm/trace/irq_vectors.h>
> +
> +#define CREATE_TRACE_POINTS
> +/*
> + * Those were defined in <asm/trace/irq_vectors.h> and cause problems
> + * when including <trace/events/ipi.h>.
> + */
> +#undef TRACE_INCLUDE_PATH
> +#undef TRACE_INCLUDE_FILE
> +#include <trace/events/ipi.h>
> +
>  /*
>   *	Some notes on x86 processor bugs affecting SMP operation:
>   *
> @@ -124,11 +134,13 @@ static void native_smp_send_reschedule(int cpu)
>  		WARN_ON(1);
>  		return;
>  	}
> +	trace_ipi_raise(cpumask_of(cpu), tracepoint_string("RESCHEDULE"));
>  	apic->send_IPI_mask(cpumask_of(cpu), RESCHEDULE_VECTOR);
>  }
>  
>  void native_send_call_func_single_ipi(int cpu)
>  {
> +	trace_ipi_raise(cpumask_of(cpu), tracepoint_string("CALL_FUNCTION_SINGLE"));
>  	apic->send_IPI_mask(cpumask_of(cpu), CALL_FUNCTION_SINGLE_VECTOR);
>  }
>  
> @@ -136,6 +148,8 @@ void native_send_call_func_ipi(const struct cpumask *mask)
>  {
>  	cpumask_var_t allbutself;
>  
> +	trace_ipi_raise(mask, tracepoint_string("CALL_FUNCTION"));
> +
>  	if (!alloc_cpumask_var(&allbutself, GFP_ATOMIC)) {
>  		apic->send_IPI_mask(mask, CALL_FUNCTION_VECTOR);
>  		return;
> @@ -252,8 +266,10 @@ finish:
>   */
>  static inline void __smp_reschedule_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("RESCHEDULE"));
>  	inc_irq_stat(irq_resched_count);
>  	scheduler_ipi();
> +	trace_ipi_exit(tracepoint_string("RESCHEDULE"));
>  }
>  
>  __visible void smp_reschedule_interrupt(struct pt_regs *regs)
> @@ -291,8 +307,10 @@ __visible void smp_trace_reschedule_interrupt(struct pt_regs *regs)
>  
>  static inline void __smp_call_function_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("CALL_FUNCTION"));
>  	generic_smp_call_function_interrupt();
>  	inc_irq_stat(irq_call_count);
> +	trace_ipi_exit(tracepoint_string("CALL_FUNCTION"));
>  }
>  
>  __visible void smp_call_function_interrupt(struct pt_regs *regs)
> @@ -313,8 +331,10 @@ __visible void smp_trace_call_function_interrupt(struct pt_regs *regs)
>  
>  static inline void __smp_call_function_single_interrupt(void)
>  {
> +	trace_ipi_entry(tracepoint_string("CALL_FUNCTION_SINGLE"));
>  	generic_smp_call_function_single_interrupt();
>  	inc_irq_stat(irq_call_count);
> +	trace_ipi_exit(tracepoint_string("CALL_FUNCTION_SINGLE"));
>  }
>  
>  __visible void smp_call_function_single_interrupt(struct pt_regs *regs)

  reply	other threads:[~2014-08-07 15:33 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-25 20:05 [PATCH v2 0/5] generic IPI tracing Nicolas Pitre
2014-07-25 20:05 ` Nicolas Pitre
2014-07-25 20:05 ` [PATCH v2 1/5] tracing: Do not do anything special with tracepoint_string when tracing is disabled Nicolas Pitre
2014-07-25 20:05   ` Nicolas Pitre
2014-08-08  2:35   ` Steven Rostedt
2014-08-08  2:35     ` Steven Rostedt
2014-08-08  3:05     ` Nicolas Pitre
2014-08-08  3:05       ` Nicolas Pitre
2014-07-25 20:05 ` [PATCH v2 2/5] tracepoint: add generic tracepoint definitions for IPI tracing Nicolas Pitre
2014-07-25 20:05   ` Nicolas Pitre
2014-07-25 20:05 ` [PATCH v2 3/5] ARM: add IPI tracepoints Nicolas Pitre
2014-07-25 20:05   ` Nicolas Pitre
2014-07-28  5:34   ` Daniel Lezcano
2014-07-28  5:34     ` Daniel Lezcano
2014-08-06 19:51   ` Steven Rostedt
2014-08-06 19:51     ` Steven Rostedt
2014-07-25 20:05 ` [PATCH v2 4/5] ARM64: " Nicolas Pitre
2014-07-25 20:05   ` Nicolas Pitre
2014-08-06 19:52   ` Steven Rostedt
2014-08-06 19:52     ` Steven Rostedt
2014-08-06 20:28     ` Nicolas Pitre
2014-08-06 20:28       ` Nicolas Pitre
2014-08-07  9:18     ` Will Deacon
2014-08-07  9:18       ` Will Deacon
2014-08-07 15:18       ` Steven Rostedt
2014-08-07 15:18         ` Steven Rostedt
2014-07-25 20:05 ` [PATCH v2 5/5] X86: " Nicolas Pitre
2014-07-25 20:05   ` Nicolas Pitre
2014-08-07 15:33   ` Steven Rostedt [this message]
2014-08-07 15:33     ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140807113302.55aee779@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=catalin.marinas@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=hpa@zytor.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mingo@redhat.com \
    --cc=nicolas.pitre@linaro.org \
    --subject='Re: [PATCH v2 5/5] X86: add IPI tracepoints' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.