>>>>> "Nagaraj" == Nagaraj <nagaraj@smartyantra.com> writes: >> If you don't do a blocking call, you will never leave CPU and thus the >> machine will not do anything else. Even kernel threads won't run - they >> are high priority normal proceses, not realtime. Nagaraj> No, what i mean is do not block in the kernel, do a sleep() Nagaraj> in the application. Nagaraj> for( buff_index = i = 0; i < xfer_count; i++, buff_index = Nagaraj> (buff_index+1)%MAX_BUFFERS ) { Nagaraj> sleep(1000); Nagaraj> read( buff_fd, (mbuff +buff_index*BUFF_SIZE), BUFF_SIZE ); Nagaraj> } Nagaraj> This i hv tested for a bandwidth of 20 Mbits/sec. Nagaraj> I did that first with a blocking call, which resulted in frames being Nagaraj> displayed with a delay ( due to the time between ur blocking call returning, Nagaraj> and application refilling the buffer ). Can you post a pseudocode of the variant with "blocking call" ? I'm really tempted to call the above code bullshit and utter crap, but, hey, one can always learn something new, maybe in fact it is a fine example of programminng excelence and I'm a complete idiot. Why the "blocking call" variant performed so poorly ? ~velco -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/