From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 1/3] drm/i915: close PM interrupt masking races in the irq handler Date: Thu, 08 Sep 2011 21:43:59 +0100 Message-ID: References: <1315483222-2195-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 6457E6B45F for ; Thu, 8 Sep 2011 13:44:03 -0700 (PDT) In-Reply-To: <1315483222-2195-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org On Thu, 8 Sep 2011 14:00:20 +0200, Daniel Vetter wrote: > Quoting Chris Wilson's more concise description: > > "Ah I think I see the problem. As you point out we only mask the current > interrupt received, so that if we have a task pending (and so IMR != 0) we > actually unmask the pending interrupt and so could receive it again before the > tasklet is finally kicked off by the grumpy scheduler." > > We need the hw to issue PM interrupts A, B, A while the scheduler is hating us > and refuses to run the rps work item. On receiving PM interrupt A we hit the > WARN because > > dev_priv->pm_iir == PM_A | PM_B > > Also add a posting read as suggested by Chris to ensure proper ordering of the > writes to PMIMR and PMIIR. Just in case somebody weakens write ordering. > > Signed-off-by: Daniel Vetter > Reviewed-by: Ben Widawsky Reviewed-by: Chris Wilson The bug Daniel found here is not that we do the reg write two lines too early, but that we were writing the wrong value into the IMR. The effect was to unmask an already pending IRQ and so we could hit the WARN. Other than the WARN, the only other side-effect would be that we would kick off more work functions than required - the bug should not be affecting system stability... -Chris -- Chris Wilson, Intel Open Source Technology Centre