From patchwork Fri May 20 21:22:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Munehisa Kamata X-Patchwork-Id: 9130263 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 01E9F6048B for ; Sat, 21 May 2016 04:53:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E9E7D27C23 for ; Sat, 21 May 2016 04:53:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DE0B628066; Sat, 21 May 2016 04:53:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=2.0 tests=BAYES_00,DKIM_ADSP_ALL, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 2DF7427C23 for ; Sat, 21 May 2016 04:53:33 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3yt0-0005cM-4b; Sat, 21 May 2016 04:51:38 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3rsw-0004X4-Pk for xen-devel@lists.xenproject.org; Fri, 20 May 2016 21:23:06 +0000 Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id 67/55-20564-9308F375; Fri, 20 May 2016 21:23:05 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrELMWRWlGSWpSXmKPExsXiIXpMUteywT7 cYNESaYvvWyYzOTB6HP5whSWAMYo1My8pvyKBNWPK76vsBe3iFfO2/2NvYNwo0sXIxcEisIxZ 4vbhBuYuRk4OCQF/iQ2br7GA2EIC9xgl5naFgxQJCTxilDj4ZD0jSIJNQEti4b8bTCC2iIC5x MElO9lBipgF1jBKHD0xmxUkISzgLLGrcwpYEYuAqsTu5q3sIDavgJPEu3f9QNs4gLbJSVz5lw ASFhAQkNjw6gH7BEaeBYwMqxjVi1OLylKLdM30kooy0zNKchMzc3QNDUz1clOLixPTU3MSk4r 1kvNzNzEC/c4ABDsYpzY4H2KU5GBSEuVdXWwfLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC16Ee KCdYlJqeWpGWmQMMQJi0BAePkggvE0iat7ggMbc4Mx0idYpRUUqcNxokIQCSyCjNg2uDBf0lR lkpYV5GoEOEeApSi3IzS1DlXzGKczAqCfMerQOawpOZVwI3/RXQYiagxbfEbEAWlyQipKQaGA OktvRnbtztMfu84fe+5UWT2W2tXvuEJVZs9+7Vc7iwWWTKs3a51nzHJTxVFhKBrGUXp3AclnI Wmv05JOx2WySzQ3iZg4Ef2+OX98v/CzpcX11/2G53vNuL3StPsjBeCKqJKTlvVMmx8qPIuU0K Cy+blCfI850LLGNc8kpny9ea8o2calN3KLEUZyQaajEXFScCAL/siT11AgAA X-Env-Sender: prvs=941015c18=kamatam@amazon.com X-Msg-Ref: server-6.tower-206.messagelabs.com!1463779384!40531589!1 X-Originating-IP: [72.21.198.25] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNzIuMjEuMTk4LjI1ID0+IDEzMjEwMw==\n X-StarScan-Received: X-StarScan-Version: 8.34; banners=-,-,- X-VirusChecked: Checked Received: (qmail 62312 invoked from network); 20 May 2016 21:23:05 -0000 Received: from smtp-fw-4101.amazon.com (HELO smtp-fw-4101.amazon.com) (72.21.198.25) by server-6.tower-206.messagelabs.com with RC4-SHA encrypted SMTP; 20 May 2016 21:23:05 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1463779385; x=1495315385; h=from:to:cc:subject:date:message-id; bh=yB5tv4OZac9vIEz27IblQE+YnlMWn/28lGh3+xb58A4=; b=X6QcEOD0G15fAK3S60T5eGNDtv+eIYMkRKVLbsGYMB3sicIf8aKRkW3s ezYC1xRz/fyIUj+I2lbQMJoca8CaL0w037hhk3o74NhcXZaQrPEYwYk39 vLJADpPS5yULN+B8r9GVh8tGIZsiJGg4XKTk3PSHoHVyXWhUmMMZKaKaZ o=; X-IronPort-AV: E=Sophos;i="5.26,341,1459814400"; d="scan'208";a="519214757" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-25002.iad12.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 20 May 2016 21:23:03 +0000 Received: from uc4346b70a5de54b0395a.sea.amazon.com (iad1-ws-svc-lb91-vlan3.amazon.com [10.0.103.150]) by email-inbound-relay-25002.iad12.amazon.com (8.14.7/8.14.7) with ESMTP id u4KLN07U019968; Fri, 20 May 2016 21:23:01 GMT From: Munehisa Kamata To: boris.ostrovsky@oracle.com, david.vrabel@citrix.com Date: Fri, 20 May 2016 14:22:04 -0700 Message-Id: <1463779324-12225-1-git-send-email-kamatam@amazon.com> X-Mailer: git-send-email 2.8.2 Precedence: Bulk X-Mailman-Approved-At: Sat, 21 May 2016 04:51:36 +0000 Cc: xen-devel@lists.xenproject.org, Munehisa Kamata , Matt Wilson , linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [Xen-devel] [PATCH] xen/events: don't migrate disabled IRQs X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Commit ff1e22e7a638 ("xen/events: Mask a moving irq") introduced a crash below. This can be triggered after being resumed from suspend (e.g. live migration) if there are disabled IRQs with IRQD_SETAFFINITY_PENDING set. kernel BUG at kernel/irq/migration.c:31! ... CPU: 0 PID: 9 Comm: migration/0 Tainted: G E 4.4.8 #1 Hardware name: Xen HVM domU, BIOS 4.2.amazon 04/04/2016 task: ffff880206200000 ti: ffff880206208000 task.ti: ffff880206208000 RIP: 0010:[] [] irq_move_masked_irq+0xd9/0xf0 RSP: 0018:ffff88020620bc88 EFLAGS: 00010046 ... Call Trace: [] eoi_pirq+0xa7/0xd0 [] __startup_pirq+0xd7/0x140 [] xen_irq_resume+0x2c7/0x330 [] xen_suspend+0x86/0x140 [] multi_cpu_stop+0xb3/0xe0 [] ? cpu_stop_queue_work+0x80/0x80 [] cpu_stopper_thread+0x7a/0x110 [] ? finish_task_switch+0x72/0x1d0 [] ? __raw_callee_save___pv_queued_spin_unlock+0x11/0x20 [] smpboot_thread_fn+0x10f/0x170 [] ? sort_range+0x30/0x30 [] kthread+0xc9/0xe0 [] ? kthread_park+0x60/0x60 [] ret_from_fork+0x3f/0x70 [] ? kthread_park+0x60/0x60 The pending state may last until being suspended, because some IRQs may show no activities after their affinity settings have been changed. This change don't let ACK and EOI handlers of xen-pirq and xen-dyn chips try to migrate disabled IRQs to avoid the BUG in that situation. Fixes: ff1e22e7a638 ("xen/events: Mask a moving irq") Reported-and-tested-by: Guilherme Wuensch Manika To: Boris Ostrovsky To: David Vrabel Cc: xen-devel@lists.xenproject.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Cc: Matt Wilson Signed-off-by: Munehisa Kamata --- drivers/xen/events/events_base.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index cb7138c..be8410f 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -487,7 +487,8 @@ static void eoi_pirq(struct irq_data *data) if (!VALID_EVTCHN(evtchn)) return; - if (unlikely(irqd_is_setaffinity_pending(data))) { + if (unlikely(irqd_is_setaffinity_pending(data) && + !irqd_irq_disabled(data))) { int masked = test_and_set_mask(evtchn); clear_evtchn(evtchn); @@ -1370,7 +1371,8 @@ static void ack_dynirq(struct irq_data *data) if (!VALID_EVTCHN(evtchn)) return; - if (unlikely(irqd_is_setaffinity_pending(data))) { + if (unlikely(irqd_is_setaffinity_pending(data) && + !irqd_irq_disabled(data))) { int masked = test_and_set_mask(evtchn); clear_evtchn(evtchn);