Den 17. jan. 2016 16:16, skrev Andrew Cooper:
> On 17/01/16 14:50, Håkon Alstadheim wrote:
>> Den 15. jan. 2016 12:05, skrev Andrew Cooper:
>>> On 15/01/16 10:58, Håkon Alstadheim wrote:
>>>> CPUINFO:
>>>> vendor_id    : GenuineIntel
>>>> cpu family    : 6
>>>> model        : 63
>>>> model name    : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
>>>>
>>>> # smbios-sys-info
>>>> Libsmbios version:      2.2.28
>>>> Product Name:           Z10PE-D8 WS
>>>> Vendor:                 ASUSTeK COMPUTER INC.
>>>> BIOS Version:           3101
>>>>
>>>>
>>>> I have been experiencing issues with domains with passed through PCIe
>>>> devices since I first installed xen. Then at version 4.5.x , I'm now
>>>> at 4.6.0 with gentoo patches. Crashes SEEM mostly related to this pci
>>>> pass through and interrupts (usb-cards, sound cards).
>>>>
>>>> Recently the system has been more stable, whether it is because I pass
>>>> through as few things as possible, or because of improvements in Xen I
>>>> do not know. I have also taken to building with debug, which leads to
>>>> more abrupt but less mysterious failures. Earlier (w/o debug and under
>>>> xen 4.5 ) stuff would just gradually stop working and end up in total
>>>> hang of everything. So, hey, things are improving :-b
>>> This isn't the first time we have seen this on Haswell processors. Do
>>> you have microcode loading set up?
>>>
>>> ~Andrew
>>>
>> Still happening with kernel-genkernel-x86_64-4.1.15-gentoo and updated
>> cpu microcode, using microcode from 20151106.
> Ok - I previously investigated this issue, but my repro evaporated from
> under my feet with a firmware update, and I never got to the bottom of it.
>
> Please can you start with the following patch which will dump some more
> information on crash.
>
> ---8<---
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 1228568..588b562 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -1165,6 +1165,13 @@ static void __do_IRQ_guest(int irq)
>      if ( action->ack_type == ACKTYPE_EOI )
>      {
>          sp = pending_eoi_sp(peoi);
> +        if ( unlikely(!((sp == 0) || (peoi[sp-1].vector < vector))) )
> +        {
> +            int p;
> +            for ( p = sp; p > 0; --p )
> +                printk("**peoi[%d] = {%d, 0x%u, %d}\n",
> +                       p-1, peoi[p-1].irq, peoi[p-1].vector,
> peoi[p-1].ready);
> +        }
>          ASSERT((sp == 0) || (peoi[sp-1].vector < vector));
>          ASSERT(sp < (NR_DYNAMIC_VECTORS-1));
>          peoi[sp].irq = irq;
>
>
Will do. Building now.
Seems there is a line accidentally folded "peoi[p-1].ready);" belongs at
the end of preceding line I presume?


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to