Jump to content

DMS - maybe wakeup time problem?


Recommended Posts

Posted (edited)

Situation:

 

  PC sleeps and is scheduled recording "Retro noviny" which should be start 07.05.2022 at 09:10:00. But PC wakeup at 09:11:00 (about 5 minutes late) !

 

My configuration:

image.png.9456162bbd24a1e58c2846e43082f590.png 

 

This problem don't occurs regularly but sometimes.

 

Spoiler
Dvojka HD 07.05.2022
W:\For The Record\Retro noviny; 2022-05-07.ts
Naming Scheme: %name; %year-%m-%d
Device: TT-connect CT2_4650 DVB-C Tuner (16)
EventID: 10245
Timer Name: Retro noviny
Timer Start: 07.05.2022 9:10:00
Timer Duration: 01:00:00 (60 min. incl. 15 min. lead time, 15 min. follow-up time)
Timer Options: Teletext=1, Subtitles=1, All Audio Tracks=1, Adjust PAT/PMT=1, EIT EPG Data=1, Transponder Dump=0
Timer Source: Search:Retro noviny
Monitoring Mode: None

9:11:27 / 00:00:00 (~ 0,00 MB) Start Recording
9:11:29 / 00:00:01 (~ 0,00 MB) Cyklopotulky running | EventID: 10214 PDC: 0x00000
9:11:29 / 00:00:02 (~ 0,03 MB) PID 3076: Videotext
9:11:30 / 00:00:03 (~ 0,07 MB) PID 3077: Subtitles
9:11:31 / 00:00:03 (~ 0,07 MB) HiSTORY not running | EventID: 10244 PDC: 0x00000
9:11:32 / 00:00:04 (~ 0,12 MB) PID 3077: DVB Subtitles
9:12:32 No data within one minute, restarting!
9:12:32 / 00:01:04 (~ 2,93 MB) Stop

Average Data Rate: 0,045 MB/s
Total Size: 2,9 MB (3072296 Bytes)
-----------------------------------------------

Dvojka HD 07.05.2022
W:\For The Record\Retro noviny; 2022-05-07_01.ts
Naming Scheme: %name; %year-%m-%d
Device: TT-connect CT2_4650 DVB-C Tuner (16)
EventID: 10245
Timer Name: Retro noviny
Timer Start: 07.05.2022 9:10:00
Timer Duration: 01:00:00 (60 min. incl. 15 min. lead time, 15 min. follow-up time)
Timer Options: Teletext=1, Subtitles=1, All Audio Tracks=1, Adjust PAT/PMT=1, EIT EPG Data=1, Transponder Dump=0
Timer Source: Search:Retro noviny
Monitoring Mode: None

9:12:34 / 00:00:00 (~ 0,00 MB) Start Recording
9:12:35 / 00:00:00 (~ 0,00 MB) Cyklopotulky running | EventID: 10214 PDC: 0x00000
9:12:35 / 00:00:01 (~ 0,03 MB) PID 3076: Videotext
9:12:36 / 00:00:02 (~ 0,37 MB) PID 3074: MPEG Audio Stereo, 48 khz, 192 kbps
9:12:36 / 00:00:02 (~ 0,37 MB) PID 3075: MPEG Audio Stereo, 48 khz, 192 kbps
9:12:36 / 00:00:02 (~ 0,37 MB) HiSTORY not running | EventID: 10244 PDC: 0x00000
9:12:37 / 00:00:03 (~ 1,31 MB) PID 3073: H.264 Video, 16:9, 1920x1080, 25 fps
9:12:37 / 00:00:03 (~ 1,31 MB) PID 3077: Subtitles
9:12:39 / 00:00:04 (~ 2,24 MB) PID 3077: DVB Subtitles
9:20:16 / 00:07:41 (~ 370,51 MB) HiSTORY running | EventID: 10244 PDC: 0x00000
9:20:17 / 00:07:42 (~ 371,41 MB) Retro noviny not running | EventID: 10245 PDC: 0x00000
9:25:15 / 00:12:40 (~ 587,57 MB) Retro noviny running | EventID: 10245 PDC: 0x00000
9:25:16 / 00:12:41 (~ 589,19 MB) Československý filmový týždenník not running | EventID: 10211 PDC: 0x00000
9:40:01 / 00:27:27 (~ 1259,70 MB) Retro noviny running | EventID: 10245 PDC: 0x00000
9:40:03 / 00:27:28 (~ 1261,42 MB) Československý filmový týždenník not running | EventID: 10211 PDC: 0x00000
9:55:01 / 00:42:27 (~ 1981,77 MB) Československý filmový týždenník not running | EventID: 10211 PDC: 0x00000
9:55:03 / 00:42:28 (~ 1982,61 MB) Retro noviny running | EventID: 10245 PDC: 0x00000
9:55:15 / 00:42:40 (~ 1992,07 MB) Československý filmový týždenník running | EventID: 10211 PDC: 0x00000
9:55:16 / 00:42:42 (~ 1992,89 MB) Československý filmový týždenník not running | EventID: 10208 PDC: 0x00000
10:10:00 / 00:57:26 (~ 2715,36 MB) Stop

Average Data Rate: 0,788 MB/s
Total Size: 2715,4 MB (2847256240 Bytes)

 

 

support.zip

Edited by jirim100
Link to comment

According to your svcdebug.log the DMS sets the wake up time correctly, but the PC wakes up too late

 

Maybe the battery of your mainboard needs to be replaced?

 

Link to comment
Posted (edited)

But the PC is only 1,5 year old.   I bought it in December 2020 and it is not laptop.

Edited by jirim100
Link to comment

I know of PCs that need a new battery (mostly CR-2032 cell) every year. Others run with the first battery for 8 years.

 

First sign of low bat is clock running slower while the PC is powered off (would explain the issue above). Next step when batt gets lower is freezing the time of shutdown, so at next start it still has the date/time from shutdown and continues from that. Last step when batt gets even lower is loosing date/time completely , returning to some initial date like 01.01.1970 00:00h or so at every start.

 

As soon as the PC is running and has an online connection time is corrected by NTP. So many users don't see the problem as time is ok shortly after boot.

 

Link to comment

Strange. I replaced CMOS battery, but it didn't solve this problem.

 

When is PC in sleep about 167 minutes -> delay is about 80 seconds.

When is PC in sleep about 106 minutes -> delay is about 50 seconds.

 

Any other suggestion? Some BIOS settings tip?

Link to comment
vor 2 Stunden schrieb jirim100:

When is PC in sleep about 167 minutes -> delay is about 80 seconds.

When is PC in sleep about 106 minutes -> delay is about 50 seconds.

 

It seems to be a proportional correlation. In both cases the delay is approximately 0.8% of the sleep time (1 second on 125 seconds), which means, the CMOS RTC (Real Time Clock) is running too slow. Maybe searching the web for CMOS RTC accuracy yields some hints...

 

The DMS is using the SetWaitableTimer API for letting the PC wake up in time.

 

Link to comment
Posted (edited)

The normal RTC on Mainboard have a accuracy of 20ppm ~ 1,3Seconds/day.

I saw some cheap MB/RTC with 50ppm ~3,25seconds/day.

If the RTC is running so extremely inaccurate, then the RTC or the corresponding crystal has a problem.

Unfortunately you can only check the Battery. If it is OK you can do almost nothing.

You can use my YARD2 🙂 I have also an RTC onboard to wake up the system 😉

 

Edited by YARD2
Link to comment
Posted (edited)

@Griga

 

Exist the devil workaround: Add new DMS tweak "RTC coefficient" (default value = 1.0 )

image.png.b344b24840b295c7a91151bd2e631f68.png

 

DMS computes count of seconds to the next wake-up PC and multiplies them with "RTC coefficient" -> then compute new time when PC should be wake-up and set it by the function SetWaitableTimer.

 

Example:

Is 04:25:00 and DMS want to call function SetWaitableTimer with time 06:50:00 (this time start next timer). But DMS firstly compute difference between 06:50:00 and  04:25:00 - this is 8700 seconds. DMS adjust time difference with "RTC coefficient": 8700 * 0.9920159680638723 = 8630 seconds. DMS compute new time for wakeup the PC: 04:25:00 + 8630 seconds = 06:48:50.

DMS finally call SetWaitableTimer with time 06:48:50.

 

Please, can you implement this? Only DMS uses SetWaitableTimer for scheduling wakeup of my PC and no other.

 

I can't put my PC into repair (this take about 1 month and can be problematic and I would be without a PC and I need permanently recording). And I have only this active PC and a new spare PC would be very expensive.

Edited by jirim100
Link to comment
Posted (edited)

@Griga 

 

I have collected new informations from my PC and these pointing problem back to software (DMS or Windows):

I run from commanline "powercfg /sleepstudy" . It generates protocol "C:/Windows/System32/sleepstudy-report.html" about lasts transitions to/from hibernate state - file is attached here.

 

Here is the section regarding to wake-up time that I describe in the first comment

image.thumb.png.658a975246c391f0ef874a517b08e89d.png

 

At 2022-05-06 22:27:58 DMS set duration of waitable timer to 10:43:27 and then PC hibernated.

Sum of "2022-05-06 22:27:58" and "10:43:27" is exactly "2022-05-07 09:11:26" - my mentioned wake-up time in first comment.

 

DMS (or Windows, I don't know) used bad duration 10:43:27.  

 

sleepstudy-report.html

 

Edit:

-------

Here are detailed values about this transition, ProgrammedWakeTimeAc is correct 2022-05-07 09:06:00, but I don't understand what means the rest of values:

image.thumb.png.525f565ea445078664479b70507fafcc.png

 

Edited by jirim100
Link to comment
vor 11 Stunden schrieb jirim100:

DMS (or Windows, I don't know) used bad duration 10:43:27.  

 

The DMS doesn't pass a duration, but a (positive) absolute due time to SetWaitableTimer. It's the wake up time that you see in the svcdebug.log, converted to UTC and then to the Windows FILETIME format.

 

Another software that makes use of the wake-up mechanism is the Windows Task Scheduler. You may want to set up a task and check if it is affected in the same way:

 

https://www.makeuseof.com/how-to-schedule-your-windows-10-pc-to-automatically-wake-each-day/

 

You can also create such a task by letting DVBViewer schedule a recording. Disable Settings -> Options -> DVBViewer Media Server -> Send timers to the server, activate Recordings -> Use Microsoft Task Scheduler (additionally enter the password for your user account in the Scheduler Settings dialog, if necessary). DVBViewer doesn't use SetWaitableTimer directly, but creates a task in the Windows Task Scheduler for waking the PC up and being launched in time.

 

Link to comment

I did test with Windows Task Scheduler and the result is the same:

After 6 hours in hibernate state the time shift is about 3 minutes.

 

But I think the problem is in the BIOS firmware, not with RTC - Why? - When PC wake-up the time on the PC and on my Android smartphone is exactly the same and PC didn't synchronize time immediatelly after wake-up with internet NTP server (I checked it in Windows Event Log).

 

@Griga Is it possible to implement my proposed workaroud with "RTC coefficient" above?

Link to comment

What you can try, send the system in suspend, during wakeup enter bios before windows starts and check the clock in Bios.

If it Is correct, then a Bios problem can be. Perhaps you can search if a Bios update is available.

Link to comment
Am 9.5.2022 um 15:18 schrieb jirim100:

DMS computes count of seconds to the next wake-up PC and multiplies them with "RTC coefficient" -> then compute new time when PC should be wake-up and set it by the function SetWaitableTimer.

 

No, sorry, I will not implement it. It would mean too many changes (and the risk of introducing new bugs) in code that is working well for almost all users, just for a single user that is experiencing trouble with his BIOS/RTC. Besides that, Tweaker.exe would have to be updated too, because it doesn't support floating point values yet.

 

Adding options / work-arounds for single needs is a sure way to spoil applications over time.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...