xen-ia64-devel
[Xen-ia64-devel] [PATCH 00/17] ia64/pv_ops take 6
Hi. This patchset implements ia64/pv_ops support which is the
framework for virtualization support.
Changes from take 5 are rebased to Linux 2.6.26-rc3,
bug fix ivt.S paravirtualization and multi entry point support.
I believe these patches can be applied to the linux ia64 repository.
On x86 various ways to support virtualization were proposed, and
eventually pv_ops won. So on ia64 the pv_ops strategy is appropriate too.
Later I'll post the patchset which implements xen domU based on
ia64/pv_ops. Currently only ia64/xen pv_ops implementation exists,
but I believe ia64/kvm can also obtain benefits from this ia64/pv_ops
frame work.
linux/ia64 has the machine vector interface and another approach might be
to utilize it. However pv_ops is better for some reasons. Please see
the thread of the mailing list from
http://www.spinics.net/lists/linux-ia64/msg05238.html
This patchset does the followings.
- some preparation work. Mainly make the kernel virtualization friendly.
- introduce multi entry point support.
- introduce pv_info which describes the execution environment.
- introduce macros for hand written assembly code to paravirtualize
hand written code to replace sensitive/privileged instructions.
- introduce various hooks to replace the implementation with
paravirtualized.
They are defined as function tables called, pv_init_ops, pv_cpu_ops,
pv_irq_ops, pv_iosapic_ops and, pv_time_ops.
They represent
pv_init_ops: hooks for various initialization.
pv_cpu_ops: hooks for ia64 intrinsics.
pv_irq_ops: hooks for irq related operations.
pv_iosapic_ops: hooks for paravirtualized iosapic.
pv_time_ops: hooks for steal time accounting
The working full source is available from
http://people.valinux.co.jp/~yamahata/xen-ia64/linux-2.6-xen-ia64.git/
branch: xen-ia64-2008may19
At this phase, we don't address the following issues.
Those will be addressed after the first merge.
- optimization by binary patch
In fact, we had the patch to do that, but we intentionally dropped
for patch size/readability/cleanness.
- freeing the unused pages, i.e. pages for unused ivt.S.
Changes from take 5:
- rebased to Linux 2.6.26-rc3
- fix ivt.S paravirtualization.
One instruction was wrongly paravirtualized.
It wasn't revealed with Xen HVM domain so far, but with real hw
- multi entry point support.
- revised changelog to add CCs.
Changes from take 4:
- refined NR_IRQS paravirtualization according to Jes Soresen's comment
- rebased and fixed the breakage due to the upstream change.
- fixed various compilation errors.
Changes from take 3:
- split the patch set into pv_op part and xen domU part.
- many clean ups.
- introduced pv_ops: pv_cpu_ops and pv_time_ops.
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,
arch/ia64/Makefile | 6 +
arch/ia64/kernel/Makefile | 44 +++++
arch/ia64/kernel/entry.S | 115 +++++++----
arch/ia64/kernel/head.S | 41 ++++
arch/ia64/kernel/iosapic.c | 45 +++--
arch/ia64/kernel/irq_ia64.c | 19 ++-
arch/ia64/kernel/ivt.S | 249 ++++++++++++------------
arch/ia64/kernel/minstate.h | 13 +-
arch/ia64/kernel/nr-irqs.c | 24 +++
arch/ia64/kernel/paravirt.c | 369 ++++++++++++++++++++++++++++++++++++
arch/ia64/kernel/paravirt_inst.h | 29 +++
arch/ia64/kernel/paravirtentry.S | 60 ++++++
arch/ia64/kernel/setup.c | 10 +
arch/ia64/kernel/smpboot.c | 2 +
arch/ia64/kernel/time.c | 23 +++
arch/ia64/kernel/vmlinux.lds.S | 1 -
include/asm-ia64/Kbuild | 2 +-
include/asm-ia64/gcc_intrin.h | 24 ++--
include/asm-ia64/hw_irq.h | 23 ++-
include/asm-ia64/intel_intrin.h | 41 ++--
include/asm-ia64/intrinsics.h | 55 ++++++
include/asm-ia64/iosapic.h | 18 ++-
include/asm-ia64/irq.h | 9 +-
include/asm-ia64/mmu_context.h | 6 +-
include/asm-ia64/native/inst.h | 175 +++++++++++++++++
include/asm-ia64/native/irq.h | 35 ++++
include/asm-ia64/paravirt.h | 255 +++++++++++++++++++++++++
include/asm-ia64/paravirt_privop.h | 114 +++++++++++
include/asm-ia64/smp.h | 2 +
include/asm-ia64/system.h | 11 +-
30 files changed, 1567 insertions(+), 253 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/17] ia64/pv_ops take 6,
Isaku Yamahata <=
- [Xen-ia64-devel] [PATCH 02/17] ia64/pv_ops: preparation: move the constants, LOAD_OFFSET, to a header file., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 03/17] ia64/pv_ops: preparation: introduce ia64_set_rr0_to_rr4() to make kernel paravirtualization friendly., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 06/17] ia64/pv_ops: add an early setup hook for pv_ops., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 05/17] ia64/pv_ops: introduce pv_info which describes some random info., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 04/17] ia64/pv_ops: preparation: introduce ia64_get_psr_i() to make kernel paravirtualization friendly., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 14/17] ia64/pv_ops: define initialization hooks, pv_init_ops, for paravirtualized environment., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 13/17] ia64/pv_ops: paravirtualize NR_IRQS, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 12/17] ia64/pv_ops: paravirtualize entry.S, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 15/17] ia64/pv_ops: add hooks, pv_iosapic_ops, to paravirtualize iosapic., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 08/17] ia64/pv_ops: preparation for paravirtulization of hand written assembly code., Isaku Yamahata
|
Previous by Date: |
[Xen-ia64-devel] [PATCH 17/17] ia64/pv_ops: add to hooks, pv_time_ops, for steal time accounting., Isaku Yamahata |
Next by Date: |
[Xen-ia64-devel] [PATCH 10/17] ia64/pv_ops: paravirtualize minstate.h., Isaku Yamahata |
Previous by Thread: |
[Xen-ia64-devel] Xen/IPF Unstable CS#17671 Status Report --- one issue fixed, one issue still existed, Zhang, Jingke |
Next by Thread: |
[Xen-ia64-devel] [PATCH 02/17] ia64/pv_ops: preparation: move the constants, LOAD_OFFSET, to a header file., Isaku Yamahata |
Indexes: |
[Date]
[Thread]
[Top]
[All Lists] |
|
|