On Fri, Aug 20, 2010 at 12:29:00PM -0700, Paul E. McKenney wrote:
> On Fri, Aug 20, 2010 at 10:59:19PM +0900, Simon Horman wrote:
> > On Fri, Aug 20, 2010 at 10:33:21PM +0900, Simon Horman wrote:
> > > Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
[ snip ]
> > > @@ -223,8 +223,8 @@ int unregister_ip_vs_scheduler(struct ip
> > > /*
> > > * Remove it from the d-linked scheduler list
> > > */
> > > - list_del(&scheduler->n_list);
> > > - write_unlock_bh(&__ip_vs_sched_lock);
> > > + list_del_rcu(&scheduler->n_list);
> > > + spin_unlock_bh(&ip_vs_sched_mutex);
> > On further reading, I believe that I need a synchronize_rcu(); here,
> Good catch!
> However, you actually need synchronize_rcu_bh() to match your
> rcu_read_lock_bh() calls. Also, given Julian's comment, you probably
> need something to show that this conversion is a real improvement.
Thanks. As suggested by Julian and others, I've decided to just
use a spinlock and not use RCU for this.
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html