Re: [PATCH 1/6] [watchdog] combine nmi_watchdog and softlockup

Frederic Weisbecker
2010-04-21T20:24:18Z

On Wed, Apr 21, 2010 at 01:50:21PM -0400, Don Zickus wrote:
> On Wed, Apr 21, 2010 at 07:27:33PM +0200, Frederic Weisbecker wrote:
> > Some minor things:
> >
> >
> > On Tue, Apr 20, 2010 at 11:23:58AM -0400, Don Zickus wrote:
> > > +#ifdef CONFIG_PERF_EVENTS_NMI
> > > +struct perf_event_attr wd_hw_attr = {
> > > + .type = PERF_TYPE_HARDWARE,
> > > + .config = PERF_COUNT_HW_CPU_CYCLES,
> > > + .size = sizeof(struct perf_event_attr),
> > > + .pinned = 1,
> > > + .disabled = 1,
> > > +};
> >
> >
> >
> > Shouldn't it be static?
>
> yes. thanks.
>
> >
> >
> > > +
> > > +/* Callback function for perf event subsystem */
> > > +void watchdog_overflow_callback(struct perf_event *event, int nmi,
> > > + struct perf_sample_data *data,
> > > + struct pt_regs *regs)
> > > +{
> > > + int this_cpu = smp_processor_id();
> > > + unsigned long touch_ts = per_cpu(watchdog_touch_ts, this_cpu);
> > > + char warn = per_cpu(watchdog_warn, this_cpu);
> >
> >
> >
> > You can use __get_cpu_var() here
>
> well, I already have this_cpu and need it later, I figured I would just
> use it with per_cpu and save _get_cpu_var the work of re-running
> smp_processor_id().

This is more about code clarity in fact. per_cpu() suggests we are
fetching something from another cpu.

This is a very minor issue though.