From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752822AbcFJIke (ORCPT ); Fri, 10 Jun 2016 04:40:34 -0400 Received: from mga03.intel.com ([134.134.136.65]:61914 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751494AbcFJIk2 (ORCPT ); Fri, 10 Jun 2016 04:40:28 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,449,1459839600"; d="scan'208";a="716897896" From: "Ursulin, Tvrtko" To: Kamal Mostafa , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" , "kernel-team@lists.ubuntu.com" CC: Chris Wilson , =?utf-8?B?VmlsbGUgU3lyasOkbMOk?= , =?utf-8?B?QW50dGkgS29za2lww6TDpA==?= Subject: RE: [PATCH 4.2.y-ckt 006/206] drm/i915: Exit cherryview_irq_handler() after one pass Thread-Topic: [PATCH 4.2.y-ckt 006/206] drm/i915: Exit cherryview_irq_handler() after one pass Thread-Index: AQHRwpRP0BqB2Wg/8UCx/8FjIChgJ5/iYOHw Date: Fri, 10 Jun 2016 08:37:47 +0000 Message-ID: <9108028B3EB68E4CA5158371AB76E60124D9DA52@IRSMSX102.ger.corp.intel.com> References: <1465507015-23052-1-git-send-email-kamal@canonical.com> <1465507015-23052-7-git-send-email-kamal@canonical.com> In-Reply-To: <1465507015-23052-7-git-send-email-kamal@canonical.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiODNiMjI3NTctZDlkNC00OTYzLWEwMWUtNWQ1NDM1MDdmNWMzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjVSS2NqNFY2SlVXUCs4WnNzVHVOa3JJQUw1b0lJRk1cL0ZBeGRnZncwQ3h3PSJ9 x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u5A8eeOV024370 Hi, Should not be cherry picked to stable, it needs many more patches to make it work or otherwise breaks the platform. Regards, Tvrtko > -----Original Message----- > From: Kamal Mostafa [mailto:kamal@canonical.com] > Sent: Thursday, June 09, 2016 10:14 PM > To: linux-kernel@vger.kernel.org; stable@vger.kernel.org; kernel- > team@lists.ubuntu.com > Cc: Chris Wilson; Ville Syrjälä; Antti Koskipää; Ursulin, Tvrtko; Kamal Mostafa > Subject: [PATCH 4.2.y-ckt 006/206] drm/i915: Exit cherryview_irq_handler() > after one pass > > 4.2.8-ckt12 -stable review patch. If anyone has any objections, please let me > know. > > ---8<------------------------------------------------------------ > > From: Chris Wilson > > commit 579de73b048a0a4c66c25a033ac76a2836e0cf73 upstream. > > This effectively reverts > > commit 8e5fd599eb219f1054e39b40d18b217af669eea9 > Author: Ville Syrjälä > Date: Wed Apr 9 13:28:50 2014 +0300 > > drm/i915/chv: Make CHV irq handler loop until all interrupts are consumed > > as under continuous execlists load we can saturate the IRQ handler, > destablising the tsc clock and triggering the NMI watchdog to declare a hung > CPU. > > [ 552.756051] clocksource: timekeeping watchdog on CPU0: Marking > clocksource 'tsc' as unstable because the skew is too large: > [ 552.756080] clocksource: 'refined-jiffies' wd_now: 10003b480 > wd_last: 10003b28c mask: ffffffff > [ 552.756091] clocksource: 'tsc' cs_now: d55d31aa50 cs_last: > d17446166c mask: ffffffffffffffff > [ 552.756210] clocksource: Switched to clocksource refined-jiffies > [ 575.217870] NMI watchdog: Watchdog detected hard LOCKUP on cpu 1 > [ 575.217893] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.5.0-rc7+ #18 > [ 575.217905] Hardware name: /NUC5CPYB, BIOS > PYBSWCEL.86A.0027.2015.0507.1758 05/07/2015 > [ 575.217915] 0000000000000000 ffff88027fd05bc0 ffffffff81288c6d > 0000000000000000 > [ 575.217935] 0000000000000001 ffff88027fd05be0 ffffffff810e72d1 > 0000000000000000 > [ 575.217951] ffff88027fd05c80 ffff88027fd05c20 ffffffff81114b60 > 0000000181015f1e > [ 575.217967] Call Trace: > [ 575.217973] [] dump_stack+0x4f/0x72 > [ 575.217994] [] > watchdog_overflow_callback+0x151/0x160 > [ 575.218003] [] __perf_event_overflow+0xa0/0x1e0 > [ 575.218016] [] perf_event_overflow+0x14/0x20 > [ 575.218028] [] intel_pmu_handle_irq+0x1da/0x460 > [ 575.218042] [] ? poll_idle+0x3e/0x70 > [ 575.218052] [] ? poll_idle+0x3e/0x70 > [ 575.218064] [] perf_event_nmi_handler+0x28/0x50 > [ 575.218075] [] nmi_handle+0x60/0x130 > [ 575.218086] [] ? poll_idle+0x3e/0x70 > [ 575.218096] [] do_nmi+0x140/0x470 > [ 575.218108] [] end_repeat_nmi+0x1a/0x1e > [ 575.218119] [] ? poll_idle+0x3e/0x70 > [ 575.218129] [] ? poll_idle+0x3e/0x70 > [ 575.218139] [] ? poll_idle+0x3e/0x70 > [ 575.218148] <> [] > cpuidle_enter_state+0xf3/0x2f0 > [ 575.218164] [] cpuidle_enter+0x17/0x20 > [ 575.218175] [] call_cpuidle+0x2a/0x40 > [ 575.218185] [] cpu_startup_entry+0x273/0x330 > [ 575.218196] [] start_secondary+0x10e/0x130 > > However, not servicing all available IIR within the handler does hurt the > throughput of pathological nop execbuf by about 20%, with a similar effect > upon the dispatch latency of a series of execbuf. > > v2: use do {} while(0) for a smaller patch, and easier to revert again > > I have reasonable confidence that we do not miss GT interrupts (as > execlists provides a stress case with a failure mechanism easily > detected by igt), however I have less confidence about all the other > sources of interrupts and worry that may lose a display hotplug > interrupt, for example. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93467 > Testcase: igt/gem_exec_nop/basic # requires NMI watchdog > Signed-off-by: Chris Wilson > Cc: Ville Syrjälä > Cc: Antti Koskipää > Cc: Tvrtko Ursulin > Reviewed-by: Tvrtko Ursulin > Reviewed-by: Ville Syrjälä > Link: http://patchwork.freedesktop.org/patch/msgid/1457946117-6714-1-git- > send-email-chris@chris-wilson.co.uk > Signed-off-by: Kamal Mostafa > --- > drivers/gpu/drm/i915/i915_irq.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c > b/drivers/gpu/drm/i915/i915_irq.c > index 6a51bc6..6f453fe 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -1837,7 +1837,7 @@ static irqreturn_t cherryview_irq_handler(int irq, > void *arg) > if (!intel_irqs_enabled(dev_priv)) > return IRQ_NONE; > > - for (;;) { > + do { > master_ctl = I915_READ(GEN8_MASTER_IRQ) & > ~GEN8_MASTER_IRQ_CONTROL; > iir = I915_READ(VLV_IIR); > > @@ -1865,7 +1865,7 @@ static irqreturn_t cherryview_irq_handler(int irq, > void *arg) > > I915_WRITE(GEN8_MASTER_IRQ, > DE_MASTER_IRQ_CONTROL); > POSTING_READ(GEN8_MASTER_IRQ); > - } > + } while (0); > > return ret; > } > -- > 2.7.4