Re: real-time process

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> "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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux