Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/xen/interface/xen.h | 12 +++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
index 87ad143..9b018da 100644
--- a/include/xen/interface/xen.h
+++
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/xen/interface/xen.h | 10 ++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
index 518a5bf..87ad143 100644
--- a/include/xen/interface/xen.h
+++
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.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
drivers/xen/grant-table.c |2 +-
include/asm-x86/xen/interface.h | 24
include/xen/interface/grant_table.h | 11 ---
3 files changed, 33 insertions(+), 4 deletions(-)
diff --git
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/xen/interface/vcpu.h |5 +
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/include/xen/interface/vcpu.h b/include/xen/interface/vcpu.h
index b05d8a6..87e6f8a 100644
--- a/include/xen/interface/vcpu.h
+++
split out x86 specific part from grant-table.c
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/x86/xen/Makefile |2 +-
arch/x86/xen/grant-table.c | 91
drivers/xen/grant-table.c | 35 +---
include/xen/grant_table.h
ia64/xen also uses it too, so move it into common place.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/x86/xen/Makefile|2 +-
drivers/xen/Makefile |2 +-
{arch/x86 = drivers}/xen/features.c |0
3 files changed, 2 insertions(+), 2
ia64/Xen will replace setting rr[0-4] with single hypercall later.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/intrinsics.h | 10 ++
include/asm-ia64/mmu_context.h |6 +-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git
ia64/xen also uses events.c. clean it up so that ia64/xen can use.
make ipi_to_irq globly visible. ia64/xen nees to reference it from other file.
introduce resend_irq_on_evtchn() which ia64 needs.
introduce xen_do_IRQ() to split out arch specific code.
Signed-off-by: Isaku Yamahata [EMAIL
Those definitions in include/asm/xen/page.h are arch specific.
ia64/xen wants to define its own version. So move them to arch specific
directory and keep include/xen/page.h in order not to break compilation.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/{ = asm-x86}/xen/page.h |
Don't use alloc_vm_area()/free_vm_area() directly, instead define
xen_alloc_vm_area()/xen_free_vm_area() and use them.
alloc_vm_area()/free_vm_area() are used to allocate/free area which
are for grant table mapping. Xen/x86 grant table is based on virtual
address so that
__local_irq_save() and local_save_flags() are used to mask interruptions.
They read all psr bits that requres whole bit emulation.
On the other hand, reading only psr.i, the single bit, can be virtualized
cheaply.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/intrinsics.h
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/xen/interface/callback.h | 119 ++
1 files changed, 119 insertions(+), 0 deletions(-)
create mode 100644 include/xen/interface/callback.h
diff --git a/include/xen/interface/callback.h
make some symbol global and add some hooks.
define __IA64_ASM_PARAVIRTUALIZED_NATIVE to tell its native compilation
when compiling ivt.S and switch_leave.S
replace COVER with __COVER to avoid name conflict.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/Makefile |
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/pal.S|5 +++--
include/asm-ia64/privop.h |1 +
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/ia64/kernel/pal.S b/arch/ia64/kernel/pal.S
index 0b53344..d52fd70 100644
---
On xen/ia64 and xen/powerpc hypercall arguments are passed by pseudo
physical address (guest physical address) so that it's necessary to
convert from virtual address into pseudo physical address. The frame
work is called xencomm.
Import arch generic part of xencomm.
Signed-off-by: Isaku Yamahata
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/Makefile |2 +-
arch/ia64/kernel/entry.S| 564 +
arch/ia64/kernel/switch_leave.S | 594 +++
3 files changed, 603 insertions(+), 557
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/inst_native.h | 183
1 files changed, 183 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/kernel/inst_native.h
diff --git a/arch/ia64/kernel/inst_native.h
To make them overridable cleanly, change their prefix from ia64_ to native_
and define ia64_ to native_.
Later ia64_xxx would be redeinfed to pv_ops'ed one.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/gcc_intrin.h | 58 +-
Make ia64 privileged instruction intrinsics paravirtualizable with binary
patching allowing each pv instances to override each intrinsics.
Mark privileged instructions which needs paravirtualization and allow pv
instance can binary patch at early boot time.
Signed-off-by: Isaku Yamahata [EMAIL
Currently it detects by checking psr.cpl != 0.
It's ok for now, but more abstraction would be needed later like x86.
Presumably extending booting protocol (i.e. extending struct ia64_boot_param)
or multi entry points depending on hypervisor would be necessary.
Signed-off-by: Isaku Yamahata [EMAIL
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/inst_paravirt.h | 28
1 files changed, 28 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/kernel/inst_paravirt.h
diff --git a/arch/ia64/kernel/inst_paravirt.h
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/xenpal.S | 76
1 files changed, 76 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/xenpal.S
diff --git a/arch/ia64/xen/xenpal.S b/arch/ia64/xen/xenpal.S
new file
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/acpi.c|4
arch/ia64/xen/machvec.c|4
include/asm-ia64/machvec.h |2 ++
include/asm-ia64/machvec_xen.h | 22 ++
4 files changed, 32 insertions(+), 0 deletions(-)
This isn't necessary because xen defines its own DO_SAVE_MIN.
But this makes the difference of them smaller.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/minstate.h |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/ia64/kernel/minstate.h
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/xenivt.S | 59
1 files changed, 59 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/xenivt.S
diff --git a/arch/ia64/xen/xenivt.S b/arch/ia64/xen/xenivt.S
new file
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/sync_bitops.h | 59
1 files changed, 59 insertions(+), 0 deletions(-)
create mode 100644 include/asm-ia64/sync_bitops.h
diff --git a/include/asm-ia64/sync_bitops.h
import ia64 specific part of xencomm which converts hypercall argument in
virtual address into pseudo physical address (guest physical address).
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/xcom_asm.S | 27 +++
arch/ia64/xen/xcom_hcall.c| 458
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/switch_leave.S | 80 +-
1 files changed, 44 insertions(+), 36 deletions(-)
diff --git a/arch/ia64/kernel/switch_leave.S b/arch/ia64/kernel/switch_leave.S
index 9918160..d6d0f08 100644
---
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/inst_xen.h | 503 ++
1 files changed, 503 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/inst_xen.h
diff --git a/arch/ia64/xen/inst_xen.h b/arch/ia64/xen/inst_xen.h
new
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/hypervisor.c| 235 +
include/asm-ia64/xen/hypervisor.h | 194 ++
2 files changed, 429 insertions(+), 0 deletions(-)
create mode 100644
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/util.c | 101 ++
1 files changed, 101 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/util.c
diff --git a/arch/ia64/xen/util.c b/arch/ia64/xen/util.c
new file mode
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/hypercall.S|7 +
include/asm-ia64/xen/hypercall.h | 426 ++
2 files changed, 433 insertions(+), 0 deletions(-)
create mode 100644 include/asm-ia64/xen/hypercall.h
diff --git
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/Makefile |2 +-
arch/ia64/xen/hypercall.S | 10 +
arch/ia64/xen/irq_xen.c| 435
arch/ia64/xen/irq_xen.h|8 +
arch/ia64/xen/xen_pv_ops.c |3 +
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/page.h |8
include/asm-ia64/xen/page.h | 41 +
2 files changed, 49 insertions(+), 0 deletions(-)
create mode 100644 include/asm-ia64/xen/page.h
diff --git
With binary patching, make intrinsics paravirtualization hypervisor neutral.
So far xen intrinsics doesn't allow another hypervisor.
Binary patch marked privileged operations which needs paravirtualization
if running on xen at early boot time.
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/ivt.S | 153 ---
1 files changed, 78 insertions(+), 75 deletions(-)
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S
index 34f44d8..d1cebe5 100644
---
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
include/asm-ia64/xen/interface.h | 585 ++
1 files changed, 585 insertions(+), 0 deletions(-)
create mode 100644 include/asm-ia64/xen/interface.h
diff --git a/include/asm-ia64/xen/interface.h
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/xenminstate.h | 137 +++
1 files changed, 137 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/xenminstate.h
diff --git a/arch/ia64/xen/xenminstate.h
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/asm-offsets.c | 25 ++
include/asm-ia64/xen/privop.h | 73
2 files changed, 98 insertions(+), 0 deletions(-)
create mode 100644 include/asm-ia64/xen/privop.h
diff --git
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/hypercall.S | 124 ++
include/asm-ia64/xen/privop.h | 512 +
2 files changed, 636 insertions(+), 0 deletions(-)
create mode 100644 arch/ia64/xen/hypercall.S
diff --git
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/xen/Makefile |2 +
arch/ia64/xen/xen_pv_ops.c | 69
arch/ia64/xen/xensetup.S | 10 ++
3 files changed, 81 insertions(+), 0 deletions(-)
create mode 100644
Signed-off-by: Isaku Yamahata [EMAIL PROTECTED]
---
arch/ia64/kernel/irq_ia64.c | 21 ++
arch/ia64/kernel/paravirt.c | 22 +++
include/asm-ia64/hw_irq.h | 20 ++---
include/asm-ia64/paravirt.h | 63 +++
4 files
43 matches
Mail list logo