kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #83529
[Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
This bug was fixed in the package linux - 3.16.0-21.28
---------------
linux (3.16.0-21.28) utopic; urgency=low
[ Andy Whitcroft ]
* [Config] linux-image-extra is additive to linux-image
- LP: #1375310
* [Config] linux-image-extra postrm is not needed on purge
[ dann frazier ]
* [Config] run updateconfigs after adding arm64 PCI support
* SAUCE: (no-up) Fix pcie-xgene build failure
[ Ming Lei ]
* SAUCE: (no-up) apm: pcie: fix hang when no card connected
[ Tanmay Inamdar ]
* SAUCE: (no-up) arm64: PCI(e) arch support
* SAUCE: (no-up) pci: APM X-Gene PCIe controller driver
* SAUCE: (no-up) arm64: dts: APM X-Gene PCIe device tree nodes
* SAUCE: (no-up) dt-bindings: pci: xgene pcie device tree bindings
* SAUCE: (no-up) MAINTAINERS: entry for APM X-Gene PCIe host driver
* SAUCE: (no-up) Add MSI/MSI-X driver for APM PCI bus
- LP: #1318977
[ Tim Gardner ]
* rebase to v3.16.4
* Release Tracking Bug
- LP: #1377905
[ Tuan Phan ]
* SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity
- LP: #1359514
[ Upstream Kernel Changes ]
* drm/nouveau: make sure display hardware is reinitialised on runtime
resume
- LP: #1374607
[ Upstream Kernel Changes ]
* rebase to v3.16.4
-- Tim Gardner <tim.gardner@xxxxxxxxxxxxx> Fri, 03 Oct 2014 12:10:48 -0400
** Changed in: linux (Ubuntu Utopic)
Status: In Progress => Fix Released
--
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:
Fix Released
Status in “linux” source package in Trusty:
Fix Released
Status in “linux” source package in Utopic:
Fix Released
Bug description:
[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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1359514/+subscriptions
References