Alex Williamson wrote:
> 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
This one should be safe and easy to be accepted to remove
CONFIG_XEN.
Signed-off-by: Yaozu (Eddie) Dong <eddie.dong@xxxxxxxxx>
diff --git a/include/asm-ia64/hw_irq.h b/include/asm-ia64/hw_irq.h
index 80009cd..f670433 100644
--- a/include/asm-ia64/hw_irq.h
+++ b/include/asm-ia64/hw_irq.h
@@ -15,11 +15,7 @@
#include <asm/ptrace.h>
#include <asm/smp.h>
-#ifndef CONFIG_XEN
-typedef u8 ia64_vector;
-#else
typedef u16 ia64_vector;
-#endif
/*
* 0 special
x1
Description: x1
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|