WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [xen] Update the hvm rtc clock state if t

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [xen] Update the hvm rtc clock state if the domain's time offset is changed.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 09 Mar 2007 09:40:07 -0800
Delivery-date: Fri, 09 Mar 2007 09:39:50 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
# Date 1173369092 0
# Node ID 345effaf2258f1059172023d542ff011468d702c
# Parent  7e2f7e8b63d3013efc0e009bc16509daa011a3be
[xen] Update the hvm rtc clock state if the domain's time offset is changed.
The settimeoffset domctl had no effect on hvm domains since the offset
was only read in rtc_init which is done when the domain is created.

Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxxx>
---
 xen/arch/x86/hvm/rtc.c        |   17 ++++++++++++++---
 xen/include/asm-x86/hvm/vpt.h |    1 +
 2 files changed, 15 insertions(+), 3 deletions(-)

diff -r 7e2f7e8b63d3 -r 345effaf2258 xen/arch/x86/hvm/rtc.c
--- a/xen/arch/x86/hvm/rtc.c    Thu Mar 08 15:35:28 2007 +0000
+++ b/xen/arch/x86/hvm/rtc.c    Thu Mar 08 15:51:32 2007 +0000
@@ -174,6 +174,11 @@ static void rtc_copy_date(RTCState *s)
 {
     const struct tm *tm = &s->current_tm;
 
+    if (s->time_offset_seconds != s->pt.vcpu->domain->time_offset_seconds) {
+        s->current_tm = gmtime(get_localtime(s->pt.vcpu->domain));
+        s->time_offset_seconds = s->pt.vcpu->domain->time_offset_seconds;
+    }
+
     s->hw.cmos_data[RTC_SECONDS] = to_bcd(s, tm->tm_sec);
     s->hw.cmos_data[RTC_MINUTES] = to_bcd(s, tm->tm_min);
     if ( s->hw.cmos_data[RTC_REG_B] & RTC_24H )
@@ -211,9 +216,15 @@ static int get_days_in_month(int month, 
 }
 
 /* update 'tm' to the next second */
-static void rtc_next_second(struct tm *tm)
-{
+static void rtc_next_second(RTCState *s)
+{
+    struct tm *tm = &s->current_tm;
     int days_in_month;
+
+    if (s->time_offset_seconds != s->pt.vcpu->domain->time_offset_seconds) {
+        s->current_tm = gmtime(get_localtime(s->pt.vcpu->domain));
+        s->time_offset_seconds = s->pt.vcpu->domain->time_offset_seconds;
+    }
 
     tm->tm_sec++;
     if ((unsigned)tm->tm_sec >= 60) {
@@ -258,7 +269,7 @@ static void rtc_update_second(void *opaq
     }
     else
     {
-        rtc_next_second(&s->current_tm);
+        rtc_next_second(s);
         
         if ( !(s->hw.cmos_data[RTC_REG_B] & RTC_SET) )
             s->hw.cmos_data[RTC_REG_A] |= RTC_UIP;
diff -r 7e2f7e8b63d3 -r 345effaf2258 xen/include/asm-x86/hvm/vpt.h
--- a/xen/include/asm-x86/hvm/vpt.h     Thu Mar 08 15:35:28 2007 +0000
+++ b/xen/include/asm-x86/hvm/vpt.h     Thu Mar 08 15:51:32 2007 +0000
@@ -92,6 +92,7 @@ typedef struct RTCState {
     struct timer second_timer;
     struct timer second_timer2;
     struct periodic_time pt;
+    int32_t time_offset_seconds;
 } RTCState;
 
 #define FREQUENCE_PMTIMER  3579545  /* Timer should run at 3.579545 MHz */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [xen] Update the hvm rtc clock state if the domain's time offset is changed., Xen patchbot-unstable <=