Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-03 Thread Anssi Hannula
Ville Skyttä wrote:
 On Sunday 02 December 2007, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...

 On 12/02/07 14:34, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...
 I'll make it a 5 ms limit then, to allow default kernels to work.
 Valid HZ options are 100, 250, 300 and 1000, unless overridden by an
 arch-specific Kconfig file. (AFAICS, only mips does this, offering 48, 100,
 128, 250, 256, 1000 and 1024.)
 
 Not that I really know much at all about this, but how would this change 
 behave with NOHZ kernels?

Apparently resolution is reported as 1 ns regardless of HZ when NO_HZ is 
used:

$ ./hz
cTimeMs: using monotonic clock (resolution is 1 ns)
$ zcat /proc/config.gz | grep _HZ=
CONFIG_NO_HZ=y
CONFIG_HZ=100

-- 
Anssi Hannula

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Klaus Schmidinger
On 06/09/07 21:40, Petri Hintukainen wrote:
 On Sat, 2007-06-09 at 12:28 +0200, Udo Richter wrote:
 And, from the original post:
 May 31 20:23:38 localhost vdr: [3413] System Time = Thu May 31 20:23:38 
 2007 (1180632218)
 May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37 2007 
 (1180631977)
 May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired - 
 exiting!
 
 Turning clock is always very bad and dangerous thing to do. It can cause
 lot of other problems too, just to mention incomplete builds, duplicate
 cron jobs, destroyed logs and files, incomplete backups ...
 
 The clock was set to 20:19:37, and the watchdog fires at 20:21:01 - 84 
 seconds later. There must be something different causing the watchdog to 
 expire.
 
 It might be even some plugin. All timeouts (cTimeMs, cCondVar,
 cCondWait) use current wall clock time to set the timeout. 
 Example:
   cCondWait c;
   c.Wait(100);
 
 If clock is turned 2 minutes back in middle of this, the code will wait
 120100 ms instead of 100ms ... Might cause some quite weird problems.
 I belive there's no way to change pthread_..._timedwait functions, but
 cTimeMs can be changed to use monotonic timers instead of gettimeofday
 (patch attached).
 ...

I have (finally, sorry for the big delay) adopted this patch (in the
attached form) to fix a problem with SVDRP connections when the system
time is adjusted.

While testing this, I found that on my system the monotonic clock
only has a resolution of 4000250 ns (about 4 ms), which in your original
patch would have caused VDR not to use the monotonic clock.
Are there actually systems that have a 1 ms resolution?
Or is there some parameter that needs to be adjusted to get a better
resolution?

Maybe we should set the limit to, say, 10 ms, so that systems like
mine can also benefit from this. After all, the advantage of having
a monotonous clock outweighs the courser resolution (typically such
timeouts are not below 10 ms).

Klaus
--- Makefile	2007/11/04 10:15:59	1.110
+++ Makefile	2007/12/02 11:29:22
@@ -20,7 +20,7 @@
 MANDIR   = $(PREFIX)/share/man
 BINDIR   = $(PREFIX)/bin
 LOCDIR   = ./locale
-LIBS = -ljpeg -lpthread -ldl -lcap -lfreetype -lfontconfig
+LIBS = -ljpeg -lpthread -ldl -lcap -lrt -lfreetype -lfontconfig
 INCLUDES = -I/usr/include/freetype2
 
 PLUGINDIR= ./PLUGINS
--- tools.c	2007/11/03 15:34:07	1.137
+++ tools.c	2007/12/02 11:52:31
@@ -545,6 +545,40 @@
 
 uint64_t cTimeMs::Now(void)
 {
+#if _POSIX_TIMERS  0  defined(_POSIX_MONOTONIC_CLOCK)
+  static bool initialized = false;
+  static bool monotonic = false;
+  struct timespec tp;
+  if (!initialized) {
+ // check if monotonic timer is available and provides enough accurate resolution:
+ if (clock_getres(CLOCK_MONOTONIC, tp) == 0) {
+long Resolution = tp.tv_nsec;
+// require at least 10 ms resolution:
+if (tp.tv_sec == 0  tp.tv_nsec = 1000) {
+   if (clock_gettime(CLOCK_MONOTONIC, tp) == 0) {
+  dsyslog(cTimeMs: using monotonic clock (resolution is %ld ns), Resolution);
+  monotonic = true;
+  }
+   else
+  esyslog(cTimeMs: clock_gettime(CLOCL_MONOTONIC) failed);
+   }
+else
+   dsyslog(cTimeMs: not using monotonic clock - resolution is too bad (%ld s %ld ns), tp.tv_sec, tp.tv_nsec);
+}
+ else
+esyslog(cTimeMs: clock_getres(CLOCK_MONOTONIC) failed);
+ initialized = true;
+ }
+  if (monotonic) {
+ if (clock_gettime(CLOCK_MONOTONIC, tp) == 0)
+return (uint64_t(tp.tv_sec)) * 1000 + tp.tv_nsec / 100;
+ esyslog(cTimeMs: clock_gettime(CLOCK_MONOTONIC) failed);
+ monotonic = false;
+ // fall back to gettimeofday()
+ }
+#else
+#  warning Posix monotonic clock not available
+#endif
   struct timeval t;
   if (gettimeofday(t, NULL) == 0)
  return (uint64_t(t.tv_sec)) * 1000 + t.tv_usec / 1000;
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Darren Salt
I demand that Klaus Schmidinger may or may not have written...

[snip]
 While testing this, I found that on my system the monotonic clock only has
 a resolution of 4000250 ns (about 4 ms), which in your original patch would
 have caused VDR not to use the monotonic clock.

That suggests that your kernel is built with HZ=250 (CONFIG_HZ in
/proc/config.gz).

 Are there actually systems that have a 1 ms resolution?

Any with HZ=1000, I expect :-)

[snip]
-- 
| Darren Salt| linux or ds at  | nr. Ashington, | Toon
| RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army
|   Kill all extremists!

MCSE: n. ac. Minesweeper Consultant and Solitaire Expert.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Klaus Schmidinger
On 12/02/07 14:34, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...
 
 [snip]
 While testing this, I found that on my system the monotonic clock only has
 a resolution of 4000250 ns (about 4 ms), which in your original patch would
 have caused VDR not to use the monotonic clock.
 
 That suggests that your kernel is built with HZ=250 (CONFIG_HZ in
 /proc/config.gz).

I'm running the default SUSE 10.2 kernel.

 Are there actually systems that have a 1 ms resolution?
 
 Any with HZ=1000, I expect :-)

Ok, I see.

I'll make it a 5 ms limit then, to allow default kernels to work.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Darren Salt
I demand that Klaus Schmidinger may or may not have written...

 On 12/02/07 14:34, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...
 [snip]
 While testing this, I found that on my system the monotonic clock only
 has a resolution of 4000250 ns (about 4 ms), which in your original
 patch would have caused VDR not to use the monotonic clock.
 That suggests that your kernel is built with HZ=250 (CONFIG_HZ in
 /proc/config.gz).

 I'm running the default SUSE 10.2 kernel.

That says nothing (to me) about how it's configured... :-)

 Are there actually systems that have a 1 ms resolution?
 Any with HZ=1000, I expect :-)

 Ok, I see.

 I'll make it a 5 ms limit then, to allow default kernels to work.

Valid HZ options are 100, 250, 300 and 1000, unless overridden by an
arch-specific Kconfig file. (AFAICS, only mips does this, offering 48, 100,
128, 250, 256, 1000 and 1024.)

I have one computer on which I use HZ=100; however, it has no DVB devices.

-- 
| Darren Salt| linux or ds at  | nr. Ashington, | Toon
| RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army
| + Travel less. Share transport more.   PRODUCE LESS CARBON DIOXIDE.

Never have a drink when you are feeling sorry for yourself.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Grégoire FAVRE
On 02/12/2007, Darren Salt [EMAIL PROTECTED] wrote:

 Valid HZ options are 100, 250, 300 and 1000, unless overridden by an
 arch-specific Kconfig file. (AFAICS, only mips does this, offering 48, 100,
 128, 250, 256, 1000 and 1024.)

zen-sources which are a really good option for multimedia desktop
offers much more choices than those.
-- 
Grégoire FAVRE
http://picasaweb.google.com/Gregoire.Favre
http://gregoire.favre.googlepages.com/

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Klaus Schmidinger
On 12/02/07 16:09, Grégoire FAVRE wrote:
 On 02/12/2007, Darren Salt [EMAIL PROTECTED] wrote:
 
 Valid HZ options are 100, 250, 300 and 1000, unless overridden by an
 arch-specific Kconfig file. (AFAICS, only mips does this, offering 48, 100,
 128, 250, 256, 1000 and 1024.)
 
 zen-sources which are a really good option for multimedia desktop
 offers much more choices than those.

Well, I guess then it's probably best to not check this at all.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Ville Skyttä
On Sunday 02 December 2007, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...

  On 12/02/07 14:34, Darren Salt wrote:
  I demand that Klaus Schmidinger may or may not have written...
 
  I'll make it a 5 ms limit then, to allow default kernels to work.

 Valid HZ options are 100, 250, 300 and 1000, unless overridden by an
 arch-specific Kconfig file. (AFAICS, only mips does this, offering 48, 100,
 128, 250, 256, 1000 and 1024.)

Not that I really know much at all about this, but how would this change 
behave with NOHZ kernels?

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-12-02 Thread Rainer Zocholl
[EMAIL PROTECTED](Klaus Schmidinger)  02.12.07 14:47


On 12/02/07 14:34, Darren Salt wrote:
 I demand that Klaus Schmidinger may or may not have written...

 [snip]
 While testing this, I found that on my system the monotonic clock
 only has a resolution of 4000250 ns (about 4 ms), which in your
 original patch would have caused VDR not to use the monotonic
 clock.

 That suggests that your kernel is built with HZ=250 (CONFIG_HZ in
 /proc/config.gz).

I'm running the default SUSE 10.2 kernel.

 Are there actually systems that have a 1 ms resolution?

 Any with HZ=1000, I expect :-)

Ok, I see.

I'll make it a 5 ms limit then, to allow default kernels to work.

http://tldp.org/HOWTO/IO-Port-Programming-4.html

 For delays of under about 50 milliseconds (depending on the speed of your
 processor and machine, and the system load), giving up the CPU takes too much
 time, because the Linux scheduler (for the x86 architecture) usually takes at
 least about 10-30 milliseconds before it returns control to your process. Due
 to this, in small delays, usleep(3) usually delays somewhat more than the
 amount that you specify in the parameters, and at least about 10 ms.

So i assume  it's not just a problem of the ticks intervall.

Too it might be required to differ between wall clock and time delays.


VDR is (IMOH) a strong(hard?) real time application, not just another
file manager with a video interface ;-)
I wonder why linux high resolution timer can't be used for timeout and
delay timings.
I assume that those timer uses CPU/ACPI counters and not 
the good old interrupt ticker which origins in a time when a tick faster
than 10ms would allocate the entire CPU and were never intented
to be used in real time applications.

See
http://www.opengroup.org/rtforum/jan2002/slides/linux/mehaffey.pdf
etc.

So 10ms sleep would always be a 10ms sleep. not a 0ms or 5ms or 15ms
or 20ms, depending when the last tick occured and whichintervall was
choosen.


Another question:

What if the CPU clock is modulated to save power?


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] PANIC: watchdog timer expired - exiting!

2007-07-21 Thread Gregoire Favre
Hello,

sometimes, I can't use my xine anymore to connect to vdr, and my log
shows :

