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

Re: [Xen-devel] Xen 4.5 random freeze question



I think I'll debug this a bit later - unfortunately, now don't have
time for this. But I want to get rid of spurious interrupt here.

BTW - Stefano are you going to post the patch that we created
yesterday ? Will Ian accept it?

Regards,
Andrii

On Thu, Nov 20, 2014 at 1:15 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> On 11/20/2014 10:28 AM, Stefano Stabellini wrote:
>> On Wed, 19 Nov 2014, Andrii Tseglytskyi wrote:
>>> 19 ÐÐÑÑ. 2014 20:32, ÐÐÑÐÑÑÑÐÐÑ "Stefano Stabellini" 
>>> <stefano.stabellini@xxxxxxxxxxxxx> ÐÐÐÐÑÐÐ:
>>>>
>>>> On Wed, 19 Nov 2014, Julien Grall wrote:
>>>>> On 11/19/2014 06:14 PM, Stefano Stabellini wrote:
>>>>>> That's right, the maintenance interrupt handler is not called, but it
>>>>>> doesn't do anything so we are fine. The important thing is that an
>>>>>> interrupt is sent and git_clear_lrs gets called on hypervisor entry.
>>>>>
>>>>> It would be worth to write down this somewhere. Just in case someone
>>>>> decide to add code in maintenance interrupt later.
>>>>
>>>> Yes, I could add a comment in the handler
>>>
>>> Maybe it wouldn't take a lot of effort to fix it? I am just worrying that 
>>> we may hide some issue -
>>> typically spurious interrupt this not what is expected.
>>
>> My guess is that by clearing UIE before reading GICC_IAR, we "clear" the
>> maintenance interrupt too, as a consequence the following read to
>> GICC_IAR would return 1023 (nothing to be read). As bit as if the
>> maintenance interrupt was a level interrupt and we just disabled it.
>>
>> So I think that if we cleared UIE after reading GICC_IAR, GICC_IAR would
>> return the correct value.
>>
>> However with the current structure of the code, the first thing that we
>> do upon entering the hypervisor is clearing LRs and given what happened
>> on your platform I think is a good idea to do it with UIE disabled.
>
> Agreed. UIE should be disabled to avoid another maintenance interrupt as
> soon as we EOI the IRQ.
>
>> This is way I would rather read spurious interrupts but read/write LRs
>> with UIE disabled than reading maintenance interrupts but risking
>> strange behaviours on some platforms.
>
> Reading the GIC-v2 documentation, the spurious interrupt things should
> happen on any platform every time the UIE is disabled while we receive a
> maintenance interrupt.
>
> "The read returns a spurious interrupt ID of 1023 if any of the
> following apply:
>
> - no pending interrupt on the CPU interface has sufficient priority for
> the interface to signal it to the processor"
>
> --
> Julien Grall



-- 

Andrii Tseglytskyi | Embedded Dev
GlobalLogic
www.globallogic.com

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

 


Rackspace

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