diff options
author | Prarit Bhargava <[email protected]> | 2014-04-02 08:11:13 -0400 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2014-04-16 13:30:49 +0200 |
commit | fb24da805729ee4a83efa34015948f7d64da4b28 (patch) | |
tree | 507cb1fa6e38bc442b27093f46b416d3a30ab0bd /net/unix/af_unix.c | |
parent | 820fca91d4b927420861eba9d30dbd4e9d3e3939 (diff) |
x86/irq: Fix fixup_irqs() error handling
Several patches to fix cpu hotplug and the down'd cpu's irq
relocations have been submitted in the past month or so. The
patches should resolve the problems with cpu hotplug and irq
relocation, however, there is always a possibility that a bug
still exists. The big problem with debugging these irq
reassignments is that the cpu down completes and then we get
random stack traces from drivers for which irqs have not been
properly assigned to a new cpu. The stack traces are a mix of
storage, network, and other kernel subsystem (I once saw the
serial port stop working ...) warnings and failures.
The problem with these failures is that they are difficult to
diagnose. There is no warning in the cpu hotplug down path to
indicate that an IRQ has failed to be assigned to a new cpu, and
all we are left with is a stack trace from a driver, or a
non-functional device. If we had some information on the
console debugging these situations would be much easier; after
all we can map an IRQ to a device by simply using lspci or
/proc/interrupts.
The current code, fixup_irqs(), which migrates IRQs from the
down'd cpu and is called close to the end of the cpu down path,
calls chip->set_irq_affinity which eventually calls
__assign_irq_vector(). Errors are not propogated back from this
function call and this results in silent irq relocation
failures.
This patch fixes this issue by returning the error codes up the
call stack and prints out a warning if there is a relocation
failure.
Signed-off-by: Prarit Bhargava <[email protected]>
Acked-by: Thomas Gleixner <[email protected]>
Cc: Rui Wang <[email protected]>
Cc: Liu Ping Fan <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Yoshihiro YUNOMAE <[email protected]>
Cc: Lv Zheng <[email protected]>
Cc: Seiji Aguchi <[email protected]>
Cc: Yang Zhang <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Steven Rostedt (Red Hat) <[email protected]>
Cc: Li Fei <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
[ Made small cleanliness tweaks. ]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions