|
[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 |