[Kernel-packages] [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.gard...@canonical.com 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
This bug was fixed in the package linux - 3.13.0-36.63 --- linux (3.13.0-36.63) trusty; urgency=low [ Joseph Salisbury ] * Release Tracking Bug - LP: #1365052 [ Feng Kan ] * SAUCE: (no-up) irqchip:gic: change access of gicc_ctrl register to read modify write. - LP: #1357527 * SAUCE: (no-up) arm64: optimized copy_to_user and copy_from_user assembly code - LP: #1358949 [ Ming Lei ] * SAUCE: (no-up) Drop APM X-Gene SoC Ethernet driver - LP: #1360140 * [Config] Drop XGENE entries - LP: #1360140 * [Config] CONFIG_NET_XGENE=m for arm64 - LP: #1360140 [ Stefan Bader ] * SAUCE: Add compat macro for skb_get_hash - LP: #1358162 * SAUCE: bcache: prevent crash on changing writeback_running - LP: #1357295 [ Suman Tripathi ] * SAUCE: (no-up) arm64: Fix the csr-mask for APM X-Gene SoC AHCI SATA PHY clock DTS node. - LP: #1359489 * SAUCE: (no-up) ahci_xgene: Skip the PHY and clock initialization if already configured by the firmware. - LP: #1359501 * SAUCE: (no-up) ahci_xgene: Fix the link down in first attempt for the APM X-Gene SoC AHCI SATA host controller driver. - LP: #1359507 [ Tuan Phan ] * SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity - LP: #1359514 [ Upstream Kernel Changes ] * iwlwifi: mvm: Add a missed beacons threshold - LP: #1349572 * mac80211: reset probe_send_count also in HW_CONNECTION_MONITOR case - LP: #1349572 * genirq: Add an accessor for IRQ_PER_CPU flag - LP: #1357527 * arm64: perf: add support for percpu pmu interrupt - LP: #1357527 * cifs: sanity check length of data to send before sending - LP: #1283101 * KVM: nVMX: Pass vmexit parameters to nested_vmx_vmexit - LP: #1329434 * KVM: nVMX: Rework interception of IRQs and NMIs - LP: #1329434 * KVM: vmx: disable APIC virtualization in nested guests - LP: #1329434 * HID: Add transport-driver functions to the USB HID interface. - LP: #1353021 * ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host Controller driver. - LP: #1358498 * fold d_kill() and d_free() - LP: #1354234 * fold try_prune_one_dentry() - LP: #1354234 * new helper: dentry_free() - LP: #1354234 * expand the call of dentry_lru_del() in dentry_kill() - LP: #1354234 * dentry_kill(): don't try to remove from shrink list - LP: #1354234 * don't remove from shrink list in select_collect() - LP: #1354234 * more graceful recovery in umount_collect() - LP: #1354234 * dcache: don't need rcu in shrink_dentry_list() - LP: #1354234 * lift the already marked killed case into shrink_dentry_list() * split dentry_kill() - LP: #1354234 * expand dentry_kill(dentry, 0) in shrink_dentry_list() - LP: #1354234 * shrink_dentry_list(): take parent's -d_lock earlier - LP: #1354234 * dealing with the rest of shrink_dentry_list() livelock - LP: #1354234 * dentry_kill() doesn't need the second argument now - LP: #1354234 * dcache: add missing lockdep annotation - LP: #1354234 * fs: convert use of typedef ctl_table to struct ctl_table - LP: #1354234 * lock_parent: don't step on stale -d_parent of all-but-freed one - LP: #1354234 * tools/testing/selftests/ptrace/peeksiginfo.c: add PAGE_SIZE definition - LP: #1358855 * x86, irq, pic: Probe for legacy PIC and set legacy_pic appropriately - LP: #1317697 * bnx2x: Fix kernel crash and data miscompare after EEH recovery - LP: #1353105 * bnx2x: Adapter not recovery from EEH error injection - LP: #1353105 * Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE - LP: #1359670 * bcache: fix crash on shutdown in passthrough mode - LP: #1357295 * bcache: fix uninterruptible sleep in writeback thread - LP: #1357295 * namespaces: Use task_lock and not rcu to protect nsproxy - LP: #1328088 * MAINTAINERS: Add entry for APM X-Gene SoC ethernet driver - LP: #1360140 * Documentation: dts: Add bindings for APM X-Gene SoC ethernet driver - LP: #1360140 * dts: Add bindings for APM X-Gene SoC ethernet driver - LP: #1360140 * drivers: net: Add APM X-Gene SoC ethernet driver support. - LP: #1360140 * powerpc/mm: Add new set flag argument to pte/pmd update function - LP: #1357014 * powerpc/thp: Add write barrier after updating the valid bit - LP: #1357014 * powerpc/thp: Don't recompute vsid and ssize in loop on invalidate - LP: #1357014 * powerpc/thp: Invalidate old 64K based hash page mapping before insert of 4k pte - LP: #1357014 * powerpc/thp: Handle combo pages in invalidate - LP: #1357014 * powerpc/thp: Invalidate with vpn in loop - LP: #1357014 * powerpc/thp: Use ACCESS_ONCE when loading pmdp - LP: #1357014 * powerpc/mm: Use read barrier when creating real_pte - LP: #1357014 * powerpc/thp: Add tracepoints to track hugepage
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Branch linked: lp:ubuntu/precise-security/linux-lts-trusty -- 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: In Progress Status in “linux” source package in Trusty: Fix Released Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Tags removed: verification-needed-trusty ** Tags added: verification-done-trusty -- 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: In Progress Status in “linux” source package in Trusty: Fix Committed Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed- trusty' to 'verification-done-trusty'. If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you! ** Tags added: verification-needed-trusty -- 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: In Progress Status in “linux” source package in Trusty: Fix Committed Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Branch linked: lp:ubuntu/precise-proposed/linux-lts-trusty -- 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: In Progress Status in “linux” source package in Trusty: Fix Committed Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Branch linked: lp:ubuntu/trusty-proposed/linux-keystone -- 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: In Progress Status in “linux” source package in Trusty: Fix Committed Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Also affects: linux (Ubuntu Trusty) Importance: Undecided Status: New ** Also affects: linux (Ubuntu Utopic) Importance: Medium Status: Triaged ** Changed in: linux (Ubuntu Trusty) Status: New = Fix Committed ** Changed in: linux (Ubuntu Trusty) Assignee: (unassigned) = Craig Magina (craig.magina) ** Changed in: linux (Ubuntu Utopic) Status: Triaged = In Progress ** Changed in: linux (Ubuntu Utopic) Milestone: None = ubuntu-14.10 ** Changed in: linux (Ubuntu Utopic) Assignee: (unassigned) = Craig Magina (craig.magina) -- 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: In Progress Status in “linux” source package in Trusty: Fix Committed Status in “linux” source package in Utopic: In Progress 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Changed in: linux (Ubuntu) Status: Incomplete = Confirmed -- 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: Confirmed 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Patch 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 -- 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: Confirmed 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
[IMPACT] 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. 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. -- 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: Confirmed 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Changed in: linux (Ubuntu) Status: Confirmed = Triaged ** Tags added: patch -- 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: Triaged 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Patch 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 ** Patch 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 ** Description changed: + [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. + + + 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. -- 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: Triaged 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp
[Kernel-packages] [Bug 1359514] Re: pci-xgene-msi: fixed deadlock in irq_set_affinity
** Changed in: linux (Ubuntu) Importance: Undecided = Medium ** Tags added: kernel-da-key -- 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: Incomplete 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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp