Re: q-tools OOPS: Fixed perfmon.

From: Martin Hicks <mort_at_bork.org>
Date: 2003-12-10 00:46:06
On Mon, 2003-12-08 at 20:24, Matthew Wilcox wrote:
> On Tue, Dec 09, 2003 at 11:17:56AM +1100, Peter Chubb wrote:
> > Here's a  fix for non-preemption safety in perfmon.c.
> > 
> > I haven't tried it while running a preemption stress test, but this
> > allows q-syscollect to work.
> > 
> > ===== arch/ia64/kernel/perfmon.c 1.67 vs edited =====
> > --- 1.67/arch/ia64/kernel/perfmon.c   Tue Oct 28 17:36:50 2003
> > +++ edited/arch/ia64/kernel/perfmon.c Tue Dec  9 10:55:58 2003
> > @@ -5475,7 +5475,7 @@
> > 	int this_cpu;
> > 	int ret;
> >  
> > -	this_cpu = smp_processor_id();
> > +	this_cpu = get_cpu();
> > 	min      = pfm_stats[this_cpu].pfm_ovfl_intr_cycles_min;
> > 	max      = pfm_stats[this_cpu].pfm_ovfl_intr_cycles_max;
> 
> surely there needs to be a matching put_cpu() or else preempt is forever
> disabled.  no?

I agree.

(from include/linux/smp.h)
#define get_cpu()               ({ preempt_disable(); smp_processor_id(); })
#define put_cpu()               preempt_enable()

mh

-- 
Martin Hicks || mort@bork.org || PGP/GnuPG: 0x4C7F2BEE


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Tue Dec 9 08:54:22 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:20 EST