From patchwork Thu Dec 28 17:21:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Gleixner X-Patchwork-Id: 10135205 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 204BD60318 for ; Thu, 28 Dec 2017 17:22:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 058FC2D908 for ; Thu, 28 Dec 2017 17:22:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EE7942D911; Thu, 28 Dec 2017 17:22:07 +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=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 784EE2D908 for ; Thu, 28 Dec 2017 17:22:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754519AbdL1RVw (ORCPT ); Thu, 28 Dec 2017 12:21:52 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:33118 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754503AbdL1RVv (ORCPT ); Thu, 28 Dec 2017 12:21:51 -0500 Received: from p4fea5f09.dip0.t-ipconnect.de ([79.234.95.9] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1eUbqQ-0006GU-V3; Thu, 28 Dec 2017 18:19:51 +0100 Date: Thu, 28 Dec 2017 18:21:46 +0100 (CET) From: Thomas Gleixner To: "Shevchenko, Andriy" cc: "alan@linux.intel.com" , "Ailus, Sakari" , "linux-kernel@vger.kernel.org" , "linux-media@vger.kernel.org" Subject: Re: IRQ behaivour has been changed from v4.14 to v4.15-rc1 In-Reply-To: <1514481444.7000.451.camel@intel.com> Message-ID: References: <1514481444.7000.451.camel@intel.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1, SHORTCIRCUIT=-0.0001 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Thu, 28 Dec 2017, Shevchenko, Andriy wrote: > Hi! > > Experimenting with AtomISP (yes, code is ugly and MSI handling rather > hackish, though...). > > So, with v4.14 base: > > [ 33.639224] atomisp-isp2 0000:00:03.0: Start stream on pad 1 for asd0 > [ 33.652355] atomisp-isp2 0000:00:03.0: irq:0x20 > [ 33.662456] atomisp-isp2 0000:00:03.0: irq:0x20 > [ 33.698064] atomisp-isp2 0000:00:03.0: stream[0] started. > > Ctrl+C > > [ 48.185643] atomisp-isp2 0000:00:03.0: [ 48.204641] atomisp-isp2 0000:00:03.0: release device ATOMISP ISP > CAPTURE output > ... > > and machine still alive. > > > With v4.15-rc1 base (basically your branch + some my hack patches) the > IR > Q behaviour changed, i.e. I have got: > > > [ 85.167061] spurious APIC interrupt through vector ff on CPU#0, > should never happen. > [ 85.199886] atomisp-isp2 0000:00:03.0: stream[0] started. > > and Ctrl+C does NOT work. Machine just hangs. > > It might be related to this: > https://lkml.org/lkml/2017/12/22/697 I don't think so. Does the patch below cure it? Thanks, tglx 8<----------------- arch/x86/kernel/apic/apic_flat_64.c | 2 +- arch/x86/kernel/apic/probe_32.c | 2 +- arch/x86/kernel/apic/x2apic_cluster.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) --- a/arch/x86/kernel/apic/apic_flat_64.c +++ b/arch/x86/kernel/apic/apic_flat_64.c @@ -151,7 +151,7 @@ static struct apic apic_flat __ro_after_ .apic_id_valid = default_apic_id_valid, .apic_id_registered = flat_apic_id_registered, - .irq_delivery_mode = dest_LowestPrio, + .irq_delivery_mode = dest_Fixed, .irq_dest_mode = 1, /* logical */ .disable_esr = 0, --- a/arch/x86/kernel/apic/probe_32.c +++ b/arch/x86/kernel/apic/probe_32.c @@ -105,7 +105,7 @@ static struct apic apic_default __ro_aft .apic_id_valid = default_apic_id_valid, .apic_id_registered = default_apic_id_registered, - .irq_delivery_mode = dest_LowestPrio, + .irq_delivery_mode = dest_Fixed, /* logical delivery broadcast to all CPUs: */ .irq_dest_mode = 1, --- a/arch/x86/kernel/apic/x2apic_cluster.c +++ b/arch/x86/kernel/apic/x2apic_cluster.c @@ -184,7 +184,7 @@ static struct apic apic_x2apic_cluster _ .apic_id_valid = x2apic_apic_id_valid, .apic_id_registered = x2apic_apic_id_registered, - .irq_delivery_mode = dest_LowestPrio, + .irq_delivery_mode = dest_Fixed, .irq_dest_mode = 1, /* logical */ .disable_esr = 0,