Hi Tharindu... I support what others said. IMHO, what you need is a combination of the following recipes: 1. A high HZ, but not too high. Once again, this is truly trial and error work. 2. Real time priority. SCHED_FIFO and SCHED_RR are the priority you're looking for, but for that you need real time kernel patches, something like -rt from Ingo Molnar tree 3. You said you used CPU binding in Solaris, you can do the similar thing in Linux. Read more about CPU affinity and CPU taskset, I believe it is included in kernel source package under "Documentation" directory. 4. Or perhaps you need special crafted Linux kernel such as RTAI or RTLinux? 5. IMHO, blocking or not, that's not the primary problem. Even if your application is non blocking at all, but it is multithreaded, context switching between threads still happen. So, what you need here is a careful management of: thread creation and handling, anticipate most taken branch and optimize it, reduce or avoid memory thrashing at all cost. You might also need something like AIO (Async I/O) ... Those are my opinions so far. Good luck and wish you a big success! regards, Mulyadi. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/