[9640] cleaning up schedules data
[9640] next timer event at Tue Jul 24 04:20:00 2007
[9640] executing 'sudo /usr/local/bin/vdrpoweroff.sh 1185243600 224659 222 
CHRONIQUES D'EN HAUT 0'
[9640] PANIC: watchdog timer expired - exiting!

I start my vdr with :

nice -n -19 ./vdr -u greg -c /etc/vdr -l 3 -w 90 -s 'sudo 
/usr/local/bin/vdrpoweroff.sh' -P'xine -r -q' -Pundelete

Thank for any hint about this issue :-)
-- 
Grégoire FAVRE  http://gregoire.favre.googlepages.com  http://www.gnupg.org
   http://picasaweb.google.com/Gregoire.Favre

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-10 Thread Petri Hintukainen
On Sun, 2007-06-10 at 12:31 +0200, Clemens Kirchgatterer wrote:
 Petri Hintukainen [EMAIL PROTECTED] wrote:
 
  If clock is turned 2 minutes back in middle of this, the code will
  wait 120100 ms instead of 100ms ... Might cause some quite weird
  problems. I belive there's no way to change pthread_..._timedwait
  functions, but cTimeMs can be changed to use monotonic timers instead
  of gettimeofday (patch attached).
 
 just for the record, i think you have to change the Makefile to include
 -lrt in the LIBS for the patch to work.

That's right, that part was missing from the patch :(


- Petri
--- ../../vdr-1.4.5-orig/Makefile	2006-09-08 00:15:09.0 +0300
+++ ../../vdr-1.4.5/Makefile	2006-12-16 21:28:19.0 +0200
@@ -17,7 +17,7 @@
 LSIDIR   = ./libsi
 MANDIR   = /usr/local/man
 BINDIR   = /usr/local/bin
-LIBS = -ljpeg -lpthread -ldl -lcap
+LIBS = -ljpeg -lpthread -ldl -lcap -lrt
 INCLUDES =
 
 PLUGINDIR= ./PLUGINS
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-10 Thread Udo Richter
Petri Hintukainen wrote:
 It might be even some plugin. All timeouts (cTimeMs, cCondVar,
 cCondWait) use current wall clock time to set the timeout. 

Thats not even all: There are 140 references to time(NULL) in VDR, and 
most of them are used for timeouts between a few seconds and some hours. 
Even the famous video data stream broken (causing an emergency 
shutdown) can be triggered by a 30-second time step.

Cheers,

Udo

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-10 Thread Petri Hintukainen
On Sun, 2007-06-10 at 14:59 +0200, Udo Richter wrote:
 Petri Hintukainen wrote:
  It might be even some plugin. All timeouts (cTimeMs, cCondVar,
  cCondWait) use current wall clock time to set the timeout. 
 
 Thats not even all: There are 140 references to time(NULL) in VDR, and 
 most of them are used for timeouts between a few seconds and some hours. 
 Even the famous video data stream broken (causing an emergency 
 shutdown) can be triggered by a 30-second time step.

He :)
All places where time(NULL) is used to measure some time interval could
easily be changed to use monotonic cTimeMs.
But with timers current wall clock time is really required ...

It might be enough to replace most of time(NULL) 's with something like

time_t cTimeMs::Time(void) {
return (time_t)(cTimeMs::Now() / 1000);
}

Using the cTimeMs timer/trigger mechanism requires some more changes and
debugging.


- Petri



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-09 Thread C.Scheeder
Josce Unknown schrieb:
 Well if the PC clock was correct all the time I would probably not have
 to use the set time function :)
 
 Yes, but typically PC HW clock does not drift so much.  You could use 
 hwclock --systohc (and possibly --utc or --localtime) after letting
 the vdr to set the system clock.
 
 I am sure this would fix the problem. However, is this really the way it 
 should work?
 The clock is four minutes off, let's PANIC?
 
 To be honest, I have seen a lot of worse PC clocks around than the one I 
 have
 on my spare computer ...
 
 Josce

