[ltp] [x22-problem] hwclock on resume jumps 4 days forward

linux-thinkpad@linux-thinkpad.org linux-thinkpad@linux-thinkpad.org
19 Feb 2003 18:24:26 +0100


--=-=-=


Running Debian (woody) on an X22
- dualboot (so using local time)
- apmd-3.0.2-1.19

Usually, suspend-to-ram works fast and reliably on my X22 with:

    CONFIG_APM=m
    # CONFIG_APM_IGNORE_USER_SUSPEND is not set
    # CONFIG_APM_DO_ENABLE is not set
    CONFIG_APM_CPU_IDLE=y
    # CONFIG_APM_DISPLAY_BLANK is not set
    # CONFIG_APM_RTC_IS_GMT is not set
    # CONFIG_APM_ALLOW_INTS is not set
    # CONFIG_APM_REAL_MODE_POWER_OFF is not set

But not always :-(
I suspended-to-ram (by closing the lid) yesterday evening.
I resumed-from-ram (by opening the lid) this morning.

Look at the strange time that was set from the Hardware
clock in the following extract of daemon.log.


--=-=-=
Content-Disposition: attachment; filename=apmd-problem.txt

Feb 18 20:35:35 localhost apmd[279]: apmd_call_proxy: Executing proxy: '/etc/apm/apmd_proxy' 'suspend' 'system'
Feb 18 20:35:36 localhost apmd[279]: apmd_call_proxy: + Saving the System Clock time to the Hardware Clock... 
Feb 18 20:35:37 localhost apmd[279]: apmd_call_proxy: + Hardware Clock updated to Tue Feb 18 20:35:37 CET 2003. 
Feb 18 20:35:37 localhost apmd[279]: System Suspend
Feb 18 20:35:56 localhost apmd[279]: apmd_call_proxy: Executing proxy: '/etc/apm/apmd_proxy' 'resume' 'suspend'
Feb 18 20:35:58 localhost apmd[279]: apmd_call_proxy: +  Setting the System Clock using the Hardware Clock as reference... System Clock set. Local time: Tue Feb 18 20:35:58 CET 2003  
Feb 18 20:35:59 localhost apmd[279]: Normal Resume
Feb 18 20:35:59 localhost apmd[279]: Battery: 100%, not charging (+0% over 0:00:22), ? to empty
Feb 18 20:36:01 localhost apmd[279]: apmd_call_proxy: Executing proxy: '/etc/apm/apmd_proxy' 'suspend' 'system'
Feb 18 20:36:02 localhost apmd[279]: apmd_call_proxy: + Saving the System Clock time to the Hardware Clock... 
Feb 18 20:36:03 localhost apmd[279]: apmd_call_proxy: + Hardware Clock updated to Tue Feb 18 20:36:03 CET 2003. 
Feb 18 20:36:03 localhost apmd[279]: System Suspend
Feb 22 16:54:43 localhost apmd[279]: apmd_call_proxy: Executing proxy: '/etc/apm/apmd_proxy' 'resume' 'suspend'
Feb 22 16:54:45 localhost apmd[279]: apmd_call_proxy: +  Setting the System Clock using the Hardware Clock as reference... System Clock set. Local time: Sat Feb 22 16:54:45 CET 2003  
Feb 22 16:54:46 localhost apmd[279]: Normal Resume
Feb 22 16:54:46 localhost apmd[279]: Battery: 99%, not charging (-0.26%/day over 3d+20:18:43), ? to empty
--=-=-=


Now, how can this be?

It happens very irregularly, and mostly only when resuming
from hibernate (suspend-to-disk, F12).  Very occasionally,
like this time, it happens also when resuming-from-ram, but
only if I have done some hibernating some day(s) earlier.

In these cases, the time is consistently set forward by roughly 4 days!
-----------------------------------------------------------------------
Could anyone possibly help me to explain this?
Where could I look for further information about the problem?

I did _not_ do any changes to /etc/init.d/00hwclock.
On my system, APMD calls it through /etc/apm/event.d/00hwclock:

    #!/bin/sh
    # set the system clock

    if [ "$1" = suspend ]; then
        /etc/init.d/hwclock.sh stop
    elif [ "$1" = resume ] && [ "$2" != standby ]; then
        /etc/init.d/hwclock.sh start
    fi

BTW, is it normal that apmd_call_proxy is called with the
parameters 'suspend' 'system' independent of suspending
-to-ram or -to-disk ?

== Uwe ==

--=-=-=--