[edk2-devel] [PATCH v2] ArmPkg/TimerDxe: Delay End Of Interrupt Signal

Ashish Singhal via groups.io ashishsingha=nvidia.com at groups.io
Tue Oct 12 17:07:24 UTC 2021




From: Ashish Singhal <ashishsingha at nvidia.com>
Sent: Tuesday, October 12, 2021 10:32 AM
To: Marc Zyngier <maz at kernel.org>
Cc: Shanker Donthineni <sdonthineni at nvidia.com>; Ard Biesheuvel <ardb at kernel.org>; edk2-devel-groups-io <devel at edk2.groups.io>; Leif Lindholm <leif at nuviainc.com>; Ard Biesheuvel <ardb+tianocore at kernel.org>
Subject: Re: [PATCH v2] ArmPkg/TimerDxe: Delay End Of Interrupt Signal 
 



From: Marc Zyngier <maz at kernel.org>
Sent: Tuesday, October 12, 2021 10:27 AM
To: Ashish Singhal <ashishsingha at nvidia.com>
Cc: Shanker Donthineni <sdonthineni at nvidia.com>; Ard Biesheuvel <ardb at kernel.org>; edk2-devel-groups-io <devel at edk2.groups.io>; Leif Lindholm <leif at nuviainc.com>; Ard Biesheuvel <ardb+tianocore at kernel.org>
Subject: Re: [PATCH v2] ArmPkg/TimerDxe: Delay End Of Interrupt Signal 
 
External email: Use caution opening links or attachments


On Tue, 12 Oct 2021 17:11:36 +0100,
Ashish Singhal <ashishsingha at nvidia.com> wrote:
>
> Marc,
>
> What do you suggest should be the proper fix for getting timer
> interrupts even when ISTATUS bit is not set? Should we ignore them
> the way it is in current implementation? I am OK to file a bug for
> this if you think that is a better way to discuss this.

I don't think there is anything to fix.

Yes, the order in EDKII is odd. No, changing the order doesn't give
any extra guarantee. Spurious interrupts can always happen. Broken (or
slow) HW and bad emulation are more susceptible to it.

Now, how often do you see that? On which HW?

        M.

--
Without deviation from the norm, progress is not possible.

Marc,

We see at least one spurious interrupt after every valid timer interrupt. While both valid and spurious interrupt has the correct source, spurious interrupt does not have ISTATUS bit set. We are seeing this on Silicon and not on the emulation platform. Delaying EOI signal to GIC does take the spurious interrupt out as with the new flow we clear the interrupt before signaling EOI so that next time only a valid interrupt can be triggered and not the old interrupt which was still not cleared while signaling EOI to GIC.

Thanks
Ashish

Thanks
Ashish

Marc,

I can confirm that with the current code on edk2, we get 1 spurious interrupt for every 1 valid interrupt from GIC. With the change I proposed, we do not get the spurious interrupt at all.

Thanks
Ashish

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81838): https://edk2.groups.io/g/devel/message/81838
Mute This Topic: https://groups.io/mt/86248479/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list