Hi all,
Josc, i would say your oppinion is correct,
the real problem here is not the clock beeing off 4 Minutes,
it is the way vdr changes the local clock without noticing his
internal watchdog about this discontinuit in the timebase.
I would call it a bug.
either it should adjust the clock in steps of a few seconds like
ntpd does or it should tell his own watchdog to ignore this jump in time.
Christoph



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-09 Thread Udo Richter

Josce Unknown wrote:
I am sure this would fix the problem. However, is this really the way it 
should work?

The clock is four minutes off, let's PANIC?


VDR still defaults to start recordings three minutes before scheduled 
time, right? I wouldn't want to rely my recordings on a clock that is 
that bad.


To be honest, I have seen a lot of worse PC clocks around than the one I 
have on my spare computer ...


The worst I had was on a 286, running 40s off per day. Good thing that 
this is over. Today, I would count one or two minutes per month as worst 
acceptable.



Back on the issue:

I've just tested this on my machine, with a small program that uses the 
alarm() to sleep for 10 seconds, just as the watchdog uses alarm(). 
(Code is attached.)

This is a normal run:


#date ; ./alarm ; date
Sa 9. Jun 11:50:36 CEST 2007
alarm
Sa 9. Jun 11:50:46 CEST 2007


The second run, I started the program at 11:52:55, and at 11:53 I 
manually changed the clock to 11:54. This is what happened:



#date ; ./alarm ; date
Sa 9. Jun 11:52:55 CEST 2007
alarm
Sa 9. Jun 11:54:04 CEST 2007


Just as I've expected: alarm() runs independent of any system clocks, it 
always waits the specified time in seconds. There should be no reason to 
modify the behavior of the watchdog, since alarm() doesn't care about 
the calendar clock.


Btw: Even ntpd would step the clock in this case, because clock slew is 
only used for time offsets of less than 128ms.


And, from the original post:

May 31 20:23:38 localhost vdr: [3413] System Time = Thu May 31 20:23:38 2007 
(1180632218)
May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37 2007 
(1180631977)
May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired - exiting!


The clock was set to 20:19:37, and the watchdog fires at 20:21:01 - 84 
seconds later. There must be something different causing the watchdog to 
expire.


Cheers,

Udo


#include signal.h
#include stdio.h
#include stdlib.h
#include unistd.h


static void Watchdog(int signum)
{
  printf(alarm\n);
  exit(1);
}

int main(int argc, char *argv[])
{
if (signal(SIGALRM, Watchdog)   == SIG_IGN) signal(SIGALRM, SIG_IGN);

alarm(10);
while (true) sleep(1);
}
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-09 Thread Josce Unknown
VDR still defaults to start recordings three minutes before scheduled time, 
right? I wouldn't want to rely my recordings on a clock that is that bad.

That's why I have set it to start ten minutes earlier :)

The worst I had was on a 286, running 40s off per day. Good thing that this 
is over. Today, I would count one or two minutes per month as worst 
acceptable.

I agree that the clock is bad, but one of the reasons I started to use
VDR was because I had an extra old PC that could be put into use this way.
If I have to start buying a lot of new stuff, then I might as well
get a STB and complain and demand corrections when it doesn't work.
Now I just complain :)

May 31 20:23:38 localhost vdr: [3413] System Time = Thu May 31 20:23:38 
2007 (1180632218)
May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37 
2007 (1180631977)
May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired - 
exiting!

The clock was set to 20:19:37, and the watchdog fires at 20:21:01 - 84 
seconds later. There must be something different causing the watchdog to 
expire.

OK, this is what I asked in the first mail:
is it the watchdog causing the PANIC?

And apparently it isn't the watchdog, but the log didn't show
anything else that was causing it.

I'll be going away for a month now but when I get back I'll see
if I can reproduce the PANIC somehow, just to figure out what
is happening.

Josce

ps I really hate using hotmail, the formatting is totally weird...

