Hi Chen,
On 23/05/2015 14:52, Chen Baozi wrote:
From: Chen Baozi <baoz...@gmail.com>
GIC-500 supports up to 128 cores in a single SoC. Increase MAX_VIRT_CPUS
to 128 on arm64.
This series have to be bisectable. Although, this patch will break
compilation on ARM64 because you increased MAX_VIRT_CPUS without the
re-distributor region (done in the next patch).
Furthermore, GICv2 is only supporting 8 CPUs. We don't have to allow a
guest with more than 8 vCPUs when the GICv2 is in use.
Lastly, given that the support of 128 vCPUs will only worked when the
last patch of this series is applied, I would move this patch at the end.
Signed-off-by: Chen Baozi <baoz...@gmail.com>
---
xen/arch/arm/vgic-v3.c | 2 +-
xen/include/asm-arm/config.h | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 45d54a2..40e1892 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -906,7 +906,7 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,
mmio_info_t *info)
rank = vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
DABT_DOUBLE_WORD);
if ( rank == NULL ) goto write_ignore;
- BUG_ON(v->domain->max_vcpus > 8);
+ BUG_ON(v->domain->max_vcpus > MAX_VIRT_CPUS);
This check is pointless. max_vcpus will always be inferior or equal to
MAX_VIRT_CPUS.
new_irouter = *r;
vgic_lock_rank(v, rank, flags);
diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
index 3b23e05..817c216 100644
--- a/xen/include/asm-arm/config.h
+++ b/xen/include/asm-arm/config.h
@@ -47,7 +47,11 @@
#define NR_CPUS 128
#endif
+#ifdef CONFIG_ARM_64
+#define MAX_VIRT_CPUS 128
+#else
#define MAX_VIRT_CPUS 8
+#endif
#define asmlinkage /* Nothing needed */
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel