From: Mike Travis <travis@sgi.com>
To: Ingo Molnar <mingo@kernel.org>,
hpa@zytor.com, paulus@samba.org, linux-kernel@vger.kernel.org,
a.p.zijlstra@chello.nl, jason.wessel@windriver.com,
acme@ghostprotocols.net, hedi@sgi.com, sivanich@sgi.com,
tglx@linutronix.de
Cc: linux-tip-commits@vger.kernel.org
Subject: Re: [tip:x86/uv] x86/UV: Add uvtrace support
Date: Mon, 11 Nov 2013 11:09:04 -0800 [thread overview]
Message-ID: <52812B50.7050503@sgi.com> (raw)
In-Reply-To: <20131111185340.GA15854@gmail.com>
On 11/11/2013 10:53 AM, Ingo Molnar wrote:
>
> * tip-bot for Mike Travis <tipbot@zytor.com> wrote:
>
>> Commit-ID: 8eba18428ac926f436064ac281e76d36d51bd631
>> Gitweb: http://git.kernel.org/tip/8eba18428ac926f436064ac281e76d36d51bd631
>> Author: Mike Travis <travis@sgi.com>
>> AuthorDate: Mon, 23 Sep 2013 16:25:06 -0500
>> Committer: Ingo Molnar <mingo@kernel.org>
>> CommitDate: Tue, 24 Sep 2013 09:02:04 +0200
>>
>> x86/UV: Add uvtrace support
>>
>> This patch adds support for the uvtrace module by providing a
>> skeleton call to the registered trace function. It also
>> provides another separate 'NMI' tracer that is triggered by the
>> system wide 'power nmi' command.
>>
>> Signed-off-by: Mike Travis <travis@sgi.com>
>> Reviewed-by: Dimitri Sivanich <sivanich@sgi.com>
>> Reviewed-by: Hedi Berriche <hedi@sgi.com>
>> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
>> Cc: Paul Mackerras <paulus@samba.org>
>> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
>> Cc: Jason Wessel <jason.wessel@windriver.com>
>> Link: http://lkml.kernel.org/r/20130923212501.185052551@asylum.americas.sgi.com
>> Signed-off-by: Ingo Molnar <mingo@kernel.org>
>> ---
>> arch/x86/include/asm/uv/uv.h | 8 ++++++++
>> arch/x86/platform/uv/uv_nmi.c | 13 ++++++++++++-
>> 2 files changed, 20 insertions(+), 1 deletion(-)
>
> So I only noticed this too late:
>
>> diff --git a/arch/x86/include/asm/uv/uv.h b/arch/x86/include/asm/uv/uv.h
>> index 6b964a0..8b1283d 100644
>> --- a/arch/x86/include/asm/uv/uv.h
>> +++ b/arch/x86/include/asm/uv/uv.h
>> @@ -14,6 +14,13 @@ extern void uv_cpu_init(void);
>> extern void uv_nmi_init(void);
>> extern void uv_register_nmi_notifier(void);
>> extern void uv_system_init(void);
>> +extern void (*uv_trace_nmi_func)(unsigned int reason, struct pt_regs *regs);
>> +extern void (*uv_trace_func)(const char *f, const int l, const char *fmt, ...);
>> +#define uv_trace(fmt, ...) \
>> +do { \
>> + if (unlikely(uv_trace_func)) \
>> + (uv_trace_func)(__func__, __LINE__, fmt, ##__VA_ARGS__);\
>> +} while (0)
>> extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
>> struct mm_struct *mm,
>> unsigned long start,
>> @@ -26,6 +33,7 @@ static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; }
>> static inline int is_uv_system(void) { return 0; }
>> static inline void uv_cpu_init(void) { }
>> static inline void uv_system_init(void) { }
>> +static inline void uv_trace(void *fmt, ...) { }
>> static inline void uv_register_nmi_notifier(void) { }
>> static inline const struct cpumask *
>> uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm,
>> diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c
>> index 2579fbd..c171ca5 100644
>> --- a/arch/x86/platform/uv/uv_nmi.c
>> +++ b/arch/x86/platform/uv/uv_nmi.c
>> @@ -1,5 +1,5 @@
>> /*
>> - * SGI NMI support routines
>> + * SGI NMI/TRACE support routines
>> *
>> * This program is free software; you can redistribute it and/or modify
>> * it under the terms of the GNU General Public License as published by
>> @@ -36,6 +36,13 @@
>> #include <asm/uv/uv_hub.h>
>> #include <asm/uv/uv_mmrs.h>
>>
>> +void (*uv_trace_func)(const char *f, const int l, const char *fmt, ...);
>> +EXPORT_SYMBOL(uv_trace_func);
>> +
>> +void (*uv_trace_nmi_func)(unsigned int reason, struct pt_regs *regs);
>> +EXPORT_SYMBOL(uv_trace_nmi_func);
>> +
>> +
>> /*
>> * UV handler for NMI
>> *
>> @@ -551,6 +558,10 @@ int uv_handle_nmi(unsigned int reason, struct pt_regs *regs)
>> return NMI_DONE;
>> }
>>
>> + /* Call possible NMI trace function */
>> + if (unlikely(uv_trace_nmi_func))
>> + (uv_trace_nmi_func)(reason, regs);
>
> Nothing actually uses the uv_trace() methods, plus nobody actually sets
> uv_trace_func.
>
> Whatever hack this is, it has no place in the upstream kernel. I'll queue
> up a revert to make this pushable in this merge window.
>
> Thanks,
>
> Ingo
>
Hi Ingo,
Currently the uvtrace function is a separate module built out of
tree. It's pretty much prototype right now so not quite ready
for general use. It's used mostly to debug problems that are
timing and/or load sensitive as it's a very low overhead trace
module that includes high resolution timing.
Should I do this differently, perhaps with a register function?
Thanks,
Mike
next prev parent reply other threads:[~2013-11-11 19:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-23 21:24 [PATCH 0/7] x86/UV/KDB/NMI: Updates for NMI/KDB handler for SGI UV Mike Travis
2013-09-23 21:25 ` [PATCH 1/7] x86/UV: Move NMI support Mike Travis
2013-09-24 8:37 ` [tip:x86/uv] " tip-bot for Mike Travis
2013-09-23 21:25 ` [PATCH 2/7] x86/UV: Update UV support for external NMI signals Mike Travis
2013-09-24 8:37 ` [tip:x86/uv] " tip-bot for Mike Travis
2013-09-23 21:25 ` [PATCH 3/7] x86/UV: Add summary of cpu activity to UV NMI handler Mike Travis
2013-09-24 8:37 ` [tip:x86/uv] " tip-bot for Mike Travis
2013-09-23 21:25 ` [PATCH 4/7] x86/UV: Add kdump " Mike Travis
2013-09-24 8:37 ` [tip:x86/uv] " tip-bot for Mike Travis
2013-09-23 21:25 ` [PATCH 5/7] KGDB/KDB: add support for external NMI handler to call KGDB/KDB Mike Travis
2013-09-24 8:15 ` Ingo Molnar
2013-09-26 20:45 ` Jason Wessel
2013-10-03 5:45 ` Ingo Molnar
2013-09-23 21:25 ` [PATCH 6/7] x86/UV: Add call to KGDB/KDB from NMI handler Mike Travis
2013-09-23 21:25 ` [PATCH 7/7] x86/UV: Add uvtrace support Mike Travis
2013-09-24 8:38 ` [tip:x86/uv] " tip-bot for Mike Travis
2013-11-11 18:53 ` Ingo Molnar
2013-11-11 19:09 ` Mike Travis [this message]
2013-11-11 20:17 ` Ingo Molnar
2013-09-24 7:52 ` [PATCH 0/7] x86/UV/KDB/NMI: Updates for NMI/KDB handler for SGI UV Ingo Molnar
2013-09-24 13:51 ` Mike Travis
2013-09-24 14:59 ` Ingo Molnar
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=52812B50.7050503@sgi.com \
--to=travis@sgi.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=hedi@sgi.com \
--cc=hpa@zytor.com \
--cc=jason.wessel@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulus@samba.org \
--cc=sivanich@sgi.com \
--cc=tglx@linutronix.de \
/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.