_
Don't just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-09 Thread Petri Hintukainen
On Sat, 2007-06-09 at 12:28 +0200, Udo Richter wrote:
 And, from the original post:
  May 31 20:23:38 localhost vdr: [3413] System Time = Thu May 31 20:23:38 
  2007 (1180632218)
  May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37 2007 
  (1180631977)
  May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired - 
  exiting!

Turning clock is always very bad and dangerous thing to do. It can cause
lot of other problems too, just to mention incomplete builds, duplicate
cron jobs, destroyed logs and files, incomplete backups ...

 The clock was set to 20:19:37, and the watchdog fires at 20:21:01 - 84 
 seconds later. There must be something different causing the watchdog to 
 expire.

It might be even some plugin. All timeouts (cTimeMs, cCondVar,
cCondWait) use current wall clock time to set the timeout. 
Example:
  cCondWait c;
  c.Wait(100);

If clock is turned 2 minutes back in middle of this, the code will wait
120100 ms instead of 100ms ... Might cause some quite weird problems.
I belive there's no way to change pthread_..._timedwait functions, but
cTimeMs can be changed to use monotonic timers instead of gettimeofday
(patch attached).


- Petri

--- ../../vdr-1.4.5-orig/tools.c	2007-01-02 06:18:41.0 +0200
+++ ../../vdr-1.4.5/tools.c	2007-01-02 06:14:03.0 +0200
@@ -549,6 +549,54 @@
 
 uint64_t cTimeMs::Now(void)
 {
+#if _POSIX_TIMERS  0  defined(_POSIX_MONOTONIC_CLOCK)
+  static bool initialized = false;
+  static bool monotonic = false;
+  struct timespec tp;
+
+  // initialization: 
+  // check if monotonic timer is available and
+  // provides enough accurate resolution  
+  if(!initialized) {
+
+ if(clock_getres(CLOCK_MONOTONIC, tp)) 
+esyslog(cTimeMs: clock_getres(CLOCK_MONOTONIC) failed);
+
+ else {
+dsyslog(cTimeMs: clock_gettime(CLOCK_MONOTONIC): clock resolution %d us,
+		((int)tp.tv_nsec) / 1000);
+
+	// require at least 1 ms resolution
+	if( tp.tv_sec == 0  tp.tv_nsec = 100 ) {
+
+	   if(clock_gettime(CLOCK_MONOTONIC, tp))
+	  esyslog(cTimeMs: clock_gettime(CLOCL_MONOTONIC) failed);
+
+	   else {
+	  dsyslog(cTimeMs: using monotonic clock);
+	  monotonic = true;
+	  }
+	   }
+}
+
+ initialized = true;
+ }
+
+
+  if(monotonic) {
+
+ if(!clock_gettime(CLOCK_MONOTONIC, tp))
+return (uint64_t(tp.tv_sec)) * 1000 + tp.tv_nsec / 100;
+
+ esyslog(cTimeMs: clock_gettime(CLOCK_MONOTONIC) failed);
+ monotonic = false;
+ //return 0;
+ }
+
+#else
+#  warning Posix monotonic clock not available
+#endif
+
   struct timeval t;
   if (gettimeofday(t, NULL) == 0)
  return (uint64_t(t.tv_sec)) * 1000 + t.tv_usec / 1000;
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-08 Thread Josce Unknown
Well if the PC clock was correct all the time I would probably not have
to use the set time function :)

Yes, but typically PC HW clock does not drift so much.  You could use 
hwclock --systohc (and possibly --utc or --localtime) after letting
the vdr to set the system clock.

I am sure this would fix the problem. However, is this really the way it 
should work?
The clock is four minutes off, let's PANIC?

To be honest, I have seen a lot of worse PC clocks around than the one I 
have
on my spare computer ...

Josce

_
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-06 Thread PLU Dominique
Hi

Currently, no, the TZ is set to GMT , the solution is to change it but it will 
not resolve entierly the problem, when I shutdown the system, the clock of 
another computer miss many days or year, meaning bios battery is dead and as 
long this battery is not standard (std=cr2032 or equiv) I cannot change it

