On Fri, May 28, 2010 at 2:59 PM, KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote: >> RT Task >> >> void non-RT-function() >> { >> system call(); >> buffer = malloc(); >> memset(buffer); >> } >> /* >> * We make sure this function must be executed in some millisecond >> */ >> void RT-function() >> { >> some calculation(); <- This doesn't have no dynamic characteristic >> } >> int main() >> { >> non-RT-function(); >> /* This function make sure RT-function cannot preempt by others */ >> set_RT_max_high_priority(); >> RT-function A(); >> set_normal_priority(); >> non-RT-function(); >> } >> >> We don't want realtime in whole function of the task. What we want is >> just RT-function A. >> Of course, current Linux cannot make perfectly sure RT-functionA can >> not preempt by others. >> That's because some interrupt or exception happen. But RT-function A >> doesn't related to any dynamic characteristic. What can justify to >> preempt RT-function A by other processes? > > As far as my observation, RT-function always have some syscall. because pure > calculation doesn't need deterministic guarantee. But _if_ you are really > using such priority design. I'm ok maximum NonRT priority instead maximum > RT priority too. Hmm. It's just example. but it would be not good exmaple. Let's change it with this. void RT-function() { int result = some calculation(); <- This doesn't have no dynamic characteristic *mmap_base = result; <-- mmap_base is mapped by GPIO device. } Could we allow preemption of this RT function due to other task's memory pressure? Of course, Linux is not Hard RT featured OS, I think. So I thinks it is a policy problem. If we think system memory pressure is more important than RT task and we _all_ agree such policy, we can allow it. But I don't hope it. -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href