>> >> RT drivers are also not installed on our system. >> > >> > Maybe I look wrong at nucleus/shadow.c, but I see only two reasons >> > for for xnshadow_relax being called for a secondary mode syscall: >> > >> > - a call requiring primary mode was made and the switchback flag is >> > set (which itself can have two reasons, either the fact that the >> > syscall uses it, the only one being currently rt_timer_set_mode, or >> > the fact that the caller runs with the SCHED_OTHER policy and does >> > not hold a mutex) >> > >> > - a call with the adaptive flag was made, handled in primary mode, >> > but returned -ENOSYS, which means the call needs to be retried in >> > secondary mode. >> > >> >> You are right. We have implemented some syscalls the require primary mode >> (since they could block) but should switch back to secondary. These syscalls >> are using attributes >> >> __xn_exec_primary | __xn_exec_switchback > > Well then the tasks blocked with a stack trace like what you showed > are blocked when coming back from such syscalls. Does this happen > often, or are these syscall seldom used?
In this application the switchback syscalls are used rather often. Regards, Christoph _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
