|
|
 |
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] [PATCH 0/8] RFC: ia64/xen TAKE 2: paravirtualization of
Hi. I rewrote the patch according to the comments. I adopted generating
in-place code because it looks the quickest way.
The point Eddie wanted to discuss is how to generate code and its ABI.
i.e. in-place generating v.s. direct jump v.s. indirect function call
Indirect function call doesn't make sense because ivt.S is compiled
multi times. And it is up to pv instances to choose in-place generating
or direct jump. So what we should define is its clobbered registers.
The ABI which this patch adopted is xen biased. Presumably we want to
twist those macros to make more hypervisor neutral. (i.e. add more
clobbered registers) Please comment.
TODO:
- more clean ups
some macro needs clean up to be aware register usage r8, r9.
- Free xen_ivt ares somehow. No waste kernel space
From Keith Owens idea.
Probably after defining ABI because this is just optimization.
Changes from TAKE 1:
Single IVT source code. compile multitimes using assembler macros.
Diffstat:
arch/ia64/kernel/Makefile | 32 +-
arch/ia64/kernel/entry.S | 568 +------------------
arch/ia64/kernel/inst_native.h | 153 +++++
arch/ia64/kernel/ivt.S | 159 +++---
arch/ia64/kernel/minstate.h | 2 +
arch/ia64/kernel/switch_leave.S | 609 ++++++++++++++++++++
arch/ia64/xen/inst_xen.h | 307 ++++++++++
arch/ia64/{kernel/minstate.h => xen/xenminstate.h} | 95 +---
include/asm-ia64/privop.h | 26 +
9 files changed, 1245 insertions(+), 706 deletions(-)
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] [PATCH 0/8] RFC: ia64/xen TAKE 2: paravirtualization of hand written assembly code,
Isaku Yamahata <=
- [Xen-ia64-devel] [PATCH 3/8] ia64/pv_ops: paravirtualization hand written assnbly code. inst_native.h, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 4/8] ia64/pv_ops: paravirtualize arch/ia64/kernel/switch_leave.S, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 2/8] ia64/pv_ops: preparation for paravirtualizatin of switch_leave.S and ivt.S, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 1/8] ia64/pv_ops: split out ia64_swtich_to(), ia64_leave_syscall() and ia64_leave_kernel from entry.S to switch_leave.S for paravirtualization., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 6/8] ia64/pv_ops xen: xen paravirtualization of hand written assembly code. inst_xen.h, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 5/8] ia64/pv_ops: paravirtualize arch/ia64/kernel/ivt.S., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 7/8] ia64/xen: paravirtualize minstate.h, DO_SAVE_MIN., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 8/8] ia64/pv_ops/xen: multi compiling switch_leave.S and ivt.S for xen., Isaku Yamahata
|
|
|
|
|