Bug 1088569
| Summary: | [F20] backport upstream commit openvswitch: fix a possible deadlock and lockdep warning | |||
|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Flavio Leitner <fleitner> | |
| Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | |
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | 20 | CC: | gansalmon, itamar, jonathan, jwboyer, kernel-maint, madhu.chinakonda, mchehab | |
| Target Milestone: | --- | |||
| Target Release: | --- | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1088570 (view as bug list) | Environment: | ||
| Last Closed: | 2014-04-16 22:24:34 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1080679, 1080680 | |||
Could you propose this upstream for 3.13.y stable? *** Bug 1088570 has been marked as a duplicate of this bug. *** (In reply to Josh Boyer from comment #1) > Could you propose this upstream for 3.13.y stable? Yes, I will request that. Thanks! Josh, are we sticking with 3.13.y on f20 and on f19 forever? No, F20 will rebase to 3.14.y shortly. F19 will rebase after 3.13.11 reaches F19 updates stable. Ok, we don't have the commit introducing the issue on 3.13.y and the 3.14.y is fine. I will close this ticket. Thanks Josh! |
Description of problem: This fix is needed to run openvswitch 2.1.0 on Fedora 20. commit 4f647e0a3c37b8d5086214128614a136064110c3 Author: Flavio Leitner <fbl> Date: Thu Mar 27 11:05:34 2014 -0300 openvswitch: fix a possible deadlock and lockdep warning There are two problematic situations. A deadlock can happen when is_percpu is false because it can get interrupted while holding the spinlock. Then it executes ovs_flow_stats_update() in softirq context which tries to get the same lock. The second sitation is that when is_percpu is true, the code correctly disables BH but only for the local CPU, so the following can happen when locking the remote CPU without disabling BH: CPU#0 CPU#1 ovs_flow_stats_get() stats_read() +->spin_lock remote CPU#1 ovs_flow_stats_get() | <interrupted> stats_read() | ... +--> spin_lock remote CPU#0 | | <interrupted> | ovs_flow_stats_update() | ... | spin_lock local CPU#0 <--+ ovs_flow_stats_update() +---------------------------------- spin_lock local CPU#1 This patch disables BH for both cases fixing the deadlocks. Acked-by: Jesse Gross <jesse> [...] Signed-off-by: Flavio Leitner <fbl> Signed-off-by: David S. Miller <davem>