|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 0/5] RTC: New logic to emulate RTC
RESEND:
Correct a typo in comments.
Current RTC emulation uses periodic timer(2 per second) to emulate RTC clock
update. And it will stop CPU staying at deep C-state for long period even when
guest is idle. Our experience shows the Pkg C6 residency reduced 6% when
running 64 idle guest due to the two periodic timers. After investigation, I
found the two periodic timer is used to update RTC clock, check update-ended
and check alarm. The following patch achieves the same goal w/o always running
the periodic timer.
For rtc clock: the per domain variable time_offset_seconds is used to record
the offset between the domain and wall clock. So we can get the domain rtc
directly by calculating time_offset_seconds with wall clock.
For update-ended check: use a timer to emulate it , and the timer runs only
when the last update-ended interrupt flag(UF) is cleared. If the UF already
set, there is no need to set it again.
For alarm check: also use a timer to emulate it, and the timer runs only when
the flag of alarm interrupt enable bit is set.
The logic is a little different between the update-ended check and alarm check.
For update-ended check ,we use UF(update-ended flag) as the judgment and use
AIE(alarm interrupt enable flag) for alarm check. This is because OS may poll
the UF bit to check whether the update cycle is finished.(UF bit change from 0
to 1 means the update cycle ended). So we need to run the timer when UF bit is
cleared.
---
Yang Zhang (5):
RTC: use offset to caculatet rtc clock
RTC: fix 12-hour mode
RTC: Add UIP(update in progress) check logic
RTC: Add RTC update-ended interrupt support
RTC: Add alarm support
best regards
yang
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |