[lkml]   [2002]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [BKPATCH] Read-Copy Update 2.5
Hi Rusty,

On Tue, Aug 27, 2002 at 10:24:30AM +1000, Rusty Russell wrote:
> In message <> 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) =
> > +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.

Dipankar Sarma <>
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
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:28    [W:0.139 / U:0.440 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site