From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH] drm/i915: provide more error output when mode sets fail Date: Tue, 19 Jul 2011 17:22:56 -0700 Message-ID: <20110719172256.182af8f5@jbarnes-e6510> References: <1311115136-31474-1-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from oproxy6-pub.bluehost.com (oproxy6-pub.bluehost.com [67.222.54.6]) by gabe.freedesktop.org (Postfix) with SMTP id AA07D9EFEF for ; Tue, 19 Jul 2011 17:22:58 -0700 (PDT) In-Reply-To: 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: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, 20 Jul 2011 01:14:47 +0100 Chris Wilson wrote: > On Tue, 19 Jul 2011 15:38:56 -0700, Jesse Barnes > wrote: > > If a mode set fails we may get a message from drm_crtc_helper if > > we're lucky, but it won't tell us anything about *why* we failed to > > set a mode. So add a few DRM_ERRORs for the cases that shouldn't > > happen so we can debug things more easily. > > Also fix drm not to simply ignore the error codes would also be > useful. But how does logging the error without logging the state > help? Presumably you are targeting the unreproducible cases? I added these to catch a mode setting failure Keith was seeing following a GPU hang. The simple debug info was enough to track things down. But I agree, really the DRM hooks should return ints and give us more info about what happened, and try to roll back the config. > > if (!crtc->fb) { > > - DRM_DEBUG_KMS("No FB bound\n"); > > + DRM_ERROR("No FB bound\n"); > > return 0; > > } > > Should this be flagged as en error then? Possibly, unless we shut off displays this way?? > > @@ -1952,6 +1953,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, > > int x, int y, NULL); > > if (ret != 0) { > > mutex_unlock(&dev->struct_mutex); > > + DRM_ERROR("pin & fence failed\n"); > > In this and the following, report the reason/error code for the > failure. -Chris Sure. Jesse