On Thu, 2009-07-16 at 08:59 -0400, James H. Anderson wrote: > > Raistlin wrote: > > Also, I'm not sure I can find in the FMLP paper information about the > > possibility of a task to suspend itself (e.g., I/O completion) while > > holding a short lock... I assume this is not recommended, but may be > > wrong, and, in that case, I hope Prof. Anderson and Bjorn will excuse > > and correct me. :-) > > > > > This is a really excellent point and something I probably should have > mentioned. We developed the FMLP strictly for real-time (only) > workloads. We were specifically looking at protecting memory-resident > resources (not I/O). The FMLP would have to be significantly extended > to work in settings where these assumptions don't hold. One thing I've been thinking about is extending lockdep to help verify things like this. If we were to annotate a syscall/trap with something like: lockdep_assume_rt() And teach lockdep about non-RT blocking objects, we could validate that the callchain down from lockdep_assume_rt() would not indeed contain a non-RT resource, but also that we don't take locks which might in other another code path. That is, suppose: sys_foo() lockdep_assume_rt() mutex_lock(&my_lock) vs sys_bar() mutex_lock(&my_lock) down_read(&mm->mmap_sem) vs page-fault down_read(&mm->mmap_sem) lock_page(page) Would indeed generate a warning because mmap_sem is known to block on IO, and there is a dependency (through sys_bar()) between my_lock and mmap_sem, therefore sys_foo()'s assumption is invalid. -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html