qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Xen-devel] [RFC] e1000: Don't save writes to ICS/ICR m


From: Denis V. Lunev
Subject: Re: [Qemu-devel] [Xen-devel] [RFC] e1000: Don't save writes to ICS/ICR masked by IMS
Date: Thu, 15 Sep 2016 12:15:51 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 09/13/2016 11:59 PM, Konrad Rzeszutek Wilk wrote:
> On Thu, Sep 01, 2016 at 10:57:48AM -0700, Ed Swierk wrote:
>> Windows 8, 10 and Server 2012 guests hang intermittently while booting
>> on Xen 4.5.3 with 1 vCPU and 4 e1000 vNICs, shortly after the Windows
>> logo appears and the little dots start spinning.
>>
>> Running strace on qemu shows its main thread doing the following every
>> couple of milliseconds:
>>
>>  ppoll([..., {fd=30</dev/xen/evtchn>, events=POLLIN|POLLERR|POLLHUP},
>>         ...], ...) = 1 ([{fd=30, revents=POLLIN}], ...)
>>  read(30</dev/xen/evtchn>, "^\0\0\0", 4) = 4
>>  write(30</dev/xen/evtchn>, "^\0\0\0", 4) = 4
>>  ioctl(30</dev/xen/evtchn>, IOCTL_EVTCHN_NOTIFY, 0x7f1f9449d310) = 0
>>  clock_gettime(CLOCK_MONOTONIC, {6937, 449468262}) = 0
>>  clock_gettime(CLOCK_MONOTONIC, {6937, 449582903}) = 0
>>  gettimeofday({1472251376, 673434}, NULL) = 0
>>  clock_gettime(CLOCK_MONOTONIC, {6937, 449856205}) = 0
>>  gettimeofday({1472251376, 673679}, NULL) = 0
>>
>> The event channel (identified by '^' or 94 in this example) is always
>> the third of the domain's four channels.
>>
>> Two recent qemu patches (http://git.qemu.org/?p=qemu.git;h=9596ef7c and
>> http://git.qemu.org/?p=qemu.git;h=74004e8c) seem to address similar
>> issues, but don't help in this case.
>>
>> The proposed fix from
>> https://bugzilla.redhat.com/show_bug.cgi?id=874406#c78 makes the hang
>> go away. It's not clear to me why it works, or if it's just papering
>> over a bug elsewhere, or if there are any possible side effects.
> CC-ing Denis.
>
>
> Is the fix below based on reading the spec or more of instrumenting?
>
> Thanks.

hmm. I have looked in our older code (completely separate
from QEMU). It does not have this trick.

2012r2 (as far as I remember) has a bug in the driver
when LSC interrupt was raised unexpectedly during driver
initialization. The original bug was about TXQE. Can you
pls confirm which interrupt causes the storm?

Den




reply via email to

[Prev in Thread] Current Thread [Next in Thread]