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

Re: [PATCH 09/12] xen/arm: if is_domain_direct_mapped use native addresses for GICv3



Hi Stefano,

On 01/05/2020 02:31, Stefano Stabellini wrote:
On Wed, 15 Apr 2020, Julien Grall wrote:
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 4e60ba15cc..4cf430f865 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -1677,13 +1677,25 @@ static int vgic_v3_domain_init(struct domain *d)


I think you also want to modify vgic_v3_max_rdist_count().

I don't think so: domUs even direct-mapped still only get 1 rdist
region. This patch is not changing the layout of the domU gic, it is
only finding a "hole" in the physical address space to make sure there
are no conflicts (or at least minimize the chance of conflicts.)

How do you know the "hole" is big enough?


        * Domain 0 gets the hardware address.
        * Guests get the virtual platform layout.

This comment needs to be updated.

Yep, I'll do


        */
-    if ( is_hardware_domain(d) )
+    if ( is_domain_direct_mapped(d) )
       {
           unsigned int first_cpu = 0;
+        unsigned int nr_rdist_regions;
             d->arch.vgic.dbase = vgic_v3_hw.dbase;
   -        for ( i = 0; i < vgic_v3_hw.nr_rdist_regions; i++ )
+        if ( is_hardware_domain(d) )
+        {
+            nr_rdist_regions = vgic_v3_hw.nr_rdist_regions;
+            d->arch.vgic.intid_bits = vgic_v3_hw.intid_bits;
+        }
+        else
+        {
+            nr_rdist_regions = 1;

What does promise your the rdist region will be big enough to cater all the
re-distributors for your domain?

Good point. I'll add an explicit check for that with at least a warning.
I don't think we want to return error because the configuration it is
still likely to work.

No it is not going to work. Imagine you have have a guest with 3 vCPUs but the first re-distributor region can only cater 2 re-distributor. How is this going to be fine to continue?

For dom0, we are re-using the same hole but possibly not all of them. Why can't we do that for domU?

Cheers,

--
Julien Grall



 


Rackspace

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