[linux-dvb] problems and workaround when tuning to a channel with DD enabled

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

 



Oliver Endriss wrote:
> Johannes Stezenbach wrote:
> > IMHO it's bad to sleep uninterruptibly for longer than,
> > say, one second. But the way OSDSetBlock() is coded
> > one cannot interrupt it without messing up the internal
> > state. Or, maybe one could bail out after a BlitBitmap()
> > and return -ERESTARTSYS, so the whole ioctl will
> > be repeated?
> 
> With firmware 261d you could do that because Werner added a timeout for
> bitmap transfers. 261c and earlier would block until the ARM was
> rebooted... :(
> 
> Unfortunately, DPRAM bandwidth is a bottleneck. According to my test
> results, a short timeout will prevent the bitmap transfer to complete
> successfully under heavy load. So aborting+repeating the ioctl would
> not help.

Misunderstanding: When we sleep interruptibly we can use a long
timeout. But we need to correct the error handling so that
the ioctl is restarted when it got interrrupted, and the
current partial transfer (LoadBitmap/BlitBitmap pair) must
be terminated so the firmware state is not messed up.

> > > Anyway, I've never seen any -ERESTARTSYS errors.
> > 
> > Me neither. But this proves nothing.
> 
> Sure, but it should not happen unless vdr was killed.
> I wonder where this signals come from.

vdr sets a watchdog with alarm(). Signals could also come
from the kernel (SIGIO, SIGCHLD etc.). (I thought vdr uses
signals internally, but this doesn't seem to be true anymore).

Johannes



[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux