Re: 2.4.13pre5aa1

Dipankar Sarma (dipankar@in.ibm.com)
Fri, 19 Oct 2001 12:44:37 +0530


In article <1003470485.913.13.camel@phantasy> Robert Love wrote:
> On Fri, 2001-10-19 at 00:19, Andrea Arcangeli wrote:
>> Only in 2.4.13pre3aa1: 00_files_struct_rcu-2.4.10-04-1
>> Only in 2.4.13pre5aa1: 00_files_struct_rcu-2.4.10-04-2

> I want to point out to preempt-kernel users that RCU is not
> preempt-safe. The implicit locking assumed from per-CPU data structures
> is defeated by preemptibility.

> (Actually, FWIW, I think I can think of ways to make RCU preemptible but
> it would involve changing the write-side quiescent code for the case
> where the pointers were carried over the task switches. Probably not
> worth it.)

I agree. Differentiating between context switches that do or don't
carry over pointers requires several additional complications
that are probably not worth it at this moment.

> This is not to say RCU is worthless with a preemptible kernel, but that
> we need to make it safe (and then make sure it is still a performance
> advantage, but I don't think this would add much overhead). Note this
> is clean, simply wrapping the read code in non-preemption statements.

Yes. The lookup of data protected by RCU should be done with preemption
disabled.

preempt_disable();
traverse linked list or such things protected by RCU.
preempt_enable();

Thanks
Dipankar

-- 
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/