I was just hoping that the system could first synchronize the system time to 
transponder inside the init phase and after start operation like schedule.
Maybe in future release ? 

By the way, I will follow the recommandation of Udo Richter and going to ntp 
solution if I can adapt to my slack/vdrlive system

Thanks for your help and time 


Le mercredi 6 juin 2007 19:04, Klaus Schmidinger a écrit :
 On 06/05/07 19:47, PLU Dominique wrote:
  Hi
 
  By the way, I have another question about clock and vdr, I have put vdr
  setting to synchronise time with a specific channel and setup vdr to
  start on this channel.
  Unfortunately , when vdr start, the system is never on time, at least
  there is two hours minus

 Are you sure you have set the correct time zone?

 Klaus


 ___
 vdr mailing list
 vdr@linuxtv.org
 http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-05 Thread Udo Richter
Unknown Unknown wrote:
 May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37 2007 
 (1180631977)
 May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired - 
 exiting!
 
 Could vdr turn off the watchdog before it sets the system time, if that is 
 the problem?

IMHO the alert function should work based on the time-since-boot clock, 
not relative to the calendar clock. The watchdog did not fire on my 
machine while I was playing with the clock.

However, there are some other clock-dependent things in VDR that are not 
designed to handle larger clock jumps. Usually, clock jumps should be 
just a few seconds, and only after starting VDR.

You should investigate what causes the clock to jump 4 minutes. If your 
PC clock is THAT bad, its probably worth dumping the mainboard - you do 
want recordings in time, do you?
If this is due to different clocks on transponders, you should restrict 
the clock sync to a single transponder. (settings - EPG)

Cheers,

Udo

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-05 Thread PLU Dominique
Hi

By the way, I have another question about clock and vdr, I have put vdr 
setting to synchronise time with a specific channel and setup vdr to start on 
this channel. 
Unfortunately , when vdr start, the system is never on time, at least there is 
two hours minus. The main problem is that vdr look at schedule and if there 
is one setup at this time, even if this is wrong time, system records 

Example to be more clear :

schedule 18H/20H 
current national time (GMT+2) = 21H 
rebooting vdr and computer
current bios time is 19H
the system records my scheduled program (range 18/20)

Is there a way to force vdr to first update system time to transponder time
as design and after look if something is really scheduled ?

Thanks for help


Le mardi 5 juin 2007 19:26, Udo Richter a écrit :
 Unknown Unknown wrote:
  May 31 20:23:38 localhost vdr: [3413] Local Time = Thu May 31 20:19:37
  2007 (1180631977)
  May 31 20:21:01 localhost vdr: [3405] PANIC: watchdog timer expired -
  exiting!
 
  Could vdr turn off the watchdog before it sets the system time, if that
  is the problem?

 IMHO the alert function should work based on the time-since-boot clock,
 not relative to the calendar clock. The watchdog did not fire on my
 machine while I was playing with the clock.

 However, there are some other clock-dependent things in VDR that are not
 designed to handle larger clock jumps. Usually, clock jumps should be
 just a few seconds, and only after starting VDR.

 You should investigate what causes the clock to jump 4 minutes. If your
 PC clock is THAT bad, its probably worth dumping the mainboard - you do
 want recordings in time, do you?
 If this is due to different clocks on transponders, you should restrict
 the clock sync to a single transponder. (settings - EPG)

 Cheers,

 Udo

 ___
 vdr mailing list
 vdr@linuxtv.org
 http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] PANIC: watchdog timer expired - exiting

2007-06-05 Thread Josce Unknown
However, there are some other clock-dependent things in VDR that are not
designed to handle larger clock jumps. Usually, clock jumps should be
just a few seconds, and only after starting VDR.

You should investigate what causes the clock to jump 4 minutes. If your
PC clock is THAT bad, its probably worth dumping the mainboard - you do
want recordings in time, do you?

Well if the PC clock was correct all the time I would probably not have
to use the set time function :)

Josce

_
FREE pop-up blocking with the new MSN Toolbar - get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr