← Back to team overview

kernel-packages team mailing list archive

[Bug 1359514] [NEW] pci-xgene-msi: fixed deadlock in irq_set_affinity

 

Public bug reported:

Issue:  CPU affinity is changed while irqbalance is running.
    
    + Problem explanation:
    
      - Old code
    
        + Call xgene_msi_cascade function (CPU x)
    
        + raw_spin_lock(&desc->lock);  (CPU x)
    
        + Goto generic_handle_irq (CPU x)
    
        + The CPU x doesn't have a chance to exit the xgene_msi_cascade function to unlock desc->lock before Linux scheduce and call xgene_msi_set_affinity (irqbalance is caller) in the same CPU x
    
        + In irq_set_affinity, call raw_spin_lock_irqsave(&desc->lock, flags) which cause deadlock to CPU x because it disables preempt
    
      - New code
    
        + Use chained_irq_enter and exit as the standard way to cascade interrupt functions.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1359514

Title:
  pci-xgene-msi: fixed deadlock in irq_set_affinity

Status in “linux” package in Ubuntu:
  New

Bug description:
  Issue:  CPU affinity is changed while irqbalance is running.
      
      + Problem explanation:
      
        - Old code
      
          + Call xgene_msi_cascade function (CPU x)
      
          + raw_spin_lock(&desc->lock);  (CPU x)
      
          + Goto generic_handle_irq (CPU x)
      
          + The CPU x doesn't have a chance to exit the xgene_msi_cascade function to unlock desc->lock before Linux scheduce and call xgene_msi_set_affinity (irqbalance is caller) in the same CPU x
      
          + In irq_set_affinity, call raw_spin_lock_irqsave(&desc->lock, flags) which cause deadlock to CPU x because it disables preempt
      
        - New code
      
          + Use chained_irq_enter and exit as the standard way to cascade interrupt functions.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1359514/+subscriptions


Follow ups

References