[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 2/7] xen/arm: add pci-domain for disabled devices
Hi, Julien! On 17.11.21 23:33, Julien Grall wrote: > Hi Oleksandr, > > On 17/11/2021 06:56, Oleksandr Andrushchenko wrote: >> Hi, Julien! >> >> On 16.11.21 20:48, Julien Grall wrote: >>> Hi Oleksander, >>> >>> On 05/11/2021 06:33, Oleksandr Andrushchenko wrote: >>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> >>>> >>>> If a PCI host bridge device is present in the device tree, but is >>>> disabled, then its PCI host bridge driver was not instantiated. >>>> This results in the failure of the pci_get_host_bridge_segment() >>>> and the following panic during Xen start: >>>> >>>> (XEN) Device tree generation failed (-22). >>>> (XEN) >>>> (XEN) **************************************** >>>> (XEN) Panic on CPU 0: >>>> (XEN) Could not set up DOM0 guest OS >>>> (XEN) **************************************** >>>> >>>> Fix this by adding "linux,pci-domain" property for all device tree nodes >>>> which have "pci" device type, so we know which segments will be used by >>>> the guest for which bridges. >>>> >>>> Fixes: 4cfab4425d39 ("xen/arm: Add linux,pci-domain property for hwdom if >>>> not available.") >>>> >>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> >>>> >>>> --- >>>> New in v6 >>>> --- >>>> xen/arch/arm/domain_build.c | 15 ++++++++++++++- >>>> xen/arch/arm/pci/pci-host-common.c | 2 +- >>>> xen/include/asm-arm/pci.h | 8 ++++++++ >>>> 3 files changed, 23 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c >>>> index 491f5e2c316e..f7fcb1400c19 100644 >>>> --- a/xen/arch/arm/domain_build.c >>>> +++ b/xen/arch/arm/domain_build.c >>>> @@ -753,9 +753,22 @@ static int __init write_properties(struct domain *d, >>>> struct kernel_info *kinfo, >>>> { >>>> uint16_t segment; >>>> + /* >>>> + * The node doesn't have "linux,pci-domain" property and it is >>>> + * possible that: >>>> + * - Xen only has drivers for a part of the host bridges >>>> + * - some host bridges are disabled >>>> + * Make sure we insert the correct "linux,pci-domain" property >>>> + * in any case, so we know which segments will be used >>>> + * by Linux for which bridges. >>> >>> The check above will check the node type is "pci". AFAICT, this would also >>> cover PCI devices. I am not aware of any issue to add "linux,pci-domain" >>> for them. However, this feels a bit odd. >>> >>> From my understanding, a PCI device would always be described as a child >>> of the hostbridges. So I would rework the 'if' to also check if the parent >>> type is not "pci". >>> >> We may have "bridge -> bridge -> device" topology as well. > > Do you have an example of Device-Tree? No, I don't have at hand, but I can imagine this can relatively easy be done with QEMU Even if not, do you assume this topology can never happen? > >> So, I prefer to have the check as it is. > > I don't really like the idea to spuriously add "linux,pci-domain" to PCI DT > node. But if there are no other solution, then this should at least be > mentionned in the commit message and code. I am fine with any solution here, I just want that to be defined and implemented. Please let me know the final decision on this and how we proceed > > [...] > >> Yes, this sounds reasonable, I will add this change and print an error >> message so it is >> easier to understand what Xen doesn't like (it took me a while to debug and >> understand >> why I have "(XEN) Device tree generation failed (-22).") > > > Sounds good to me. The current error is indeed confusing. > > Cheers, > Thank you, Oleksandr
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |