On Wed, Aug 21, 2013 at 06:42:17PM +0200, Frederic Weisbecker wrote: > hw_nmi_get_sample_period() is simply a conversion from a period > to cycles. Lets generalize the API naming so that it can be used for > wider purpose than just watchdog perf event settings. Also it makes the > function name less opaque about what it really does. >
<snip> > diff --git a/arch/x86/include/asm/cycles.h b/arch/x86/include/asm/cycles.h > new file mode 100644 > index 0000000..7dedeb3 > --- /dev/null > +++ b/arch/x86/include/asm/cycles.h > @@ -0,0 +1,11 @@ > +#ifndef _ASM_X86_CYCLES_H > +#define _ASM_X86_CYCLES_H > + > +#include <linux/time.h> > +#include <asm/tsc.h> > + > +static inline u64 nsecs_to_cycles(u64 nsecs) > +{ > + return (u64)((cpu_khz) * nsecs) / NSEC_PER_MSEC; > +} > +#endif /* #ifndef _ASM_X86_CYCLES_H */ > diff --git a/arch/x86/kernel/apic/hw_nmi.c b/arch/x86/kernel/apic/hw_nmi.c > index a698d71..4015906 100644 > --- a/arch/x86/kernel/apic/hw_nmi.c > +++ b/arch/x86/kernel/apic/hw_nmi.c > @@ -19,13 +19,6 @@ > #include <linux/module.h> > #include <linux/delay.h> > > -#ifdef CONFIG_HARDLOCKUP_DETECTOR > -u64 hw_nmi_get_sample_period(int watchdog_thresh) > -{ > - return (u64)(cpu_khz) * 1000 * watchdog_thresh; > -} > -#endif > - > #ifdef arch_trigger_all_cpu_backtrace > /* For reliability, we're prepared to waste bits here. */ > static DECLARE_BITMAP(backtrace_mask, NR_CPUS) __read_mostly; > diff --git a/kernel/watchdog.c b/kernel/watchdog.c > index 1241d8c..e04887c 100644 > --- a/kernel/watchdog.c > +++ b/kernel/watchdog.c > @@ -26,6 +26,7 @@ > #include <linux/sched/rt.h> > > #include <asm/irq_regs.h> > +#include <asm/cycles.h> > #include <linux/kvm_para.h> > #include <linux/perf_event.h> Do you have to wrap the above with #ifdef CONFIG_HARDLOCKUP_DETECTOR? Otherwise non-x86 boxes won't compile unless I missed stub nsecs_to_cycles() somewhere. Cheers, Don -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/