diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2009-01-05 12:24:58 +0900 |
---|---|---|
committer | Isaku Yamahata <yamahata@valinux.co.jp> | 2009-01-05 12:24:58 +0900 |
commit | 658c654a059ed2cc1148302946e8bd054827508d (patch) | |
tree | b32bb76523953eef0e256a70e1966e27425bd629 /tools/libxc | |
parent | 3e67fc1ca8bd48017c1ebdbc40751c4ce86b0a29 (diff) | |
download | xen-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.c | 3 |
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; |