|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] [PATCH 00/50] ia64/xen take 3: ia64/xen domU paravirtua
Hi. This patchset implements xen/ia64 domU support.
Qing He and Eddie Dong also has been woring on pv_ops so that
I want to discuss before going further and avoid duplicated work.
I suppose that Eddie will also post his own patch. So reviewing both
patches, we can reach to better pv_ops interface.
- I didn't changed the ia64 intrinsic paravirtulization abi from
the last post. Presumably it would be better to discuss with
the Eddie's patch.
- I implemented The basic portion of domU pv_ops.
They may need the interface refinement. Probably Eddie has
his own opinion.
- This time I dropped the patches which hasn't been pv_ops'fied yet
because they aren't changed from the last post.
You can also get the full source from
http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/
branch: xen-ia64-2008mar06
The patchset are organized as follows
- xen arch portability.
Generalizes x86 xen patches for ia64 support.
- some preliminary patches.
Make kernel paravirtualization friendly.
- introduce pv_ops and the definitions for native.
- basic helper functions for xen ia64 support.
- introduce the pv_ops instance for xen/ia64.
TODO:
- discuss and define intrinsic paravirtualization abi.
- discuss pv_ops.
- more pv_ops for domU
- mca/sal call
- timer
- gate page
- fsys
- support save/restore/live migration
- more clean ups
- remove unnecessary if (is_running_on_xen()).
- Free xen_ivt areas somehow. No waste kernel space
From Keith Owens idea.
Probably after defining ABI because this is just optimization.
- dom0
consider after finishing domU/ia64 merge.
Changes from take 2:
- many clean ups following to comments.
- clean up:assembly instruction macro.
- introduced pv_ops: pv_info, pv_init_ops, pv_iosapic_ops, pv_irq_ops.
Changes from take 1:
Single IVT source code. compile multitimes using assembler macros.
thanks,
Diffstat:
arch/ia64/Kconfig | 72 +++
arch/ia64/kernel/Makefile | 30 +-
arch/ia64/kernel/acpi.c | 4 +
arch/ia64/kernel/asm-offsets.c | 25 +
arch/ia64/kernel/entry.S | 568 +------------------
arch/ia64/kernel/head.S | 6 +
arch/ia64/kernel/inst_native.h | 183 ++++++
arch/ia64/kernel/inst_paravirt.h | 28 +
arch/ia64/kernel/iosapic.c | 43 +-
arch/ia64/kernel/irq_ia64.c | 21 +-
arch/ia64/kernel/ivt.S | 153 +++---
arch/ia64/kernel/minstate.h | 10 +-
arch/ia64/kernel/module.c | 32 +
arch/ia64/kernel/pal.S | 5 +-
arch/ia64/kernel/paravirt.c | 94 +++
arch/ia64/kernel/paravirt_alt.c | 118 ++++
arch/ia64/kernel/paravirt_core.c | 201 +++++++
arch/ia64/kernel/paravirt_entry.c | 99 ++++
arch/ia64/kernel/paravirt_nop.c | 49 ++
arch/ia64/kernel/paravirtentry.S | 37 ++
arch/ia64/kernel/setup.c | 14 +
arch/ia64/kernel/smpboot.c | 2 +
arch/ia64/kernel/switch_leave.S | 603 +++++++++++++++++++
arch/ia64/kernel/vmlinux.lds.S | 35 ++
arch/ia64/xen/Makefile | 9 +
arch/ia64/xen/hypercall.S | 141 +++++
arch/ia64/xen/hypervisor.c | 235 ++++++++
arch/ia64/xen/inst_xen.h | 503 ++++++++++++++++
arch/ia64/xen/irq_xen.c | 435 ++++++++++++++
arch/ia64/xen/irq_xen.h | 8 +
arch/ia64/xen/machvec.c | 4 +
arch/ia64/xen/paravirt_xen.c | 242 ++++++++
arch/ia64/xen/privops_asm.S | 221 +++++++
arch/ia64/xen/privops_c.c | 279 +++++++++
arch/ia64/xen/util.c | 101 ++++
arch/ia64/xen/xcom_asm.S | 27 +
arch/ia64/xen/xcom_hcall.c | 458 +++++++++++++++
arch/ia64/xen/xen_pv_ops.c | 319 ++++++++++
arch/ia64/xen/xencomm.c | 108 ++++
arch/ia64/xen/xenivt.S | 59 ++
arch/ia64/{kernel/minstate.h => xen/xenminstate.h} | 96 +---
arch/ia64/xen/xenpal.S | 76 +++
arch/ia64/xen/xensetup.S | 60 ++
arch/x86/xen/Makefile | 4 +-
arch/x86/xen/grant-table.c | 91 +++
arch/x86/xen/xen-ops.h | 2 +-
drivers/xen/Makefile | 3 +-
{arch/x86 => drivers}/xen/events.c | 33 +-
{arch/x86 => drivers}/xen/features.c | 0
drivers/xen/grant-table.c | 37 +--
drivers/xen/xenbus/xenbus_client.c | 6 +-
drivers/xen/xencomm.c | 232 ++++++++
include/asm-ia64/gcc_intrin.h | 58 +-
include/asm-ia64/hw_irq.h | 24 +-
include/asm-ia64/intel_intrin.h | 64 +-
include/asm-ia64/intrinsics.h | 12 +
include/asm-ia64/iosapic.h | 18 +-
include/asm-ia64/irq.h | 33 ++
include/asm-ia64/machvec.h | 2 +
include/asm-ia64/machvec_xen.h | 22 +
include/asm-ia64/meminit.h | 3 +-
include/asm-ia64/mmu_context.h | 6 +-
include/asm-ia64/module.h | 6 +
include/asm-ia64/page.h | 8 +
include/asm-ia64/paravirt.h | 284 +++++++++
include/asm-ia64/paravirt_alt.h | 82 +++
include/asm-ia64/paravirt_core.h | 54 ++
include/asm-ia64/paravirt_entry.h | 62 ++
include/asm-ia64/paravirt_nop.h | 46 ++
include/asm-ia64/privop.h | 67 +++
include/asm-ia64/privop_paravirt.h | 587 +++++++++++++++++++
include/asm-ia64/sync_bitops.h | 59 ++
include/asm-ia64/system.h | 4 +-
include/asm-ia64/xen/hypercall.h | 426 ++++++++++++++
include/asm-ia64/xen/hypervisor.h | 249 ++++++++
include/asm-ia64/xen/interface.h | 585 +++++++++++++++++++
include/asm-ia64/xen/page.h | 41 ++
include/asm-ia64/xen/privop.h | 609 ++++++++++++++++++++
include/asm-ia64/xen/xcom_hcall.h | 55 ++
include/asm-ia64/xen/xencomm.h | 33 ++
include/asm-x86/xen/hypervisor.h | 10 +
include/asm-x86/xen/interface.h | 24 +
include/{ => asm-x86}/xen/page.h | 0
include/xen/events.h | 1 +
include/xen/grant_table.h | 6 +
include/xen/interface/callback.h | 119 ++++
include/xen/interface/grant_table.h | 11 +-
include/xen/interface/vcpu.h | 5 +
include/xen/interface/xen.h | 22 +-
include/xen/interface/xencomm.h | 41 ++
include/xen/page.h | 181 +------
include/xen/xen-ops.h | 6 +
include/xen/xencomm.h | 77 +++
93 files changed, 9174 insertions(+), 1049 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 00/50] ia64/xen take 3: ia64/xen domU paravirtualization,
Isaku Yamahata <=
- [Xen-ia64-devel] [PATCH 02/50] xen: add missing VIRQ_ARCH_[0-7] definitions which ia64/xen needs., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 01/50] xen: add missing __HYPERVISOR_arch_[0-7] definisions which ia64 needs., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 03/50] xen: add missing definitions for xen grant table which ia64/xen needs., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 04/50] xen: add missing definitions in include/xen/interface/vcpu.h which ia64/xen needs, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 09/50] xen: make grant table arch portable., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 05/50] xen: move features.c from arch/x86/xen/features.c to drivers/xen., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 12/50] ia64/pv_ops: introduce ia64_set_rr0_to_rr4() to make kernel paravirtualization friendly., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 06/50] xen: move arch/x86/xen/events.c undedr drivers/xen and split out arch specific part., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 07/50] xen: make include/xen/page.h portable moving those definitions under asm dir., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 17/50] ia64/pv_ops: introduce basic facilities for binary patching., Isaku Yamahata
|
|
|
|
|