Revision: 16144
          http://sourceforge.net/p/edk2/code/16144
Author:   oliviermartin
Date:     2014-09-18 21:16:47 +0000 (Thu, 18 Sep 2014)
Log Message:
-----------
ArmPkg/TimerDxe: add workaround for KVM timer interrupt handling

KVM on ARM currently masks the timer interrupt on the timer side when
delivering an interrupt to the guest. This itself is a workaround for an
issue where the interrupt is reraised and trapped by the host as soon as
the guest is entered, resulting in the guest being starved.

Work around this by calling ArmGenericTimerEnable () after servicing each
interrupt. The virtual version of ArmGenericTimerCounterLib will then
make sure to unmask the interrupt again.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <[email protected]>
Reviewed-By: Olivier Martin <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ArmPkg/Drivers/TimerDxe/TimerDxe.c

Modified: trunk/edk2/ArmPkg/Drivers/TimerDxe/TimerDxe.c
===================================================================
--- trunk/edk2/ArmPkg/Drivers/TimerDxe/TimerDxe.c       2014-09-18 21:15:29 UTC 
(rev 16143)
+++ trunk/edk2/ArmPkg/Drivers/TimerDxe/TimerDxe.c       2014-09-18 21:16:47 UTC 
(rev 16144)
@@ -337,6 +337,7 @@
 
     // Set next compare value
     ArmGenericTimerSetCompareVal (CompareValue);
+    ArmGenericTimerEnableTimer ();
   }
 
   // Enable timer interrupts


------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to