All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-tip-commits@vger.kernel.org, vincent.weaver@maine.edu,
	eranian@google.com, hpa@zytor.com, efault@gmx.de,
	peterz@infradead.org, jolsa@redhat.com,
	torvalds@linux-foundation.org, tglx@linutronix.de,
	ak@linux.intel.com, rostedt@goodmis.org, acme@redhat.com,
	mingo@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [tip:perf/core] x86, tracing, perf: Add trace point for MSR accesses
Date: Fri, 4 Dec 2015 13:11:15 +0100	[thread overview]
Message-ID: <20151204121115.GA21524@pd.tnic> (raw)
In-Reply-To: <tip-07b41f5cf37b34ef3de4f40fbaf8547abe690abb@git.kernel.org>

On Fri, Dec 04, 2015 at 03:59:42AM -0800, tip-bot for Andi Kleen wrote:
> Commit-ID:  07b41f5cf37b34ef3de4f40fbaf8547abe690abb
> Gitweb:     http://git.kernel.org/tip/07b41f5cf37b34ef3de4f40fbaf8547abe690abb
> Author:     Andi Kleen <ak@linux.intel.com>
> AuthorDate: Tue, 1 Dec 2015 17:00:59 -0800
> Committer:  Ingo Molnar <mingo@kernel.org>
> CommitDate: Fri, 4 Dec 2015 10:58:34 +0100
> 
> x86, tracing, perf: Add trace point for MSR accesses
> 
> For debugging low level code interacting with the CPU it is often
> useful to trace the MSR read/writes. This gives a concise summary of
> PMU and other operations.
> 
> perf has an ad-hoc way to do this using trace_printk, but it's
> somewhat limited (and also now spews ugly boot messages when enabled)
> 
> Instead define real trace points for all MSR accesses.
> 
> This adds three new trace points: read_msr and write_msr and rdpmc.
> 
> They also report if the access faulted (if *_safe is used)
> 
> This allows filtering and triggering on specific MSR values, which
> allows various more advanced debugging techniques.
> 
> All the values are well defined in the CPU documentation.
> 
> The trace can be post processed with
> Documentation/trace/postprocess/decode_msr.py to add symbolic MSR
> names to the trace.
> 
> I only added it to native MSR accesses in C, not paravirtualized or in
> entry*.S (which is not too interesting)
> 
> Originally the patch kit moved the MSRs out of line.  This uses an
> alternative approach recommended by Steven Rostedt of only moving the
> trace calls out of line, but open coding the access to the jump label.
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Acked-by: Steven Rostedt <rostedt@goodmis.org>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Cc: Mike Galbraith <efault@gmx.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Stephane Eranian <eranian@google.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Vince Weaver <vincent.weaver@maine.edu>
> Link: http://lkml.kernel.org/r/1449018060-1742-3-git-send-email-andi@firstfloor.org
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> ---

...

> diff --git a/arch/x86/lib/msr.c b/arch/x86/lib/msr.c
> index 4362373..004c861 100644
> --- a/arch/x86/lib/msr.c
> +++ b/arch/x86/lib/msr.c
> @@ -1,6 +1,8 @@
>  #include <linux/module.h>
>  #include <linux/preempt.h>
>  #include <asm/msr.h>
> +#define CREATE_TRACE_POINTS
> +#include <asm/msr-trace.h>
>  
>  struct msr *msrs_alloc(void)
>  {
> @@ -108,3 +110,27 @@ int msr_clear_bit(u32 msr, u8 bit)
>  {
>  	return __flip_bit(msr, bit, false);
>  }
> +
> +#ifdef CONFIG_TRACEPOINTS
> +void do_trace_write_msr(unsigned msr, u64 val, int failed)
> +{
> +	trace_write_msr(msr, val, failed);
> +}
> +EXPORT_SYMBOL(do_trace_write_msr);
> +EXPORT_TRACEPOINT_SYMBOL(write_msr);
> +
> +void do_trace_read_msr(unsigned msr, u64 val, int failed)
> +{
> +	trace_read_msr(msr, val, failed);
> +}
> +EXPORT_SYMBOL(do_trace_read_msr);
> +EXPORT_TRACEPOINT_SYMBOL(read_msr);
> +
> +void do_trace_rdpmc(unsigned counter, u64 val, int failed)
> +{
> +	trace_rdpmc(counter, val, failed);
> +}
> +EXPORT_SYMBOL(do_trace_rdpmc);
> +EXPORT_TRACEPOINT_SYMBOL(rdpmc);

Any particular reason why those are EXPORT_SYMBOL and not
EXPORT_SYMBOL_GPL?

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

  reply	other threads:[~2015-12-04 12:11 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02  1:00 [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen
2015-12-02  1:00 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Andi Kleen
2015-12-02  1:56   ` Steven Rostedt
2015-12-04 11:59   ` [tip:perf/core] " tip-bot for Andi Kleen
2015-12-06 13:18   ` tip-bot for Andi Kleen
2015-12-02  1:00 ` [PATCH 3/4] x86: Add trace point for MSR accesses Andi Kleen
2015-12-02  2:03   ` Steven Rostedt
2015-12-04 11:59   ` [tip:perf/core] x86, tracing, perf: " tip-bot for Andi Kleen
2015-12-04 12:11     ` Borislav Petkov [this message]
2015-12-04 18:28       ` Andi Kleen
2015-12-04 18:30         ` Borislav Petkov
2015-12-04 22:18           ` Andi Kleen
2015-12-04 22:27             ` Borislav Petkov
2015-12-04 22:35           ` H. Peter Anvin
2015-12-04 22:48             ` Borislav Petkov
2015-12-04 22:57               ` H. Peter Anvin
2015-12-06 13:19   ` tip-bot for Andi Kleen
2015-12-02  1:01 ` [PATCH 4/4] perf, x86: Remove old MSR perf tracing code Andi Kleen
2015-12-04 12:00   ` [tip:perf/core] perf/x86: " tip-bot for Andi Kleen
2015-12-06 13:19   ` tip-bot for Andi Kleen
2015-12-04 11:58 ` [tip:perf/core] x86/headers: Don't include asm/processor.h in asm /atomic.h tip-bot for Andi Kleen
2015-12-06 13:18 ` tip-bot for Andi Kleen

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=20151204121115.GA21524@pd.tnic \
    --to=bp@alien8.de \
    --cc=acme@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=efault@gmx.de \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=vincent.weaver@maine.edu \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.