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-ia64-devel

[Xen-ia64-devel] [PATCH][PVOPS] time.c cleanup

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] [PATCH][PVOPS] time.c cleanup
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Mon, 17 Mar 2008 14:58:06 -0600
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 17 Mar 2008 13:58:13 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: OSLO R&D
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi Isaku,

   Here's some cleanup to arch/ia64/kernel/time.c.  I removed
time_resume() since it's not called from anywhere.  I think this file
still needs some work; any PV guest is going to need something like
this, so it would be nice to isolate the Xen specific parts and have
everything else in PARAVIRT_GUEST code instead of XEN.  This might be an
opportunity for another pv_ops structure.  Maybe we should also create a
is_paravirt_guest() macro to clearly distinguish Xen-isms from things we
think apply to all PV guests.  This should probably live in
asm/paravirt.h and include asm/xen/hypervisor.h so we can just include
one file and get both is_paravirt_guest() and is_running_on_xen().
Thanks,

        Alex

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---

 time.c |   58 +++++++---------------------------------------------------
 1 file changed, 7 insertions(+), 51 deletions(-)

diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 1bb0362..cae777e 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -31,10 +31,10 @@
 
 #include <asm/xen/hypervisor.h>
 #ifdef CONFIG_XEN
+#include <asm/percpu.h>
 #include <linux/kernel_stat.h>
 #include <linux/posix-timers.h>
 #include <xen/interface/vcpu.h>
-#include <asm/percpu.h>
 #endif
 
 #include "fsyscall_gtod_data.h"
@@ -283,7 +283,7 @@ __setup("nojitter", nojitter_setup);
 
 #ifdef CONFIG_XEN
 /* taken from i386/kernel/time-xen.c */
-static void init_missing_ticks_accounting(int cpu)
+static void xen_init_missing_ticks_accounting(int cpu)
 {
        struct vcpu_register_runstate_memory_area area;
        struct vcpu_runstate_info *runstate = &per_cpu(runstate, cpu);
@@ -301,63 +301,19 @@ static void init_missing_ticks_accounting(int cpu)
                                            + runstate->time[RUNSTATE_offline];
 }
 
-static int xen_ia64_settimefoday_after_resume;
+static int xen_ia64_settimeofday_after_resume;
 
 static int __init __xen_ia64_settimeofday_after_resume(char *str)
 {
-       xen_ia64_settimefoday_after_resume = 1;
+       xen_ia64_settimeofday_after_resume = 1;
        return 1;
 }
 
-__setup("xen_ia64_settimefoday_after_resume",
+__setup("xen_ia64_settimeofday_after_resume",
         __xen_ia64_settimeofday_after_resume);
 
-/* Called after suspend, to resume time.  */
-void
-time_resume(void)
-{
-       unsigned int cpu;
-
-       /* Just trigger a tick.  */
-       ia64_cpu_local_tick();
-
-       if (xen_ia64_settimefoday_after_resume) {
-               /* do_settimeofday() resets timer interplator */
-               struct timespec xen_time;
-               int ret;
-               efi_gettimeofday(&xen_time);
-
-               ret = do_settimeofday(&xen_time);
-               WARN_ON(ret);
-       } else {
-#if 0
-               /* adjust EFI time */
-               struct timespec my_time = CURRENT_TIME;
-               struct timespec xen_time;
-               static timespec diff;
-               struct xen_domctl domctl;
-               int ret;
-
-               efi_gettimeofday(&xen_time);
-               diff = timespec_sub(&xen_time, &my_time);
-               domctl.cmd = XEN_DOMCTL_settimeoffset;
-               domctl.domain = DOMID_SELF;
-               domctl.u.settimeoffset.timeoffset_seconds = diff.tv_sec;
-               ret = HYPERVISOR_domctl_op(&domctl);
-               WARN_ON(ret);
-#endif
-               /* itc_clocksource remembers the last timer status in
-                * itc_jitter_data. Forget it */
-               clocksource_resume();
-       }
-
-       for_each_online_cpu(cpu)
-               init_missing_ticks_accounting(cpu);
-
-       touch_softlockup_watchdog();
-}
 #else
-#define init_missing_ticks_accounting(cpu) do {} while (0)
+#define xen_init_missing_ticks_accounting(cpu) do {} while (0)
 #endif
 
 void __devinit
@@ -455,7 +411,7 @@ ia64_init_itm (void)
                clocksource_itc.rating = 50;
 
        if (is_running_on_xen())
-               init_missing_ticks_accounting(smp_processor_id());
+               xen_init_missing_ticks_accounting(smp_processor_id());
 
        /* avoid softlock up message when cpu is unplug and plugged again. */
        touch_softlockup_watchdog();



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

<Prev in Thread] Current Thread [Next in Thread>