Messages in this thread |  | | Date | Tue, 27 Aug 2002 11:41:52 +0530 | From | Dipankar Sarma <> | Subject | Re: [BKPATCH] Read-Copy Update 2.5 |
| |
Hi Rusty,
On Tue, Aug 27, 2002 at 10:24:30AM +1000, Rusty Russell wrote: > In message <20020827022239.C31269@in.ibm.com> you write: > > +static struct rcu_data rcu_data[NR_CPUS] __cacheline_aligned; > > Not "static DEFINE_PER_CPU(struct rcu_data, rcu_data)"?
Yes, I can use per-cpu data areas here. Done.
> > > +/* Fake initialization to work around compiler breakage */ > > +DEFINE_PER_CPU(long, cpu_quiescent) = 0L; > > static? And I assume you're talking about the tendency for gcc 2.95 > to put uninitialized static vars in the bss, even if they are marked > as having a section attribute? If so, you should say so. > > > +#ifdef CONFIG_PREEMPT > > +/* Fake initialization to work around compiler breakage */ > > +DEFINE_PER_CPU(atomic_t[2], rcu_preempt_cntr) = > > + {ATOMIC_INIT(0), ATOMIC_INIT(0)}; > > +DEFINE_PER_CPU(atomic_t, *curr_preempt_cntr) = NULL; > > +DEFINE_PER_CPU(atomic_t, *next_preempt_cntr) = NULL; > > Also static I assume?
So, only statics are broken by gcc 2.95, right ? If so, then the fake initializers aren't required. I got bitten by this in another piece of RCU code where there was a static per-cpu tasklet and I got paranoic after that.
> > Other than that, it looks good. You should probably cc: Ingo Molnar > as it touches the scheduler...
Ok, I will do that from now on. Thanks for the review. I will have the new bits up as soon as I finish testing.
Thanks -- Dipankar Sarma <dipankar@in.ibm.com> http://lse.sourceforge.net Linux Technology Center, IBM Software Lab, Bangalore, India. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |