[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 01/62] Revert "xen/arm: vgic-v2: Drop cbase from arch_domain"

On 2015/11/18 19:41, Julien Grall wrote:
Hi Shannon,

On 18/11/15 02:28, Shannon Zhao wrote:

On 2015/11/17 21:57, Julien Grall wrote:
On 17/11/15 12:32, Shannon Zhao wrote:
Hi Julien,

On 2015/11/17 19:27, Julien Grall wrote:
Hi Shannon,

Why do you want to revert this patch?

Because d->arch.vgic.cbase will be used by creating Dom0 MADT table
later. See [PATCH v3 43/62].
+            gicc.base_address = d->arch.vgic.cbase;

My previous way is get this from ACPI table but someone suggest get it
from struct domain and I think this way is better too since it uses the
value after being parsed.
It's pointless to store the value in arch_domain for something that it's
only use during building...

We have struct kernel_info which store any information related to the
DOM0 during the building.

Yeah, that would be better if it could use kernel_info. But the problem
is that kernel_info is firstly used in construct_dom0(), while it needs
to store the cbase in domain_create() which is called before
construct_dom0(). And if we pass kernel_info as parameter to
domain_create(), this would introduce more changes to common codes.

Do you have any better idea to handle this?

Yes, introducing callback to create the ACPI table in the GIC driver.
See what we did for make_hwdom_dt_node.

We are trying to make the domain_build domain as agnostic as possible
from the GIC version. However in patch #43, you implement specific
version in the domain builder.

It will also not scale very well when we will introduce GICv2m and ITS.

The version of the GIC (ACPI_MADT_GIC_*) could be introduced in the

The re-distributor could be moved in gic-v3.c and the generic interrupt
controller in gic-v2.c.

Note it's a mandatory to emulate the same version as the hardware for
the virtual GIC.

So it doesn't support vGICv2 on GICv3 hardware for Xen?


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.