aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/include/asm/xen/minstate.h
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2009-03-04 21:05:39 +0900
committerTony Luck <tony.luck@intel.com>2009-03-26 10:50:32 -0700
commit496203b15b7249599712525c2b6aafe231b4628d (patch)
treeee8c5dbe02b820ac208fe6f3b7982a49a502cc28 /arch/ia64/include/asm/xen/minstate.h
parentia64/pv_ops: paravirtualize mov = ar.itc. (diff)
downloadlinux-dev-496203b15b7249599712525c2b6aafe231b4628d.tar.xz
linux-dev-496203b15b7249599712525c2b6aafe231b4628d.zip
ia64/pv_ops/xen: paravirtualize read/write ar.itc and ar.itm
paravirtualize ar.itc and ar.itm in order to support save/restore. 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/xen/minstate.h')
-rw-r--r--arch/ia64/include/asm/xen/minstate.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/ia64/include/asm/xen/minstate.h b/arch/ia64/include/asm/xen/minstate.h
index 4d92d9bbda7b..c57fa910f2c9 100644
--- a/arch/ia64/include/asm/xen/minstate.h
+++ b/arch/ia64/include/asm/xen/minstate.h
@@ -1,3 +1,12 @@
+
+#ifdef CONFIG_VIRT_CPU_ACCOUNTING
+/* read ar.itc in advance, and use it before leaving bank 0 */
+#define XEN_ACCOUNT_GET_STAMP \
+ MOV_FROM_ITC(pUStk, p6, r20, r2);
+#else
+#define XEN_ACCOUNT_GET_STAMP
+#endif
+
/*
* DO_SAVE_MIN switches to the kernel stacks (if necessary) and saves
* the minimum state necessary that allows us to turn psr.ic back
@@ -123,7 +132,7 @@
;; \
.mem.offset 0,0; st8.spill [r16]=r2,16; \
.mem.offset 8,0; st8.spill [r17]=r3,16; \
- ACCOUNT_GET_STAMP \
+ XEN_ACCOUNT_GET_STAMP \
adds r2=IA64_PT_REGS_R16_OFFSET,r1; \
;; \
EXTRA; \