2014-08-21 03:11:22 |
Craig Magina |
bug |
|
|
added bug |
2014-08-21 03:30:09 |
Brad Figg |
linux (Ubuntu): status |
New |
Incomplete |
|
2014-08-21 17:11:57 |
Joseph Salisbury |
linux (Ubuntu): importance |
Undecided |
Medium |
|
2014-08-21 17:12:32 |
Joseph Salisbury |
tags |
|
kernel-da-key |
|
2014-08-27 19:31:38 |
Craig Magina |
linux (Ubuntu): status |
Incomplete |
Confirmed |
|
2014-08-27 20:50:10 |
Craig Magina |
attachment added |
|
0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1359514/+attachment/4188555/+files/0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch |
|
2014-08-27 21:01:20 |
Joseph Salisbury |
linux (Ubuntu): status |
Confirmed |
Triaged |
|
2014-08-27 21:01:38 |
Joseph Salisbury |
tags |
kernel-da-key |
kernel-da-key patch |
|
2014-08-27 21:24:35 |
Craig Magina |
attachment removed |
0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1359514/+attachment/4188555/+files/0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch |
|
|
2014-08-27 21:24:49 |
Craig Magina |
attachment added |
|
0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1359514/+attachment/4188597/+files/0001-UBUNTU-SAUCE-no-up-pci-xgene-msi-fixed-deadlock-in-i.patch |
|
2014-08-27 21:25:56 |
Craig Magina |
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. |
[IMPACT]
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.
[TEST CASE]
Turn off irqbalance
Run a single tcp stream
Randomly change the affinity of the receiving ring:
@ ethtool -S $INTF | grep rx[0-9].*_pac @ - to detect the rx ring
@ grep $INTF /proc/interrupts@ - to find it's interrupt
@ printf "%x" $(( 2 ** $((RANDOM % 8)) )) > /proc/irq/$IRQ/smp_affinity @ - to change the affinity
[Regression Potential]
Fix specific to the xgene pci msi code. |
|
2014-08-28 00:21:55 |
Ubuntu Foundations Team Bug Bot |
bug |
|
|
added subscriber Joseph Salisbury |
2014-08-28 16:51:04 |
Tim Gardner |
nominated for series |
|
Ubuntu Trusty |
|
2014-08-28 16:51:04 |
Tim Gardner |
bug task added |
|
linux (Ubuntu Trusty) |
|
2014-08-28 16:51:04 |
Tim Gardner |
nominated for series |
|
Ubuntu Utopic |
|
2014-08-28 16:51:04 |
Tim Gardner |
bug task added |
|
linux (Ubuntu Utopic) |
|
2014-08-28 16:51:51 |
Tim Gardner |
linux (Ubuntu Trusty): status |
New |
Fix Committed |
|
2014-08-28 16:51:51 |
Tim Gardner |
linux (Ubuntu Trusty): assignee |
|
Craig Magina (craig.magina) |
|
2014-08-28 16:52:25 |
Tim Gardner |
linux (Ubuntu Utopic): status |
Triaged |
In Progress |
|
2014-08-28 16:52:25 |
Tim Gardner |
linux (Ubuntu Utopic): milestone |
|
ubuntu-14.10 |
|
2014-08-28 16:52:25 |
Tim Gardner |
linux (Ubuntu Utopic): assignee |
|
Craig Magina (craig.magina) |
|
2014-09-04 18:32:53 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/trusty-proposed/linux-keystone |
|
2014-09-05 15:09:26 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/precise-proposed/linux-lts-trusty |
|
2014-09-08 20:31:58 |
Brad Figg |
tags |
kernel-da-key patch |
kernel-da-key patch verification-needed-trusty |
|
2014-09-16 05:44:39 |
Nobuto Murata |
bug |
|
|
added subscriber Nobuto MURATA |
2014-09-16 14:51:10 |
Craig Magina |
tags |
kernel-da-key patch verification-needed-trusty |
kernel-da-key patch verification-done-trusty |
|
2014-09-22 22:45:50 |
Launchpad Janitor |
linux (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2014-09-22 22:45:50 |
Launchpad Janitor |
cve linked |
|
2014-3601 |
|
2014-09-22 22:45:50 |
Launchpad Janitor |
cve linked |
|
2014-5077 |
|
2014-09-22 22:45:50 |
Launchpad Janitor |
cve linked |
|
2014-5472 |
|
2014-09-22 23:43:49 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/precise-security/linux-lts-trusty |
|
2014-10-07 17:40:46 |
Launchpad Janitor |
linux (Ubuntu Utopic): status |
In Progress |
Fix Released |
|