DragonFly-2.3.0.876.g136cd master sys/dev/acpica5 acpi_hpet.c

Sepherosa Ziehau sepherosa at gmail.com
Wed May 6 06:34:24 PDT 2009


On Tue, May 5, 2009 at 11:59 PM, Matthew Dillon
<dillon at apollo.backplane.com> wrote:
>
> :No, not the actual count, but we will have to make sure the count is
> :monotonically increasing.  So something like "not preserved" is not
> :acceptable.
> :
> :> has to be reprogrammed after S3/S4 or at least recomputed by the code
> :> that reads back the RTC value.
> :
> :Didn't aware how 8254 could be affected, 8254 document mentions
> :nothing about power management stuffs.  But even if 8254's count is
> :not maintained at all, it seems to be less affected (+-1/15sec), since
> :major portion of the time is saved in dram.
> :
> :If small gitch is acceptable, we could just add sys_cputimer
> :save/restore functions and call them before and after Sx state
> :transiton.
> :
> :--
> :Live Free or Die
>
>    No, the actual timekeeping function cannot glitch.  It is not
>    acceptable.  It will really mess up all sorts of things in the
>    system even if it is just a forwards monotonic jump.  Things like

The glitch will not be big, if we could save it just before entering
Sx state, I would expect no more than dozens of ticks.

>    TCP timeouts, for example.  Poor dntpd will also not be able to

I don't know whether things like TCP connections are still suppose to
work after Sx transition, since for Sx (x>=1), CPUs will not execute
instructions.

>    keep the time synchronized.
>
>    Is there a way to know for sure whether a sleep state messes
>    up the HPET?  It sounds like it would be messy but it might be
>    possible to use the 8254's free-running timer (our last-chance
>    systimer) to check that the HPET is still functioning after
>    a sleep state exits.  If their approximate relative times do not
>    match then then we will know that the HPET is being messed up
>    by the sleep state.

The HPET document says it is not expected to work properly in Sx (x>=1) states.

>
>    As long as the maximum sleep time is not more then 1/36 of a

Well, I think you probably could expect a box staying in Sx state for
more than an hour :).  So except for saving/restoring timer's counter,
there are probably more things to do...

Best Regards,
sephe

-- 
Live Free or Die





More information about the Commits mailing list