dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: "Rob Clark" <robdclark@gmail.com>,
	dri-devel@lists.freedesktop.org,
	"Rob Clark" <robdclark@chromium.org>,
	"Christian König" <ckoenig.leichtzumerken@gmail.com>,
	intel-gfx@lists.freedesktop.org,
	"open list" <linux-kernel@vger.kernel.org>,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Matt Turner" <mattst88@gmail.com>,
	freedreno@lists.freedesktop.org
Subject: Re: [PATCH v10 11/15] drm/atomic-helper: Set fence deadline for vblank
Date: Wed, 5 Apr 2023 00:53:29 +0300	[thread overview]
Message-ID: <198c42ad-73de-9e9d-23d4-f36cb6840b5d@linaro.org> (raw)
In-Reply-To: <ZCx3jUJfC1vmbhI6@phenom.ffwll.local>

On 04/04/2023 22:16, Daniel Vetter wrote:
> On Tue, Apr 04, 2023 at 08:22:05PM +0300, Dmitry Baryshkov wrote:
>> On 08/03/2023 17:53, Rob Clark wrote:
>>> From: Rob Clark <robdclark@chromium.org>
>>>
>>> For an atomic commit updating a single CRTC (ie. a pageflip) calculate
>>> the next vblank time, and inform the fence(s) of that deadline.
>>>
>>> v2: Comment typo fix (danvet)
>>> v3: If there are multiple CRTCs, consider the time of the soonest vblank
>>>
>>> Signed-off-by: Rob Clark <robdclark@chromium.org>
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Rob Clark <robdclark@chromium.org>
>>> ---
>>>    drivers/gpu/drm/drm_atomic_helper.c | 37 +++++++++++++++++++++++++++++
>>>    1 file changed, 37 insertions(+)
>>
>> As I started playing with hotplug on RB5 (sm8250, DSI-HDMI bridge), I found
>> that this patch introduces the following backtrace on HDMI hotplug. Is there
>> anything that I can do to debug/fix the issue? The warning seems harmless,
>> but it would be probably be good to still fix it. With addresses decoded:
> 
> Bit a shot in the dark, but does the below help?

This indeed seems to fix the issue. I'm not sure about the possible side 
effects, but, if you were to send the patch:

Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

> 
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index f21b5a74176c..6640d80d84f3 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -1528,6 +1528,9 @@ static void set_fence_deadline(struct drm_device *dev,
>   	for_each_new_crtc_in_state (state, crtc, new_crtc_state, i) {
>   		ktime_t v;
>   
> +		if (drm_atomic_crtc_needs_modeset(new_crtc_state))
> +			continue;
> +
>   		if (drm_crtc_next_vblank_start(crtc, &v))
>   			continue;
>   
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 78a8c51a4abf..7ae38e8e27e8 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1001,6 +1001,9 @@ int drm_crtc_next_vblank_start(struct drm_crtc *crtc, ktime_t *vblanktime)
>   	struct drm_display_mode *mode = &vblank->hwmode;
>   	u64 vblank_start;
>   
> +	if (!drm_dev_has_vblank(crtc->dev))
> +		return -EINVAL;
> +
>   	if (!vblank->framedur_ns || !vblank->linedur_ns)
>   		return -EINVAL;
>   
> 
>>
>> [   31.151348] ------------[ cut here ]------------
>> [   31.157043] msm_dpu ae01000.display-controller:
>> drm_WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev))
>> [   31.157177] WARNING: CPU: 0 PID: 13 at drivers/gpu/drm/drm_vblank.c:728
>> drm_crtc_vblank_helper_get_vblank_timestamp_internal
>> (drivers/gpu/drm/drm_vblank.c:728)
>> [   31.180629] Modules linked in:
>> [   31.184106] CPU: 0 PID: 13 Comm: kworker/0:1 Not tainted
>> 6.3.0-rc2-00008-gd39e48ca80c0 #542
>> [   31.193358] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
>> [   31.200796] Workqueue: events lt9611uxc_hpd_work
>> [   31.205990] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS
>> BTYPE=--)
>> [   31.213722] pc : drm_crtc_vblank_helper_get_vblank_timestamp_internal
>> (drivers/gpu/drm/drm_vblank.c:728)
>> [   31.222032] lr : drm_crtc_vblank_helper_get_vblank_timestamp_internal
>> (drivers/gpu/drm/drm_vblank.c:728)
>> [   31.230341] sp : ffff8000080bb8d0
>> [   31.234061] x29: ffff8000080bb900 x28: 0000000000000038 x27:
>> ffff61a7956b8d60
>> [   31.242051] x26: 0000000000000000 x25: 0000000000000000 x24:
>> ffff8000080bb9c4
>> [   31.250038] x23: 0000000000000001 x22: ffffbf0033b94ef0 x21:
>> ffff61a7957901d0
>> [   31.258029] x20: ffff61a795710000 x19: ffff61a78128b000 x18:
>> fffffffffffec278
>> [   31.266014] x17: 0040000000000465 x16: 0000000000000020 x15:
>> 0000000000000060
>> [   31.274001] x14: 0000000000000001 x13: ffffbf00354550e0 x12:
>> 0000000000000825
>> [   31.281989] x11: 00000000000002b7 x10: ffffbf00354b1208 x9 :
>> ffffbf00354550e0
>> [   31.289976] x8 : 00000000ffffefff x7 : ffffbf00354ad0e0 x6 :
>> 00000000000002b7
>> [   31.297963] x5 : ffff61a8feebbe48 x4 : 40000000fffff2b7 x3 :
>> ffffa2a8c9f64000
>> [   31.305947] x2 : 0000000000000000 x1 : 0000000000000000 x0 :
>> ffff61a780283100
>> [   31.313934] Call trace:
>> [   31.316719] drm_crtc_vblank_helper_get_vblank_timestamp_internal
>> (drivers/gpu/drm/drm_vblank.c:728)
>> [   31.324646] drm_crtc_vblank_helper_get_vblank_timestamp
>> (drivers/gpu/drm/drm_vblank.c:843)
>> [   31.331528] drm_crtc_get_last_vbltimestamp
>> (drivers/gpu/drm/drm_vblank.c:884)
>> [   31.337170] drm_crtc_next_vblank_start
>> (drivers/gpu/drm/drm_vblank.c:1006)
>> [   31.342430] drm_atomic_helper_wait_for_fences
>> (drivers/gpu/drm/drm_atomic_helper.c:1531
>> drivers/gpu/drm/drm_atomic_helper.c:1578)
>> [   31.348561] drm_atomic_helper_commit
>> (drivers/gpu/drm/drm_atomic_helper.c:2007)
>> [   31.353724] drm_atomic_commit (drivers/gpu/drm/drm_atomic.c:1444)
>> [   31.358127] drm_client_modeset_commit_atomic
>> (drivers/gpu/drm/drm_client_modeset.c:1045)
>> [   31.364146] drm_client_modeset_commit_locked
>> (drivers/gpu/drm/drm_client_modeset.c:1148)
>> [   31.370071] drm_client_modeset_commit
>> (drivers/gpu/drm/drm_client_modeset.c:1174)
>> [   31.375233] drm_fb_helper_set_par (drivers/gpu/drm/drm_fb_helper.c:254
>> drivers/gpu/drm/drm_fb_helper.c:229 drivers/gpu/drm/drm_fb_helper.c:1644)
>> [   31.380108] drm_fb_helper_hotplug_event
>> (drivers/gpu/drm/drm_fb_helper.c:2302 (discriminator 4))
>> [   31.385456] drm_fb_helper_output_poll_changed
>> (drivers/gpu/drm/drm_fb_helper.c:2331)
>> [   31.391376] drm_kms_helper_hotplug_event
>> (drivers/gpu/drm/drm_probe_helper.c:697)
>> [   31.396825] drm_bridge_connector_hpd_cb
>> (drivers/gpu/drm/drm_bridge_connector.c:129)
>> [   31.402175] drm_bridge_hpd_notify (drivers/gpu/drm/drm_bridge.c:1315)
>> [   31.406954] lt9611uxc_hpd_work
>> (drivers/gpu/drm/bridge/lontium-lt9611uxc.c:185)
>> [   31.411450] process_one_work (kernel/workqueue.c:2395)
>> [   31.415949] worker_thread (include/linux/list.h:292
>> kernel/workqueue.c:2538)
>> [   31.426843] kthread (kernel/kthread.c:376)
>> [   31.437182] ret_from_fork (arch/arm64/kernel/entry.S:871)
>> [   31.447828] irq event stamp: 44642
>> [   31.458284] hardirqs last enabled at (44641): __up_console_sem
>> (arch/arm64/include/asm/irqflags.h:182 (discriminator 1)
>> arch/arm64/include/asm/irqflags.h:202 (discriminator 1)
>> kernel/printk/printk.c:345 (discriminator 1))
>> [   31.474540] hardirqs last disabled at (44642): el1_dbg
>> (arch/arm64/kernel/entry-common.c:335 arch/arm64/kernel/entry-common.c:406)
>> [   31.489882] softirqs last enabled at (42912): _stext
>> (arch/arm64/include/asm/current.h:19 arch/arm64/include/asm/preempt.h:13
>> kernel/softirq.c:415 kernel/softirq.c:600)
>> [   31.505256] softirqs last disabled at (42907): ____do_softirq
>> (arch/arm64/kernel/irq.c:81)
>> [   31.521139] ---[ end trace 0000000000000000 ]---
>>
>>
>>
>> -- 
>> With best wishes
>> Dmitry
>>
> 

-- 
With best wishes
Dmitry


  reply	other threads:[~2023-04-04 21:53 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-08 15:52 [PATCH v10 00/15] dma-fence: Deadline awareness Rob Clark
2023-03-08 15:52 ` [PATCH v10 01/15] dma-buf/dma-fence: Add deadline awareness Rob Clark
2023-03-10 15:45   ` Jonas Ådahl
2023-03-10 17:38     ` Rob Clark
2023-03-15 13:53       ` Jonas Ådahl
2023-03-15 16:19         ` Rob Clark
2023-03-16  9:26           ` Jonas Ådahl
2023-03-16 16:28             ` Rob Clark
2023-03-16 22:22               ` Sebastian Wick
2023-03-16 22:59                 ` Rob Clark
2023-03-17 15:07                   ` Sebastian Wick
2023-03-17  9:09                 ` Pekka Paalanen
2023-03-17  9:17                   ` Pekka Paalanen
2023-03-17  9:59                     ` Pekka Paalanen
2023-03-17  9:10                 ` Michel Dänzer
2023-03-17 10:23               ` Jonas Ådahl
2023-03-17 15:59                 ` Rob Clark
2023-03-21 13:24                   ` Jonas Ådahl
2023-03-21 14:34                     ` Rob Clark
2023-03-08 15:52 ` [PATCH v10 02/15] dma-buf/fence-array: Add fence deadline support Rob Clark
2023-03-08 15:52 ` [PATCH v10 03/15] dma-buf/fence-chain: " Rob Clark
2023-03-08 15:52 ` [PATCH v10 04/15] dma-buf/dma-resv: Add a way to set fence deadline Rob Clark
2023-03-08 15:52 ` [PATCH v10 05/15] dma-buf/sync_file: Surface sync-file uABI Rob Clark
2023-03-08 15:52 ` [PATCH v10 06/15] dma-buf/sync_file: Add SET_DEADLINE ioctl Rob Clark
2023-03-08 15:52 ` [PATCH v10 07/15] dma-buf/sw_sync: Add fence deadline support Rob Clark
2023-03-28 13:57   ` Tvrtko Ursulin
2023-03-08 15:52 ` [PATCH v10 08/15] drm/scheduler: " Rob Clark
2023-03-08 15:53 ` [PATCH v10 09/15] drm/syncobj: Add deadline support for syncobj waits Rob Clark
2023-03-17 19:08   ` [Intel-gfx] " Faith Ekstrand
2023-03-17 19:38     ` Rob Clark
2023-03-18 16:07     ` Rob Clark
2023-03-28 14:24   ` Tvrtko Ursulin
2023-03-08 15:53 ` [PATCH v10 10/15] drm/vblank: Add helper to get next vblank time Rob Clark
2023-03-08 15:53 ` [PATCH v10 11/15] drm/atomic-helper: Set fence deadline for vblank Rob Clark
2023-03-31 20:44   ` Nathan Chancellor
2023-03-31 22:14     ` Rob Clark
2023-03-31 23:30       ` Nathan Chancellor
2023-04-01 15:39         ` Rob Clark
2023-04-04 17:22   ` Dmitry Baryshkov
2023-04-04 19:16     ` Daniel Vetter
2023-04-04 21:53       ` Dmitry Baryshkov [this message]
2023-04-05  7:58         ` Daniel Vetter
2023-03-08 15:53 ` [PATCH v10 12/15] drm/msm: Add deadline based boost support Rob Clark
2023-03-08 15:53 ` [PATCH v10 13/15] drm/msm: Add wait-boost support Rob Clark
2023-03-08 15:53 ` [PATCH v10 14/15] drm/msm/atomic: Switch to vblank_start helper Rob Clark
2023-03-08 15:53 ` [PATCH v10 15/15] drm/i915: Add deadline based boost support Rob Clark
2023-03-09 10:21 ` [PATCH v10 00/15] dma-fence: Deadline awareness Pekka Paalanen
2023-03-16 21:22 ` Rob Clark
2023-03-27 19:05 ` Matt Turner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=198c42ad-73de-9e9d-23d4-f36cb6840b5d@linaro.org \
    --to=dmitry.baryshkov@linaro.org \
    --cc=ckoenig.leichtzumerken@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luben.tuikov@amd.com \
    --cc=mattst88@gmail.com \
    --cc=robdclark@chromium.org \
    --cc=robdclark@gmail.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).