[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: fix rtc_timeoffset when localtime=1
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1238582845 -3600 # Node ID 5d701be7c37baa6652a706f3a2a8dd890fa58f73 # Parent 5759a5766ccac5612f74567e2427ac8e7e629e16 xend: fix rtc_timeoffset when localtime=1 The rtc_timeoffset parameter in VM config is ignored when localtime=1. Also it is not preserved across reboot. NOTE: This patch changes the meaning of the xenstore /vm/<uuid>/rtc/timeoffset from utc offset to local offset. (it's OK for the ioemu) Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx> --- tools/python/xen/xend/XendDomainInfo.py | 17 ++++------------- tools/python/xen/xend/image.py | 11 ++++++++--- tools/python/xen/xm/create.py | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) diff -r 5759a5766cca -r 5d701be7c37b tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Wed Apr 01 11:46:31 2009 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Wed Apr 01 11:47:25 2009 +0100 @@ -1605,9 +1605,6 @@ class XendDomainInfo: # convert two lists into a python dictionary vm_details = dict(zip(cfg_vm, vm_details)) - if vm_details['rtc/timeoffset'] == None: - vm_details['rtc/timeoffset'] = "0" - for arg, val in vm_details.items(): if arg in XendConfig.LEGACY_CFG_TO_XENAPI_CFG: xapiarg = XendConfig.LEGACY_CFG_TO_XENAPI_CFG[arg] @@ -1629,10 +1626,10 @@ class XendDomainInfo: self.info.update_with_image_sxp(sxp.from_string(image_sxp)) changed = True - # Check if the rtc offset has changes - if vm_details.get("rtc/timeoffset", "0") != self.info["platform"].get("rtc_timeoffset", "0"): - self.info["platform"]["rtc_timeoffset"] = vm_details.get("rtc/timeoffset", 0) - changed = True + # Update the rtc_timeoffset to be preserved across reboot. + # NB. No need to update xenstore domain section. + val = int(vm_details.get("rtc/timeoffset", 0)) + self.info["platform"]["rtc_timeoffset"] = val if changed: # Update the domain section of the store, as this contains some @@ -2440,12 +2437,6 @@ class XendDomainInfo: self._configureBootloader() try: - if self.info['platform'].get('localtime', 0): - if time.localtime(time.time())[8]: - self.info['platform']['rtc_timeoffset'] = -time.altzone - else: - self.info['platform']['rtc_timeoffset'] = -time.timezone - self.image = image.create(self, self.info) # repin domain vcpus if a restricted cpus list is provided diff -r 5759a5766cca -r 5d701be7c37b tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Wed Apr 01 11:46:31 2009 +0100 +++ b/tools/python/xen/xend/image.py Wed Apr 01 11:47:25 2009 +0100 @@ -119,9 +119,14 @@ class ImageHandler: self.vncconsole = int(vmConfig['platform'].get('vncconsole', 0)) self.dmargs = self.parseDeviceModelArgs(vmConfig) self.pid = None - rtc_timeoffset = vmConfig['platform'].get('rtc_timeoffset') - if rtc_timeoffset is not None: - xc.domain_set_time_offset(self.vm.getDomid(), int(rtc_timeoffset)) + rtc_timeoffset = int(vmConfig['platform'].get('rtc_timeoffset', 0)) + if vmConfig['platform'].get('localtime', 0): + if time.localtime(time.time())[8]: + rtc_timeoffset -= time.altzone + else: + rtc_timeoffset -= time.timezone + if rtc_timeoffset != 0: + xc.domain_set_time_offset(self.vm.getDomid(), rtc_timeoffset) self.cpuid = None self.cpuid_check = None diff -r 5759a5766cca -r 5d701be7c37b tools/python/xen/xm/create.py --- a/tools/python/xen/xm/create.py Wed Apr 01 11:46:31 2009 +0100 +++ b/tools/python/xen/xm/create.py Wed Apr 01 11:47:25 2009 +0100 @@ -204,7 +204,7 @@ gopts.var('cpus', val='CPUS', use="CPUS to run the domain on.") gopts.var('rtc_timeoffset', val='RTC_TIMEOFFSET', - fn=set_value, default="0", + fn=set_int, default=0, use="Set RTC offset.") gopts.var('pae', val='PAE', _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |