Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754052AbbFSHLH (ORCPT ); Fri, 19 Jun 2015 03:11:07 -0400 Received: from mail-pd0-f181.google.com ([209.85.192.181]:34457 "EHLO mail-pd0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751487AbbFSHK5 (ORCPT ); Fri, 19 Jun 2015 03:10:57 -0400 Date: Fri, 19 Jun 2015 16:11:23 +0900 From: Sergey Senozhatsky To: Thomas Gleixner Cc: Jiang Liu , Borislav Petkov , linux-kernel@vger.kernel.org, Sergey Senozhatsky , Sergey Senozhatsky Subject: [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq() Message-ID: <20150619071123.GA511@swordfish> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23+89 (0255b37be491) (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3518 Lines: 73 Hi, next-20150619 is un-bootable (it `drowns` in warnings). I modified irq_move_masked_irq() to do WARN_ONCE() instead of WARN_ON every !irqd_can_balance(), and here it is: [ 0.412227] ------------[ cut here ]------------ [ 0.412291] WARNING: CPU: 0 PID: 0 at kernel/irq/migration.c:21 irq_move_masked_irq+0x57/0xc4() [ 0.412371] Can't balance irq 0 [edge] [ 0.412428] Modules linked in: [ 0.412524] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc8-next-20150619-dbg-00010-g841f367-dirty #228 [ 0.412606] Hardware name: SAMSUNG ELECTRONICS CO.,LTD Samsung DeskTop System/Samsung DeskTop System, BIOS 05CC 04/09/2010 [ 0.412693] 0000000000000009 ffff880137c03e18 ffffffff814f2acd ffffffff810851a4 [ 0.412920] ffff880137c03e68 ffff880137c03e58 ffffffff8103d196 0000000000000000 [ 0.413146] ffffffff8108bfe8 ffff880133007c00 0000000000000000 0000000000000000 [ 0.413373] Call Trace: [ 0.413428] [] dump_stack+0x4c/0x6e [ 0.413532] [] ? console_unlock+0x400/0x42f [ 0.413596] [] warn_slowpath_common+0x9b/0xb5 [ 0.413659] [] ? irq_move_masked_irq+0x57/0xc4 [ 0.413722] [] warn_slowpath_fmt+0x46/0x48 [ 0.413785] [] irq_move_masked_irq+0x57/0xc4 [ 0.413847] [] irq_move_irq+0x42/0x56 [ 0.413910] [] apic_ack_edge+0x23/0x3b [ 0.413972] [] irq_chip_ack_parent+0x14/0x16 [ 0.414034] [] handle_edge_irq+0x90/0xe1 [ 0.414096] [] handle_irq+0x24/0x2a [ 0.414158] [] do_IRQ+0x4c/0xcd [ 0.414219] [] common_interrupt+0x6a/0x6a [ 0.414280] [] ? cpuidle_enter_state+0x195/0x29d [ 0.414386] [] ? cpuidle_enter_state+0x191/0x29d [ 0.414450] [] cpuidle_enter+0x17/0x19 [ 0.414512] [] call_cpuidle+0x55/0x57 [ 0.414573] [] ? cpuidle_select+0x13/0x15 [ 0.414636] [] cpu_startup_entry+0x27a/0x399 [ 0.414700] [] rest_init+0x134/0x13a [ 0.414762] [] start_kernel+0x41a/0x427 [ 0.414825] [] x86_64_start_reservations+0x2a/0x2c [ 0.414889] [] x86_64_start_kernel+0x16b/0x17a [ 0.414987] ---[ end trace 082909e0a7e1599a ]--- Do you guys want to replace WAN_ON() with WARN_ONCE(), perhaps? This, of course, doesn't fix anything; but at least one can boot the system. (not really a patch, just an idea). Signed-off-by: Sergey Senozhatsky --- kernel/irq/migration.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index dd203e2..0352b04 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c @@ -16,7 +16,9 @@ void irq_move_masked_irq(struct irq_data *idata) * Paranoia: cpu-local interrupts shouldn't be calling in here anyway. */ if (!irqd_can_balance(&desc->irq_data)) { - WARN_ON(1); + WARN_ONCE(1, "Can't balance irq %d [%s]\n", + desc->irq_data.irq, + desc->name); return; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/