|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Xen data from meta-virtualization layer
Hello Stefano,
> On 17 Nov 2020, at 11:53 pm, Stefano Stabellini
> <stefano.stabellini@xxxxxxxxxx> wrote:
>
> Adding Bertrand, Oleksandr, Julien, and others -- they have a more
> recent experience with GICv3 ITS than me and might be able to help.
> I am attaching the device tree Leo sent a few days ago for reference.
>
>
> Typically when you can set the ethernet link up and no packets are
> exchanged it is because of a missing interrupt. In this case a missing
> MSI.
>
> Bertrand, I believe you tried the GIC ITS driver with PCI devices
> recently. It is expected to work correctly with MSIs in Dom0, right?
>
Yes we are using the XEN GIC ITS driver and MSI interrupts is working fine in
DOM0.
20: 112 0 0 0 ITS-MSI 1572864 Edge eth0
21: 441 0 0 0 ITS-MSI 3670016 Edge
eth1
22: 4286 0 0 0 ITS-MSI 4194304 Edge
xhci_hcd
Regards,
Rahul
>
> On Tue, 17 Nov 2020, Leo Krueger wrote:
>> Hi,
>>
>> I enabled CONFIG_HAS_ITS (what a stupid mistake by me to not set it
>> before...) but then had to add the following node to my device tree
>>
>> gic_lpi_base: syscon@0x80000000 {
>> compatible = "gic-lpi-base";
>> reg = <0x0 0x80000000 0x0 0x100000>;
>> max-gic-redistributors = <2>;
>> };
>>
>> to somehow change something in regard to the ITS and MSI/MSI-X
>>
>> (XEN) GICv3 initialization:
>> (XEN) gic_dist_addr=0x00000006000000
>> (XEN) gic_maintenance_irq=25
>> (XEN) gic_rdist_stride=0
>> (XEN) gic_rdist_regions=1
>> (XEN) redistributor regions:
>> (XEN) - region 0: 0x00000006040000 - 0x00000006080000
>> (XEN) GICv3: using at most 57344 LPIs on the host.
>> (XEN) GICv3: 288 lines, (IID 0001143b).
>> (XEN) GICv3: Found ITS @0x6020000
>> (XEN) using non-cacheable ITS command queue
>> (XEN) GICv3: CPU0: Found redistributor in region 0 @000000004001c000
>>
>> [ 0.000000] GICv3: Distributor has no Range Selector support
>> [ 0.000000] GICv3: no VLPI support, no direct LPI support
>> [ 0.000000] ITS [mem 0x06020000-0x0603ffff]
>> [ 0.000000] ITS@0x0000000006020000: allocated 65536 Devices @dc880000
>> (flat, esz 8, psz 64K, shr 1)
>> [ 0.000000] ITS@0x0000000006020000: allocated 32768 Interrupt Collections
>> @dc820000 (flat, esz 2, psz 64K, shr 1)
>> [ 0.000000] GIC: using LPI property table @0x00000000dc830000
>> [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000006040000
>> [ 0.000000] CPU0: using LPI pending table @0x00000000dc840000
>> ...
>> [ 0.040080] Platform MSI: gic-its domain created
>> [ 0.040136] PCI/MSI: /interrupt-controller/gic-its domain created
>> [ 0.040181] fsl-mc MSI: /interrupt-controller/gic-its domain created
>>
>>
>> Still I am ending up with the " Failed to add - passthrough or MSI/MSI-X
>> might fail!" log messages for some PCI devices, but at least the on-board
>> ethernet ports (fsl_enetc ) are initialized.
>> I can set the link up and a link is successfully established.
>>
>> But (!) I cannot receive or transmit anything (no error message...) and
>> there seem to be no interrupts:
>>
>> 29: 0 ITS-MSI 1 Edge gbe0-rxtx0
>> 32: 0 ITS-MSI 8192 Edge ptp_qoriq
>>
>> (from /proc/interrupts).
>>
>> Any idea on this one? I keep digging and checking whether my device tree
>> needs some additional fixes.
>>
>> Kind regards,
>> Leo
>>
>> --
>> Leo Krüger, M.Sc.
>> Senior Systems Engineer Distributed Systems
>> Intelligent Digital Cabin
>>
>> ZAL Zentrum für Angewandte Luftfahrtforschung GmbH
>> Hein-Saß-Weg 22
>> 21129 Hamburg
>>
>> +49 (0) 40 248 595-154
>>
>> zal.aero | twitter.com/ZALTechCenter | facebook.com/ZALTechCenter
>>
>> ZAL Zentrum für Angewandte Luftfahrtforschung GmbH
>> Sitz der Gesellschaft / Legal Domicile: Hamburg
>> Registergericht / Registration Court: Amtsgericht Hamburg HRB 110232
>> Vorsitzender des Aufsichtsrates / Chairman of the Supervisory Board: StR
>> Andreas Rieckhof
>> Geschäftsführung / Board of Management: Roland Gerhards
>>
>> Disclaimer:
>> This e-mail may contain confidential and/or privileged information. If you
>> are not the intended recipient (or have
>> received this mail in error), please notify the sender immediately and
>> destroy this e-mail. Any unauthorised copying,
>> disclosure or distribution of the material in this e-mail is strictly
>> forbidden.
>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
>>> Gesendet: Dienstag, 17. November 2020 01:59
>>> An: Leo Krueger <leo.krueger@xxxxxxxx>
>>> Cc: Peng Fan <peng.fan@xxxxxxx>; Stefano Stabellini
>>> <stefano.stabellini@xxxxxxxxxx>; brucea@xxxxxxxxxx; Cornelia Bruelhart
>>> <cornelia.bruelhart@xxxxxxxx>
>>> Betreff: Re: AW: AW: AW: Xen data from meta-virtualization layer
>>>
>>> Replies inline below
>>>
>>>
>>> On Sun, 15 Nov 2020, Leo Krueger wrote:
>>>> Hi Peng, hi Stefano,
>>>>
>>>>
>>>>
>>>> sorry for the long silence…
>>>>
>>>>
>>>>
>>>> I tried the change suggested (and hope I didn’t do anything wrong
>>>> while doing so…) on top of XEN 4.13.2 (before, I always tried with
>>>> 4.12 but wanted to give 4.13.2 a try as well) but I do not see any
>>>> difference,
>>> still the same “unhandled context fault” log entries pop up and I cannot
>>> access my sdcard.
>>>>
>>>>
>>>>
>>>> As it seems to work without respectively disabled iommu, that would be
>>>> fine for me for now. What I am worried about a bit more is PCIe or
>>> MSI/MSIX to be exact.
>>>>
>>>>
>>>>
>>>> Here is the gic-v3 and its node from my device tree:
>>>>
>>>>
>>>>
>>>> interrupt-controller@6000000 {
>>>>
>>>> compatible = "arm,gic-v3";
>>>>
>>>> #address-cells = <0x2>;
>>>>
>>>> #size-cells = <0x2>;
>>>>
>>>> ranges;
>>>>
>>>> reg = <0x0 0x6000000 0x0 0x10000 0x0 0x6040000 0x0 0x40000>;
>>>>
>>>> #interrupt-cells = <0x3>;
>>>>
>>>> interrupt-controller;
>>>>
>>>> interrupts = <0x1 0x9 0xf08>;
>>>>
>>>> phandle = <0x1>;
>>>>
>>>>
>>>>
>>>> gic-its@6020000 {
>>>>
>>>> compatible = "arm,gic-v3-its";
>>>>
>>>> msi-controller;
>>>>
>>>> reg = <0x0 0x6020000 0x0 0x20000>;
>>>>
>>>> phandle = <0xd>;
>>>>
>>>> };
>>>>
>>>> };
>>>>
>>>>
>>>>
>>>> And here are some kernel log excerpts related to GIC when booting
>>> without (!) XEN:
>>>>
>>>>
>>>>
>>>> [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
>>>>
>>>> [ 0.000000] GICv3: Distributor has no Range Selector support
>>>>
>>>> [ 0.000000] GICv3: no VLPI support, no direct LPI support
>>>>
>>>> [ 0.000000] ITS [mem 0x06020000-0x0603ffff]
>>>>
>>>> [ 0.000000] ITS@0x0000000006020000: allocated 65536 Devices
>>>> @20fb880000 (flat, esz 8, psz 64K, shr 0)
>>>>
>>>> [ 0.000000] ITS: using cache flushing for cmd queue
>>>>
>>>> [ 0.000000] GIC: using LPI property table @0x00000020fb830000
>>>>
>>>> [ 0.000000] GICv3: CPU0: found redistributor 0 region
>>>> 0:0x0000000006040000
>>>>
>>>> [ 0.000000] CPU0: using LPI pending table @0x00000020fb840000
>>>>
>>>> [ 0.000000] GIC: using cache flushing for LPI property table
>>>>
>>>>
>>>>
>>>> However, when booting with XEN, only the following three lines are
>>> contained in the kernel log:
>>>>
>>>>
>>>>
>>>> [ 0.000000] GICv3: Distributor has no Range Selector support
>>>>
>>>> [ 0.000000] GICv3: no VLPI support, no direct LPI support
>>>>
>>>> [ 0.000000] GICv3: CPU0: found redistributor 0 region
>>>> 0:0x0000000006040000
>>>
>>> "no VLPI support" is very suspicious, it looks like Dom0 doesn't find any
>>> ITS
>>> support.
>>>
>>> Can you double check that you have the ITS driver in Xen built-in? That
>>> would
>>> be CONFIG_HAS_ITS. If you do "make menuconfig" and enable "Configure
>>> standard Xen features (expert users)" you should get a new option "GICv3
>>> ITS MSI controller support" under "Architecture Features".
>>> Make sure to enable it.
>>>
>>> Let me know if that works!
> <devicetree.dts>
Regards,
Rahul
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |