Hi... > Thank you Mulyadi! Is there a recommended way to prevent priority > inversion when high priority tasks are waiting on data from a driver? Well, IMHO that's not called priority inversion, but just a matter of reducing blocking situation. And as long as you sleep while blocking, not busy looping, I say it's just fine. You can't really avoid that situation in many cases... > Do I just need to do all processing either in the syscall context or > under interrupt priority? Whenever possible, do lengthy operation on process context. > Just be be sure: timers and tasklets run under a software interrupt > context true... > therefore have a higher priority than all user processs Not really. I don't think they have "priority". The reality I see is, they are executed whenever the kernel code path back from interrupt to kernel/user space.. or at least when ksoftirqd gets a chance to run. Perhaps that's what you mean by "seems having higher priority than all user process". regards, Mulyadi. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