Messages in this thread | | | Date | Mon, 17 Sep 2007 19:41:22 -0400 | From | John Blackwood <> | Subject | Re: [ofa-general] [PATCH] [WORKAROUND] CONFIG_PREEMPT_RT and ib_umad_close() issue |
| |
Roland Dreier wrote: > Thanks for the explanation... > > > But basically, with CONFIG_PREEMPT_RT enabled, the lock points, such as > > aqcuiring a spinlock, potentially become places where the current task > > may be context switched out / preempted. > > > > Therefore, when a call is made to lock a spinlock for example, the > > caller should not currently have irqs disabled, or preemption disabled, > > since a context switch may occur. > > this doesn't seem relevant here...
Hi Roland,
right. just some background info.
> > void fastcall rt_downgrade_write(struct rw_semaphore *rwsem) > > { > > BUG(); > > } > > this seems to be the problem... the -rt patch turns downgrade_write() > into a BUG(). > > I need to look at the locking in user_mad.c again, but I think it may > be possible to replace both places that do downgrade_write() with > up_write() followed by down_read(). > > - R.
that sounds like it would be a good solution for both preempt rt and non-preempt rt kernels.
thanks again for looking at this for us. - 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/
| |