|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen-unstable: AMD-Vi: update_paging_mode Try to access pdev_list without aquiring pcidevs_lock.
On 31/10/2019 11:15, Jan Beulich wrote:
> On 30.10.2019 23:21, Sander Eikelenboom wrote:
>> Call trace seems to be the same in all cases.
>>
>> --
>> Sander
>>
>>
>> (XEN) [2019-10-30 22:07:05.748] AMD-Vi: update_paging_mode Try to access
>> pdev_list without aquiring pcidevs_lock.
>> (XEN) [2019-10-30 22:07:05.748] ----[ Xen-4.13.0-rc x86_64 debug=y Not
>> tainted ]----
>> (XEN) [2019-10-30 22:07:05.748] CPU: 1
>> (XEN) [2019-10-30 22:07:05.748] RIP: e008:[<ffff82d080265748>]
>> iommu_map.c#update_paging_mode+0x1f2/0x3eb
>> (XEN) [2019-10-30 22:07:05.748] RFLAGS: 0000000000010286 CONTEXT:
>> hypervisor (d0v2)
>
> I didn't pay attention to this when writing my earlier reply: The
> likely culprit looks to be f89f555827 ("remove late (on-demand)
> construction of IOMMU page tables"). Prior to this I assume IOMMU
> page tables got constructed only after ...
OK, I tested f89f555827 and f89f555827~1, my observations:
with f89f555827~1:
- I'm NOT seeing the aquiring pcidevs_lock message
- the usb3 controller is also working.
with f89f555827:
- I'm now seeing the aquiring pcidevs_lock messages.
- but I'm NOT seeing them *once* per booting guest, but multiple times.
- the usb3 controller is still working.
with staging:
- Seeing the aquiring pcidevs_lock messages, but only *once* per guest
boot.
- the usb3 controller goes haywire in the guest.
So you seem to be right about both things:
- f89f555827 is the culprit for the aquiring pcidevs_lock messages.
Although I get less of them with current staging, so some other later
patch must have had some influence
in reducing the amount.
- The usb3 controller malfunctioning seems indeed to be a separate issue
(which seems unfortunate,
because a bisect seems to become even nastier with all the intertwined
pci-passthrough issues).
Perhaps this one is then related to the only *once* occuring message:
(XEN) [2019-10-31 20:39:30.746] AMD-Vi: INVALID_DEV_REQUEST 00000800
8a000000 f8000840 000000fd
While in the guest it is endlessly repeating:
[ 231.385566] xhci_hcd 0000:00:05.0: Max number of devices this xHCI
host supports is 32.
[ 231.407351] usb usb1-port2: couldn't allocate usb_device
Hopefully this also gives you a hunch as to which commits to look at.
--
Sander
>> (XEN) [2019-10-30 22:07:05.748] Xen call trace:
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d080265748>] R
>> iommu_map.c#update_paging_mode+0x1f2/0x3eb
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d080265ded>] F
>> amd_iommu_map_page+0x72/0x1c2
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d0802583b6>] F
>> iommu_map+0x98/0x17e
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d0802586fb>] F
>> iommu_legacy_map+0x28/0x73
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d08034a4a6>] F
>> p2m-pt.c#p2m_pt_set_entry+0x4d3/0x844
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d080342e13>] F
>> p2m_set_entry+0x91/0x128
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d080343c52>] F
>> guest_physmap_add_entry+0x39f/0x5a3
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d080343f85>] F
>> guest_physmap_add_page+0x12f/0x138
>> (XEN) [2019-10-30 22:07:05.748] [<ffff82d0802201ee>] F
>> memory.c#populate_physmap+0x2e3/0x505
>
> ... Dom0 had populated the new guest's physmap.
>
> Anyway, as odd as it may seem I guess there's little choice
> besides making populate_physmap() (and likely a few others)
> acquire the lock.
>
> Jan
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |