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

Johannes Stezenbach js at linuxtv.org
Tue Jun 7 00:00:50 CEST 2005


Oliver Endriss wrote:
> Johannes Stezenbach wrote:
> > The code looks broken. If ret == -ERESTARTSYS (is what you get), then it
> > is no timeout, but wait_event_interruptible_timeout() got interrupted.
> > I bet vdr is sending some signals around.
> > 
> > Try using wait_event_timeout(..., HZ/5), i.e. non-interruptible but
> > with a sensible timeout. 10*HZ is much too long, IMHO.
> 
> IIRC I increased the timeout to 10*HZ because osd transfers are very
> slow if there are 3 or 4 recordings running at the same time...

Well, if you ask for trouble, you get some...
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?

> Anyway, I've never seen any -ERESTARTSYS errors.

Me neither. But this proves nothing.

Johannes




More information about the linux-dvb mailing list