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

Re: [Xen-devel] Xen-unstable PVHdom0: Assertion 'IS_ALIGNED(dfn_x(dfn), (1ul << page_order))' failed at iommu.c:324



On 22/01/2019 17:14, Roger Pau Monné wrote:
> On Sun, Jan 20, 2019 at 11:09:25PM +0100, Sander Eikelenboom wrote:
>> On 18/01/2019 18:56, Roger Pau Monné wrote:
>>> On Fri, Jan 18, 2019 at 03:17:57PM +0100, Sander Eikelenboom wrote:
>>>> On 18/01/2019 13:50, Roger Pau Monné wrote:
>>>>> On Fri, Jan 18, 2019 at 01:03:04PM +0100, Sander Eikelenboom wrote:
>>>>>> Hi Roger,
>>>>>>
>>>>>> I gave PVH dom0 a spin, see how far I would get.
>>>>>
>>>>> Thanks!
>>>>>
>>>>>> With current xen-unstable unfortunately not that far, i got the splat 
>>>>>> below.
>>>>>
>>>>> Yes, this was already reported:
>>>>>
>>>>> https://lists.xenproject.org/archives/html/xen-devel/2019-01/msg01030.html
>>>>>> If you need more info, would like me to test a patch (or some other git 
>>>>>> tree/branch), 
>>>>>> I will be happy to give it a spin !
>>>>>
>>>>> Paul is working on a fix, but in the meantime just removing the
>>>>> assertions should be fine:
>>>>>
>>>>> ---8<---
>>>>> diff --git a/xen/drivers/passthrough/iommu.c 
>>>>> b/xen/drivers/passthrough/iommu.c
>>>>> index bd1af35a13..98e6fc35e2 100644
>>>>> --- a/xen/drivers/passthrough/iommu.c
>>>>> +++ b/xen/drivers/passthrough/iommu.c
>>>>> @@ -321,9 +321,6 @@ int iommu_map(struct domain *d, dfn_t dfn, mfn_t mfn,
>>>>>      if ( !iommu_enabled || !hd->platform_ops )
>>>>>          return 0;
>>>>>  
>>>>> -    ASSERT(IS_ALIGNED(dfn_x(dfn), (1ul << page_order)));
>>>>> -    ASSERT(IS_ALIGNED(mfn_x(mfn), (1ul << page_order)));
>>>>> -
>>>>>      for ( i = 0; i < (1ul << page_order); i++ )
>>>>>      {
>>>>>          rc = hd->platform_ops->map_page(d, dfn_add(dfn, i), mfn_add(mfn, 
>>>>> i),
>>>>>
>>>>
>>>> I gave that a spin and i now get a seemingly endless stream of 
>>>> IO_PAGE_FAULTs
>>>
>>> You shouldn't get those page faults since they are for addresses that
>>> belong to a reserved region, and that should be mapped into the p2m.
>>> I've just tested on my AMD box and I'm also seeing errors (albeit
>>> different ones), so I guess something broke since I last fixed PVH
>>> Dom0 to boot on AMD hardware.
>>>
>>> I've also tested commit:
>>>
>>> commit fad6ba64a8c98bebb9374f390cc255fac05237ab (HEAD)
>>> Author: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>> Date:   Fri Nov 30 12:10:00 2018 +0100
>>> amd/iommu: skip host bridge devices when updating IOMMU page tables
>>>
>>> And it works on my AMD box and I'm able to boot as a PVH Dom0. Can you
>>> give this commit a spin?
>>>
>>> Thanks, Roger.
>>>
>>
>> Hi Roger,
>>
>> Tested that commit, but that didn't help.
> 
> Thanks! Sorry for the delay, I got sidetracked with something else.

No problem, it's not too urgent and probably a busy time with the remaining 
4.12 stuff.
 
> Can you please post the serial log when using the above commit?

Sure, I attached a log of:
 - fad6ba64a8c98bebb9374f390cc255fac05237ab  dom0 PVH unsuccesful boot
 - fad6ba64a8c98bebb9374f390cc255fac05237ab  dom0 PV    succesful boot


>> I added some debug logging (to xen-unstable + Paul's patch) and found out 
>> the devices that are giving
>> the IO_PAGE_FAULTs are the onboard USB controllers (0x90 0x92 0x98 0xa5).
>>
>> If I skip calling "amd_iommu_setup_domain_device" for these devices I can at 
>> least get it to boot a linux kernel 
>> (which than gives problems with the SATA controller, but that would be a 
>> next step). The patch I used is below.
>>
>> I attached the output from lspci -vvvknn, perhaps you can spot something odd 
>> ?
>> When booting dom0 as PV instead of PVH everything boots and works fine.
> 
> There's definitely something wrong in Xen, so workarounds won't get
> you very far. This needs to be properly fixed in the hypervisor.

I thought it perhaps could help by seeing if there was any pattern in the 
devices for
which i get the IO_PAGE_FAULTs (since the commit you referred to is 
specifically about
host bridges).

--
Sander

> Thanks, Roger.
> 

Attachment: boot-dom0-pv.log
Description: Text Data

Attachment: boot-dom0-pvh.log
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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