[PATCH] limit streamdev client's ringbuffer timeouts to more sane values

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

 



On 4/5/07, Artur Skawina <art_k@xxxxx> wrote:
>
> Well, the streamdev-client reads data from a ringbuffer and when there
> isn't anything
> to read it tries to sleep for 1us and loops. This wasn't a problem when
> the timer
> resolution was in the 1000..10000us range (1000..100Hz); the usleep(1)
> call slept
> for one or more milliseconds.
> With the high-res timers in kernel 2.6.21+ usleep(1) is no longer treated
> as
> usleep(10000) and the streamdev client is almost unusable; it uses most of
> the cpu
> and causes hundreds of thousands context switches per second.
> This gets rid of the almost-busy-loop.



How about his approach?

--- streamdev/client/filter.c.orig      2007-04-05 20:45:04.000000000 -0700
+++ streamdev/client/filter.c   2007-04-05 20:45:44.000000000 -0700
@@ -135,7 +135,7 @@
                        }
                        m_RingBuffer->Del(TS_SIZE);
                } else
-                       usleep(1);
+                       cCondWait::SleepMs(1);
        }
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/vdr/attachments/20070405/15818b07/attachment.htm

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux