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

Re: [Xen-devel] Requesting for freeze exception for ARM/ITS patches

On Tue, 2015-07-14 at 14:54 +0530, Vijay Kilari wrote:
> I am trying to boot latest staging Xen branch on ThunderX with ITS patches.
> I face below issues with above [1] patch series
> 1)  If pcie support only MSI, then INT mapping is not specified in DT. However
>   the below code returns error if INT mapping is not found and does not map.
> In ThunderX INT mapping is not specified for pcie nodes.
> static int map_device_children(struct domain *d,
>                                 const struct dt_device_node *dev)
> {
>      int ret;
>      if ( dt_device_type_is_equal(dev, "pci") )
>      {
>          DPRINT("Mapping children of %s to guest\n", dt_node_full_name(dev));
>          ret = dt_for_each_irq_map(dev, &map_dt_irq_to_domain, d);
>          if ( ret < 0 )
>              return ret;  // Returns error here

Hrm, I suppose dt_for_each_irq_map ought to return success if the device
in question has no interrupt-map at all.

At first glance it seems like:
    if ( imap == NULL )
        dt_dprintk(" -> no map, ignoring\n");
        goto fail;
Should become:
    if ( imap == NULL )
        dt_dprintk(" -> no map, ignoring\n");
        return 0;

Can you test that and if it is correct submit it as a patch please.

> ...
> }
> 2) Dom0 fails to boot with GICv3. It hangs just after GICv3 initialization.
> To know which is last distributor/re-distributor registers read, I
> have added debug prints
> in GICD & GICR mmio handlers in Xen. But with your patches Linux driver never
> traps to Xen to read/write GICD/GICR registers. If I revert back this
> patch series,
> I see the traps.

Where "this patch series" is this:

$ git log --oneline 
467e5cb xen: arm: consolidate mmio and irq mapping to dom0
f65399f xen: arm: Import of_bus PCI entry from Linux (as a dt_bus entry)
864f82a xen: arm: map child MMIO and IRQs to dom0 for PCI bus DT nodes.
eed5e39 xen: arm: drop redundant extra call to vgic_reserve_virq
f9d08f4 xen: dt: add dt_for_each_range helper
5cefb30 xen: dt: add dt_for_each_irq_map helper


That's rather strange, nothing here should be interacting with the vgic
trapping for GICD/GICR.

About the only thing I can imagine is that something has incorrectly
created a p2m mapping over the GICD/GICR addresses. If that is the case
then it ought to be pretty apparent from the logs with DT_DEBUG enabled
in domain_build.c.

If it isn't apparent from the debug log then please could you bisect
down to a specific patch.


Xen-devel mailing list



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