Message ID | 4D516C3CF4%linux@youmustbejoking.demon.co.uk |
---|---|
State | New |
Headers |
Received: from anchor-post-30.mail.demon.net ([194.217.242.88]) by www.linuxtv.org with esmtp (Exim 4.34) id 1DEzHc-00052c-Hn for vdr@linuxtv.org; Sat, 26 Mar 2005 01:36:08 +0100 Received: from youmustbejoking.demon.co.uk ([212.228.127.8] helo=pentagram.youmustbejoking.demon.co.uk) by anchor-post-30.mail.demon.net with esmtp (Exim 4.42) id 1DEzHl-000N4T-33 for vdr@linuxtv.org; Sat, 26 Mar 2005 00:36:18 +0000 Received: from [192.168.0.2] (helo=riscpc) by pentagram.youmustbejoking.demon.co.uk with esmtp (Exim 4.44) id 1DEzHj-0002c9-GX for vdr@linuxtv.org; Sat, 26 Mar 2005 00:36:15 +0000 Date: Sat, 26 Mar 2005 00:21:37 +0000 From: Darren Salt <linux@youmustbejoking.demon.co.uk> To: vdr@linuxtv.org Message-ID: <4D516C3CF4%linux@youmustbejoking.demon.co.uk> User-Agent: Messenger-Pro/3.13b10 (MsgServe/3.03) (RISC-OS/4.02) POPstar/2.06-ds.3 X-Editor: Zap 1.46 (23 Oct 2004) [TEST], ZapEmail 0.28.3 (03 Feb 2005) (32) X-SDate: Sat, 4225 Sep 1993 00:21:37 +0000 X-Message-Flag: Outlook Express is broken. Upgrade to mail(1). MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="1217165619--774598208--718920710" X-SA-Exim-Connect-IP: 192.168.0.2 X-SA-Exim-Mail-From: linux@youmustbejoking.demon.co.uk X-SA-Exim-Scanned: No (on pentagram.youmustbejoking.demon.co.uk); SAEximRunCond expanded to false Subject: [vdr] [PATCH] Hang when moving between editing marks X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Klaus Schmidinger's VDR <vdr@linuxtv.org> List-Id: Klaus Schmidinger's VDR <vdr.linuxtv.org> List-Unsubscribe: <http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr>, <mailto:vdr-request@linuxtv.org?subject=unsubscribe> List-Archive: <http://www.linuxtv.org/pipermail/vdr> List-Post: <mailto:vdr@linuxtv.org> List-Help: <mailto:vdr-request@linuxtv.org?subject=help> List-Subscribe: <http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr>, <mailto:vdr-request@linuxtv.org?subject=subscribe> X-List-Received-Date: Sat, 26 Mar 2005 00:36:08 -0000 Status: O X-Status: X-Keywords: X-UID: 1101 |
Commit Message
Darren Salt
March 26, 2005, 12:21 a.m. UTC
The attached patch should fix a hang (livelock) which can occur when moving between editing marks. Blame Timothy Baldwin if it doesn't work - he suggested it ;-)
Comments
Am Samstag 26 März 2005 01:21 schrieb Darren Salt: > The attached patch should fix a hang (livelock) which can occur when moving > between editing marks. Blame Timothy Baldwin if it doesn't work - he > suggested it ;-) Hey, good work! This solves one of the last the NPTL problems and makes Noad and VDRConvert usable again. S.
Sebastian Frei wrote: > Am Samstag 26 März 2005 01:21 schrieb Darren Salt: > >>The attached patch should fix a hang (livelock) which can occur when moving >>between editing marks. Blame Timothy Baldwin if it doesn't work - he >>suggested it ;-) > > Hey, good work! This solves one of the last the NPTL problems and makes Noad > and VDRConvert usable again. > Is NPTL working in vdr-1.3.23? I seem to recall timers would cause vdr to exit when using NPTL libs in previous vdr versions. Best Regards,
Am Samstag 26 März 2005 17:46 schrieb C.Y.M: > Sebastian Frei wrote: > > Am Samstag 26 März 2005 01:21 schrieb Darren Salt: > >>The attached patch should fix a hang (livelock) which can occur when > >> moving between editing marks. Blame Timothy Baldwin if it doesn't work - > >> he suggested it ;-) > > > > Hey, good work! This solves one of the last the NPTL problems and makes > > Noad and VDRConvert usable again. > > Is NPTL working in vdr-1.3.23? I seem to recall timers would cause vdr to > exit when using NPTL libs in previous vdr versions. > > Best Regards, > > > _______________________________________________ > vdr mailing list > vdr@linuxtv.org > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr My VDR works nice with the above patch. Sometimes it hangs when there is no signal, I heard this is also a NPTL problem. S.
Darren Salt wrote: > The attached patch should fix a hang (livelock) which can occur when moving > between editing marks. Blame Timothy Baldwin if it doesn't work - he > suggested it ;-) > > > > ------------------------------------------------------------------------ > > #! /bin/sh /usr/share/dpatch/dpatch-run > ## 10_livelock.dpatch by Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk> > ## > ## All lines beginning with `## DP:' are a description of the patch. > ## DP: Fix a livelock problem when jumping between editing marks. > > @DPATCH@ > diff -urNad vdr-1.3.23/dvbplayer.c /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c > --- vdr-1.3.23/dvbplayer.c 2005-03-25 23:45:25.789555968 +0000 > +++ /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c 2005-03-25 23:53:11.273645683 +0000 > @@ -376,6 +376,7 @@ > cPoller Poller; > if (DevicePoll(Poller, 100)) { > > + sched_yield(); > LOCK_THREAD; > > // Read the next frame from the file: Under which conditions do these lockups happen? Which output device is in use (FF DVB card or some software player)? I don't really see what difference this sched_yield() would make, so I'd like to understand this before simply throwing it in... Klaus
I demand that Klaus Schmidinger may or may not have written... > Darren Salt wrote: >> The attached patch should fix a hang (livelock) which can occur when >> moving between editing marks. Blame Timothy Baldwin if it doesn't work - >> he suggested it ;-) [snip] > Under which conditions do these lockups happen? > Which output device is in use (FF DVB card or some software player)? It's happened here: budget card, xine-lib. > I don't really see what difference this sched_yield() would make, so I'd > like to understand this before simply throwing it in... Quoting from the mail which described the patch: | It's livelock! | The thread which executes cDvbPlayer::Action(void) (in dvbplayer.c) locks | the cDvbPlayer object most of the time when an editing mark is first jumped | to. The symptoms are cured by adding a call to sched_yield() before | LOCK_THREAD in cDvbPlayer::Action(void).
Darren Salt wrote: > I demand that Klaus Schmidinger may or may not have written... > > >>Darren Salt wrote: >> >>>The attached patch should fix a hang (livelock) which can occur when >>>moving between editing marks. Blame Timothy Baldwin if it doesn't work - >>>he suggested it ;-) > > [snip] > > >>Under which conditions do these lockups happen? > > >>Which output device is in use (FF DVB card or some software player)? > > > It's happened here: budget card, xine-lib. Ah, as I suspected ;-) Could it be that the xine player doesn't implement cDevice::Poll() the way it is supposed to? My guess would be that in case of a still picture the xine player's Poll() function returns immediately instead of waiting for the given timeout. That would explain why everything appears to lock up. Could you please verify this? Klaus >>I don't really see what difference this sched_yield() would make, so I'd >>like to understand this before simply throwing it in... > > > Quoting from the mail which described the patch: > > | It's livelock! > > | The thread which executes cDvbPlayer::Action(void) (in dvbplayer.c) locks > | the cDvbPlayer object most of the time when an editing mark is first jumped > | to. The symptoms are cured by adding a call to sched_yield() before > | LOCK_THREAD in cDvbPlayer::Action(void).
El Sábado, 7 de Mayo de 2005 16:11, Klaus Schmidinger escribió: > Darren Salt wrote: > > The attached patch should fix a hang (livelock) which can occur when > > moving between editing marks. Blame Timothy Baldwin if it doesn't work - > > he suggested it ;-) > > > > > > > > ------------------------------------------------------------------------ > > > > #! /bin/sh /usr/share/dpatch/dpatch-run > > ## 10_livelock.dpatch by Timothy Baldwin > > <T.E.Baldwin99@members.leeds.ac.uk> ## > > ## All lines beginning with `## DP:' are a description of the patch. > > ## DP: Fix a livelock problem when jumping between editing marks. > > > > @DPATCH@ > > diff -urNad vdr-1.3.23/dvbplayer.c > > /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c --- > > vdr-1.3.23/dvbplayer.c 2005-03-25 23:45:25.789555968 +0000 > > +++ /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c 2005-03-25 23:53:11.273645683 > > +0000 @@ -376,6 +376,7 @@ > > cPoller Poller; > > if (DevicePoll(Poller, 100)) { > > > > + sched_yield(); > > LOCK_THREAD; > > > > // Read the next frame from the file: > > Under which conditions do these lockups happen? > > Which output device is in use (FF DVB card or some software player)? > > I don't really see what difference this sched_yield() would make, > so I'd like to understand this before simply throwing it in... > > Klaus > This patch resolve also my problems with cpu load with recents kernels (2.6.11....). Jose Alberto
Am Samstag 07 Mai 2005 16:11 schrieb Klaus Schmidinger: > > Under which conditions do these lockups happen? > > Which output device is in use (FF DVB card or some software player)? > It happens with my FF DVB-S. When jumping between cutmarks vdr hangs for a few minutes. I'm using NPTL and the patch fixes the problem. S.
Sebastian Frei schrieb: I was using the "livelock" patch when I updated to 1.3.23 (a few days after release) - I'm not using NPTL and with the patch replay was hanging a lot. Not while moving cutting markings, just while normal watching a recording. >Am Samstag 07 Mai 2005 16:11 schrieb Klaus Schmidinger: > > > >>Under which conditions do these lockups happen? >> >>Which output device is in use (FF DVB card or some software player)? >> >> >>It happens with my FF DVB-S. When jumping between cutmarks vdr hangs for a few >>minutes. I'm using NPTL and the patch fixes the problem. >> >>S. >> >>_______________________________________________ >>vdr mailing list >>vdr@linuxtv.org >>http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr >> >> >> >>
diff -urNad vdr-1.3.23/dvbplayer.c /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c --- vdr-1.3.23/dvbplayer.c 2005-03-25 23:45:25.789555968 +0000 +++ /tmp/dpep.odvcge/vdr-1.3.23/dvbplayer.c 2005-03-25 23:53:11.273645683 +0000 @@ -376,6 +376,7 @@ cPoller Poller; if (DevicePoll(Poller, 100)) { + sched_yield(); LOCK_THREAD; // Read the next frame from the file: