Re: __rcu_process_callbacks() in Linux 2.6

2007-11-28 Thread Paul E. McKenney
On Tue, Nov 27, 2007 at 10:21:08PM -0800, Paul E. McKenney wrote: > On Tue, Nov 27, 2007 at 05:49:15PM -0800, Paul E. McKenney wrote: > > On Mon, Nov 26, 2007 at 06:39:58PM -0800, Paul E. McKenney wrote: > > > On Mon, Nov 26, 2007 at 02:48:08PM -0800, James Huang wrote: [ . . . ] > > > That is co

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-27 Thread Paul E. McKenney
Monday, November 26, 2007 2:21 PM > > > > To: James Huang > > > > Subject: Fw: __rcu_process_callbacks() in Linux 2.6 > > > > > > > > - Forwarded Message > > > > From: Manfred Spraul <[EMAIL PROTECTED]> > > > &

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-27 Thread Paul E. McKenney
> > > To: James Huang > > > Subject: Fw: __rcu_process_callbacks() in Linux 2.6 > > > > > > - Forwarded Message > > > From: Manfred Spraul <[EMAIL PROTECTED]> > > > To: James Huang <[EMAIL PROTECTED]> > > > Cc: P

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-26 Thread Paul E. McKenney
On Mon, Nov 26, 2007 at 02:48:08PM -0800, James Huang wrote: > > > -Original Message- > > From: James Huang [mailto:[EMAIL PROTECTED] > > Sent: Monday, November 26, 2007 2:21 PM > > To: James Huang > > Subject: Fw: __rcu_process_callbacks() in Linux 2.6

RE: __rcu_process_callbacks() in Linux 2.6

2007-11-26 Thread James Huang
> -Original Message- > From: James Huang [mailto:[EMAIL PROTECTED] > Sent: Monday, November 26, 2007 2:21 PM > To: James Huang > Subject: Fw: __rcu_process_callbacks() in Linux 2.6 > > - Forwarded Message > From: Manfred Spraul <[EMAIL PROTECTED]

__rcu_process_callbacks() in Linux 2.6

2007-11-26 Thread Manfred Spraul
Hi James, If I understand the issue correctly, then the race is: step 1: cpu 1: starts a new rcu batch (i.e. rcp->cur++, smb_mb) step 2: cpu 2: completes the quiet state step 3: cpu 2: reads pointer 0x123 (ptr to a rcu protected struct) step 4: cpu 3: call_rcu(0x123): rcu protected struct adde

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-21 Thread Paul E. McKenney
ve missed, this one is messy enough that an additional explicit memory barrier might be in order. Manfred? Dipankar? > Thanks, > James Huang > > > > - Original Message ---- > From: Paul E. McKenney <[EMAIL PROTECTED]> > To: James Huang <[EMAIL PROTECTED]&g

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-21 Thread James Huang
November 21, 2007 8:54:15 AM Subject: Re: __rcu_process_callbacks() in Linux 2.6 On Tue, Nov 20, 2007 at 07:43:09PM -0800, James Huang wrote: > Please disregard the previous email. > > > In the latest Linux 2.6 RCU implementation, __rcu_process_callbacks() is > coded as follows: > > >

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-21 Thread Paul E. McKenney
On Tue, Nov 20, 2007 at 07:43:09PM -0800, James Huang wrote: > Please disregard the previous email. > > > In the latest Linux 2.6 RCU implementation, __rcu_process_callbacks() is > coded as follows: > > > 422 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp, > 423

Re: __rcu_process_callbacks() in Linux 2.6

2007-11-20 Thread James Huang
Please disregard the previous email. In the latest Linux 2.6 RCU implementation, __rcu_process_callbacks() is coded as follows: 422 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp, 423struct rcu_data *rdp) 424 { 425if (rdp->curlist &

__rcu_process_callbacks() in Linux 2.6

2007-11-20 Thread James Huang
In the latest Linux 2.6 RCU implementation, __rcu_process_callbacks() is coded as follows: 422 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp, 423struct rcu_data *rdp) 424 { 425if (rdp->curlist && !rcu_batch_before(rcp->completed, rdp