[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: PVH Dom0 related UART failure
On 24.05.2023 03:13, Stefano Stabellini wrote: > On Tue, 23 May 2023, Jan Beulich wrote: >> On 23.05.2023 00:20, Stefano Stabellini wrote: >>> On Sat, 20 May 2023, Roger Pau Monné wrote: >>>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c >>>> index ec2e978a4e6b..0ff8e940fa8d 100644 >>>> --- a/xen/drivers/vpci/header.c >>>> +++ b/xen/drivers/vpci/header.c >>>> @@ -289,6 +289,13 @@ static int modify_bars(const struct pci_dev *pdev, >>>> uint16_t cmd, bool rom_only) >>>> */ >>>> for_each_pdev ( pdev->domain, tmp ) >>>> { >>>> + if ( !tmp->vpci ) >>>> + { >>>> + printk(XENLOG_G_WARNING "%pp: not handled by vPCI for %pd\n", >>>> + &tmp->sbdf, pdev->domain); >>>> + continue; >>>> + } >>>> + >>>> if ( tmp == pdev ) >>>> { >>>> /* >>>> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c >>>> index 652807a4a454..0baef3a8d3a1 100644 >>>> --- a/xen/drivers/vpci/vpci.c >>>> +++ b/xen/drivers/vpci/vpci.c >>>> @@ -72,7 +72,12 @@ int vpci_add_handlers(struct pci_dev *pdev) >>>> unsigned int i; >>>> int rc = 0; >>>> >>>> - if ( !has_vpci(pdev->domain) ) >>>> + if ( !has_vpci(pdev->domain) || >>>> + /* >>>> + * Ignore RO and hidden devices, those are in use by Xen and vPCI >>>> + * won't work on them. >>>> + */ >>>> + pci_get_pdev(dom_xen, pdev->sbdf) ) >>>> return 0; >>>> >>>> /* We should not get here twice for the same device. */ >>> >>> >>> Now this patch works! Thank you!! :-) >>> >>> You can check the full logs here >>> https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/4329259080 >>> >>> Is the patch ready to be upstreamed aside from the commit message? >> >> I don't think so. vPCI ought to work on "r/o" devices. Out of curiosity, >> have you also tried my (hackish and hence RFC) patch [1]? >> >> [1] https://lists.xen.org/archives/html/xen-devel/2021-08/msg01489.html > > I don't know the code well enough to discuss what is the best solution. > I'll let you and Roger figure it out. I would only kindly request to > solve this in few days so that we can enable the real hardware PVH test > in gitlab-ci as soon as possible. I think it is critical as it will > allow us to catch many real issues going forward. > > For sure I can test your patch. BTW it is also really easy for you to do > it your simply by pushing a branch to a repo on gitlab-ci and watch for > the results. If you are interested let me know I can give you a > tutorial, you just need to create a repo, and register the gitlab runner > and voila'. > > This is the outcome: > > https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/876808194 > > > (XEN) PCI add device 0000:00:00.0 > (XEN) PCI add device 0000:00:00.2 > (XEN) PCI add device 0000:00:01.0 > (XEN) PCI add device 0000:00:02.0 > (XEN) Assertion 'd == dom_xen && system_state < SYS_STATE_active' failed at > drivers/vpci/header.c:313 I've sent an updated RFC patch, integrating a variant of Roger's patch at the same time. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |