![]() | |||||||||||||
Messages in this thread |
On 06/27, Paul E. McKenney wrote: > > On Wed, Jun 28, 2006 at 01:13:58AM +0400, Oleg Nesterov wrote: > > > > Also, I can't understand the purpose of 2-nd synchronize_sched() in > > synchronize_srcu(). > > This one handles the srcu_read_unlock() analog of the situation you > are worried about above. The reader does not have memory barriers in > srcu_read_unlock(), so an access to the data structure might get > reordered to follow the decrement of .c[0] -- which would get messed > up by the following kfree(). Aha, I see. The last question. The 'srcu-2' you posted today does synchronize_srcu_flip() twice. You did it this way because srcu is optimized for readers, otherwise we could just add smp_rmb() into srcu_read_lock() - this should solve the problem as well. Is my understanding correct? Thanks! Oleg. - 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/ | ||||||||||||
| Last update: 2006-06-28 17:22 [from the cache] ©2003-2008 | |||||||||||||