aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2009-01-05 12:24:58 +0900
committerIsaku Yamahata <yamahata@valinux.co.jp>2009-01-05 12:24:58 +0900
commit658c654a059ed2cc1148302946e8bd054827508d (patch)
treeb32bb76523953eef0e256a70e1966e27425bd629 /tools/libxc
parent3e67fc1ca8bd48017c1ebdbc40751c4ce86b0a29 (diff)
downloadxen-658c654a059ed2cc1148302946e8bd054827508d.tar.gz
xen-658c654a059ed2cc1148302946e8bd054827508d.tar.bz2
xen-658c654a059ed2cc1148302946e8bd054827508d.zip
[IA64] paravirtualize itc and support save/restore.
ia64 linux 2.6.18 only use ar.itc for local ticks so that ar.itc didn't need paravirtualization and it can be work arounded when save/restore. However recent ia64 linux uses ar.itc for sched_clock() and CONFIG_VIRT_CPU_ACCOUNTING and other issues. So ar.itc needs paravirtualization. Although Most part is done in guest OS, save/restore needs hypervisor support. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Diffstat (limited to 'tools/libxc')
-rw-r--r--tools/libxc/ia64/xc_ia64_linux_restore.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/libxc/ia64/xc_ia64_linux_restore.c b/tools/libxc/ia64/xc_ia64_linux_restore.c
index 290c8e726f..69f4e89250 100644
--- a/tools/libxc/ia64/xc_ia64_linux_restore.c
+++ b/tools/libxc/ia64/xc_ia64_linux_restore.c
@@ -128,7 +128,8 @@ xc_ia64_recv_vcpu_context(int xc_handle, int io_fd, uint32_t dom,
fprintf(stderr, "ip=%016lx, b0=%016lx\n", ctxt->regs.ip, ctxt->regs.b[0]);
/* Initialize and set registers. */
- ctxt->flags = VGCF_EXTRA_REGS | VGCF_SET_CR_IRR | VGCF_online;
+ ctxt->flags = VGCF_EXTRA_REGS | VGCF_SET_CR_IRR | VGCF_online |
+ VGCF_SET_AR_ITC;
if (xc_vcpu_setcontext(xc_handle, dom, vcpu, ctxt_any) != 0) {
ERROR("Couldn't set vcpu context");
return -1;