stefano.stabellini at eu
May 25, 2012, 9:21 AM
Post #1 of 2
[PATCH v4 0/6] xen/arm: event channels and shared_info page
this patch series implements support for injecting event channels into
the guest and enables a wider range of hypercalls for ARM guests.
In order to allow more flexibility I modified the hypercall protocol, in
particular the hypercall number is not passed as imm to hvc anymore,
because we might not always know it at compile time.
The hypercall number is now passed on the r12 register.
With this patch series and using the following Linux tree:
I am able to boot dom0, start xenstored and run basic xl commands, like
"xl list" and "xl uptime".
I have added at the beginning of this series few patches that were
previously sent separately (in particular "arm: support fewer LR
registers than virtual irqs").
Changes in v4:
- drop all the patches that have already been committed;
- rebase on "amd iommu: improve parse_event_log_entry()";
- move the initialization of gic.lr_pending and gic.lr_mask to gic_init;
- pass 0 as memflags to alloc_xenheap_pages in arch_domain_create.
Changes in v3:
- several fixes to "support fewer LR registers than virtual irqs";
- many more comments to the gic and vgic IRQ queues;
- merge Ian's patch into "shared_info page allocation and mapping";
- do not alloc the shared_info page for the idle domain;
- added "handle dom0_max_vcpus=0 case properly" by Ian, removed the
corresponding patch in my series;
- move XEN_HYPERCALL_TAG to a public header;
- clobber register in the debug build;
- document calling convention;
- check if arm_hypercall_table[regs->r12] != NULL;
- use a PPI for events injection (IRQ 31) and do not request maintenance
interrupts for it whenever possible.
Changes in v2:
- fixed tabs/spaces problem.
Stefano Stabellini (6):
arm: support fewer LR registers than virtual irqs
arm: replace list_del and INIT_LIST_HEAD with list_del_init
arm: shared_info page allocation and mapping
arm: implement flush_tlb_all_local and flush_tlb_local
arm: remove VGIC_SOFTIRQ
arm: implement event injection
xen/arch/arm/domain.c | 22 ++++++
xen/arch/arm/dummy.S | 1 -
xen/arch/arm/gic.c | 152 +++++++++++++++++++++++++++++++++-------
xen/arch/arm/gic.h | 7 ++-
xen/arch/arm/mm.c | 98 +++++++++++++++++++++++++-
xen/arch/arm/p2m.c | 26 +++++++-
xen/arch/arm/traps.c | 4 +-
xen/arch/arm/vgic.c | 15 ----
xen/include/asm-arm/config.h | 2 +
xen/include/asm-arm/domain.h | 10 +++
xen/include/asm-arm/flushtlb.h | 23 ++++++-
xen/include/asm-arm/mm.h | 4 +
xen/include/asm-arm/p2m.h | 9 +++
xen/include/asm-arm/paging.h | 3 +
xen/include/asm-arm/softirq.h | 3 +-
15 files changed, 326 insertions(+), 53 deletions(-)
A git branch is available here:
Xen-devel mailing list
Xen-devel [at] lists