diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2009-03-04 13:05:40 +0100 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2009-03-26 18:50:42 +0100 |
commit | f927da178671a824cf6c530f0623544206387e57 (patch) | |
tree | fb9178ff79bfd9ee3b396ff20018eacbfb222d47 /arch/ia64/include/asm/paravirt.h | |
parent | ia64/pv_ops/xen: paravirtualize read/write ar.itc and ar.itm (diff) | |
download | linux-f927da178671a824cf6c530f0623544206387e57.tar.xz linux-f927da178671a824cf6c530f0623544206387e57.zip |
ia64/pv_ops/pv_time_ops: add sched_clock hook.
add sched_clock() hook to paravirtualize sched_clock().
ia64 sched_clock() is based on ar.itc which isn't stable
on virtualized environment because vcpu may move around on
pcpus. So it needs paravirtualization.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/include/asm/paravirt.h')
-rw-r--r-- | arch/ia64/include/asm/paravirt.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/ia64/include/asm/paravirt.h b/arch/ia64/include/asm/paravirt.h index 56f69f938cca..a73e77add7e2 100644 --- a/arch/ia64/include/asm/paravirt.h +++ b/arch/ia64/include/asm/paravirt.h @@ -225,6 +225,8 @@ struct pv_time_ops { int (*do_steal_accounting)(unsigned long *new_itm); void (*clocksource_resume)(void); + + unsigned long long (*sched_clock)(void); }; extern struct pv_time_ops pv_time_ops; @@ -242,6 +244,11 @@ paravirt_do_steal_accounting(unsigned long *new_itm) return pv_time_ops.do_steal_accounting(new_itm); } +static inline unsigned long long paravirt_sched_clock(void) +{ + return pv_time_ops.sched_clock(); +} + #endif /* !__ASSEMBLY__ */ #else |