|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: dom0 PVH: 'entry->arch.pirq != INVALID_PIRQ' failed at vmsi.c:843
On Thu, Nov 12, 2020 at 04:57:15PM +0100, Manuel Bouyer wrote:
> Hello,
> I'm trying to add dom0 PVH support to NetBSD. I'm tesing with Xen 4.13
> on a brand new Intel x86 server (Dell R440).
I would recommend using 4.14, PVH dom0 is still very much in
progress, and while I don't recall any specific fix going in 4.14 that
could be related to this there have been changes.
> While the dom0 kernel configures hardware, Xen panics with:
> (XEN) Xen call trace:
> (XEN) [<ffff82d08031cc28>] R vpci_msix_arch_mask_entry+0x18/0x20
> (XEN) [<ffff82d08025a38a>] S drivers/vpci/msix.c#msix_write+0x18a/0x2b0
> (XEN) [<ffff82d08030d943>] S
> arch/x86/hvm/intercept.c#hvm_mmio_write+0x23/0x3
> 0
> (XEN) [<ffff82d08030dd19>] S hvm_process_io_intercept+0x1e9/0x260
> (XEN) [<ffff82d08030ddad>] S hvm_io_intercept+0x1d/0x40
> (XEN) [<ffff82d0802fe7ba>] S
> arch/x86/hvm/emulate.c#hvmemul_do_io+0x26a/0x4d0
> (XEN) [<ffff82d080259ef9>] S drivers/vpci/msix.c#msix_accept+0x9/0x20
> (XEN) [<ffff82d0802fea56>] S
> arch/x86/hvm/emulate.c#hvmemul_do_io_buffer+0x36
> /0x70
> (XEN) [<ffff82d0802ff005>] S
> arch/x86/hvm/emulate.c#hvmemul_linear_mmio_access+0x1e5/0x300
> (XEN) [<ffff82d0802fff44>] S arch/x86/hvm/emulate.c#linear_write+0x84/0x160
> (XEN) [<ffff82d080301ca8>] S
> arch/x86/hvm/emulate.c#hvmemul_write+0xe8/0x100
> (XEN) [<ffff82d0802de6cc>] S x86_emulate+0x289dc/0x2cfb0
> (XEN) [<ffff82d08027c7ab>] S map_domain_page+0x4b/0x600
> (XEN) [<ffff82d080340eaa>] S __get_gfn_type_access+0x6a/0x100
> (XEN) [<ffff82d08034a367>] S
> arch/x86/mm/p2m-ept.c#ept_next_level+0x107/0x150
> (XEN) [<ffff82d0802e4961>] S x86_emulate_wrapper+0x21/0x60
> (XEN) [<ffff82d08030024f>] S
> arch/x86/hvm/emulate.c#_hvm_emulate_one+0x4f/0x220
> (XEN) [<ffff82d0803004ed>] S hvmemul_get_seg_reg+0x4d/0x50
> (XEN) [<ffff82d08030042e>] S hvm_emulate_one+0xe/0x10
> (XEN) [<ffff82d08030e4ca>] S hvm_emulate_one_insn+0x3a/0xf0
> (XEN) [<ffff82d0802e4af0>] S x86_insn_is_mem_access+0/0x260
> (XEN) [<ffff82d08030e5c9>] S handle_mmio_with_translation+0x49/0x60
> (XEN) [<ffff82d080305d78>] S hvm_hap_nested_page_fault+0x2c8/0x720
> (XEN) [<ffff82d0802fea56>] S arch/x86/hvm/emulate.c#hv(XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 13:
> (XEN) Assertion 'entry->arch.pirq != INVALID_PIRQ' failed at vmsi.c:843
> (XEN) ****************************************
>
> This is when it configures the broadcom network interface, which interrupts
> at "msix3 vec 0". It is the first MSI-X device configured; the previous
> ones are MSI only.
>
> Is it a bug on the Xen side, or something missing on the NetBSD side ?
Looks like a bug on the Xen side, do you see any relevant messages
before hitting the assert?
Can you give a try to the following debug patch and paste what you
get?
Thanks, Roger.
---8<---
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 64dd0a929c..7ff76b7f59 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -371,7 +371,12 @@ static int msix_write(struct vcpu *v, unsigned long addr,
unsigned int len,
entry->updated = false;
}
else
+ {
+ printk("%pp offset %u len %u new_masked %d enabled %d masked %d
updated %d\n",
+ &pdev->sbdf, offset, len, new_masked, msix->enabled,
msix->masked,
+ entry->updated);
vpci_msix_arch_mask_entry(entry, pdev, entry->masked);
+ }
break;
}
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |