From patchwork Fri Sep 25 08:46:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 11799365 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 284616CA for ; Fri, 25 Sep 2020 08:47:04 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EA4A4208B6 for ; Fri, 25 Sep 2020 08:47:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="elDZetC9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EA4A4208B6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 502C96EC64; Fri, 25 Sep 2020 08:47:00 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 284136EC5F for ; Fri, 25 Sep 2020 08:46:59 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id x14so2621224wrl.12 for ; Fri, 25 Sep 2020 01:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7IqZitQ9KORvFRfCpUB9I8VYakITuk7r9Yti4Q92atc=; b=elDZetC9HgJWDohrUIphsyj5A5B1tb6sEQbwJ6XFmUrEgfpQsK5ImF/JGNH66Dqth+ jwYE2NysxzDAQFSq9Bg8PPi0O72WlSWdPci6OFwLGz4RZUSmHmqS6Ku0NPzqG0k+0+Hu 40Js49057bL2TNma0cXiVUISSvCmOB/HLX7RM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7IqZitQ9KORvFRfCpUB9I8VYakITuk7r9Yti4Q92atc=; b=oKEPWPxo6W+uyvYnSbMdH008jISP6yXYXeI+7/Ay3eUf0Z3K5tQnsc4SP+4MABPb6M Feum5xyWEGHz+dlQP/Rg/77TyPGmiqX+l3mmg/D4S58E4MFMA8NBd3AA5Hb1FOLAOUmF ekj+uy/vLsJSLwvH7QTPiWZusgxCZBBu415U8KrHMg37+gzh1uAxJhX/OJhOHJxnpsIt IHve4IYKaRJhFsQMJ8qekWTHdWxxBEM6WDIUXKgvtLJj5ma7T2L7oIz+UwAWH3Wjpj6p 82MpRcDggxeUd5aJ1IrWeJOkr68UMGojYZZgqed4BzJ13Lkz34XjIf6oZQmqOsSdhDO7 peGg== X-Gm-Message-State: AOAM5320i+uPOL6Fh5RsC1Viyyp/jDIwuzPBvhWnabx7m/MADDCcbshN n19DIHjAZ+Zcaqei6VrDKagn7i5WLFGbsiBe X-Google-Smtp-Source: ABdhPJy7Xm8XjOk+WDpx5dr+exmR4qUt4wJqFCWS145GRpRmJYVH4VtmGoKN5RnVMK5tgX+IL2we4g== X-Received: by 2002:a5d:46cf:: with SMTP id g15mr3289510wrs.107.1601023617530; Fri, 25 Sep 2020 01:46:57 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id 18sm2031034wmj.28.2020.09.25.01.46.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2020 01:46:56 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 2/2] drm/atomic: debug output for EBUSY Date: Fri, 25 Sep 2020 10:46:51 +0200 Message-Id: <20200925084651.3250104-2-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200925084651.3250104-1-daniel.vetter@ffwll.ch> References: <20200925084651.3250104-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Daniel Vetter , Intel Graphics Development , Sean Paul , Pekka Paalanen Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hopefully we'll have the drm crash recorder RSN, but meanwhile compositors would like to know a bit better why they get an EBUSY. v2: Move misplaced hunk to the right patch (Pekka) Cc: Sean Paul Cc: Daniel Stone Cc: Pekka Paalanen Cc: Simon Ser Cc: Ville Syrjälä Signed-off-by: Daniel Vetter Acked-by: Pekka Paalanen Reviewed-by: Daniel Stone --- drivers/gpu/drm/drm_atomic_helper.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index e8abaaaa7fd1..6b3bfabac26c 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -1740,8 +1740,11 @@ int drm_atomic_helper_async_check(struct drm_device *dev, * overridden by a previous synchronous update's state. */ if (old_plane_state->commit && - !try_wait_for_completion(&old_plane_state->commit->hw_done)) + !try_wait_for_completion(&old_plane_state->commit->hw_done)) { + DRM_DEBUG_ATOMIC("[PLANE:%d:%s] inflight previous commit preventing async commit\n", + plane->base.id, plane->name); return -EBUSY; + } return funcs->atomic_async_check(plane, new_plane_state); } @@ -1964,6 +1967,9 @@ static int stall_checks(struct drm_crtc *crtc, bool nonblock) * commit with nonblocking ones. */ if (!completed && nonblock) { spin_unlock(&crtc->commit_lock); + DRM_DEBUG_ATOMIC("[CRTC:%d:%s] busy with a previous commit\n", + crtc->base.id, crtc->name); + return -EBUSY; } } else if (i == 1) { @@ -2132,8 +2138,12 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, /* Userspace is not allowed to get ahead of the previous * commit with nonblocking ones. */ if (nonblock && old_conn_state->commit && - !try_wait_for_completion(&old_conn_state->commit->flip_done)) + !try_wait_for_completion(&old_conn_state->commit->flip_done)) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] busy with a previous commit\n", + conn->base.id, conn->name); + return -EBUSY; + } /* Always track connectors explicitly for e.g. link retraining. */ commit = crtc_or_fake_commit(state, new_conn_state->crtc ?: old_conn_state->crtc); @@ -2147,8 +2157,12 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state, /* Userspace is not allowed to get ahead of the previous * commit with nonblocking ones. */ if (nonblock && old_plane_state->commit && - !try_wait_for_completion(&old_plane_state->commit->flip_done)) + !try_wait_for_completion(&old_plane_state->commit->flip_done)) { + DRM_DEBUG_ATOMIC("[PLANE:%d:%s] busy with a previous commit\n", + plane->base.id, plane->name); + return -EBUSY; + } /* Always track planes explicitly for async pageflip support. */ commit = crtc_or_fake_commit(state, new_plane_state->crtc ?: old_plane_state->crtc);