On Monday 10 September 2012 13:35, Or Gerlitz wrote: > Jack, Max > > Actually, can't we do well with rcu_read_lock() in mlx4_cq_completion() > as that commit documentation suggests? > I don't know. I do notice (in file include/linux/rcupdate.h) that rcu_read_lock/unlock is meant to be used in the interrupt context. Would it be sufficient (besides rcu_read_lock/unlock calls) to add a call rcu_synchronize() in mlx4_cq_free (after calling synchronize_irq)?
Could we also then dispense with the spinlocks in mlx4_cq_event() as well? Acquiring the SINGLE cq_table->lock spinlock for EVERY completion event of EVERY cq seems very nasty to me (probably why Roland did not do this), and it would clearly be desirable not to have to do this. -Jack -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
