Skip to content
Snippets Groups Projects
  1. May 09, 2022
  2. May 08, 2022
  3. May 07, 2022
  4. May 06, 2022
  5. May 05, 2022
    • Frederic Barrat's avatar
      ppc/xive: Update the state of the External interrupt signal · f6577211
      Frederic Barrat authored
      
      When pulling or pushing an OS context from/to a CPU, we should
      re-evaluate the state of the External interrupt signal. Otherwise, we
      can end up catching the External interrupt exception in hypervisor
      mode, which is unexpected.
      
      The problem is best illustrated with the following scenario:
      
      1. an External interrupt is raised while the guest is on the CPU.
      
      2. before the guest can ack the External interrupt, an hypervisor
      interrupt is raised, for example the Hypervisor Decrementer or
      Hypervisor Virtualization interrupt. The hypervisor interrupt forces
      the guest to exit while the External interrupt is still pending.
      
      3. the hypervisor handles the hypervisor interrupt. At this point, the
      External interrupt is still pending. So it's very likely to be
      delivered while the hypervisor is running. That's unexpected and can
      result in an infinite loop where the hypervisor catches the External
      interrupt, looks for an interrupt in its hypervisor queue, doesn't
      find any, exits the interrupt handler with the External interrupt
      still raised, repeat...
      
      The fix is simply to always lower the External interrupt signal when
      pulling an OS context. It means it needs to be raised again when
      re-pushing the OS context. Fortunately, it's already the case, as we
      now always call xive_tctx_ipb_update(), which will raise the signal if
      needed.
      
      Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
      Signed-off-by: default avatarFrederic Barrat <fbarrat@linux.ibm.com>
      Message-Id: <20220429071620.177142-3-fbarrat@linux.ibm.com>
      Signed-off-by: default avatarDaniel Henrique Barboza <danielhb413@gmail.com>
      f6577211
  6. May 04, 2022
  7. May 03, 2022
  8. May 02, 2022
  9. Apr 29, 2022
  10. Apr 28, 2022
Loading