All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Rob Clark <robdclark@gmail.com>
Cc: "Rob Clark" <robdclark@chromium.org>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Christian König" <ckoenig.leichtzumerken@gmail.com>,
	intel-gfx@lists.freedesktop.org,
	"Bas Nieuwenhuizen" <bas@basnieuwenhuizen.nl>,
	"open list" <linux-kernel@vger.kernel.org>,
	dri-devel@lists.freedesktop.org,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"David Airlie" <airlied@gmail.com>,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Matt Turner" <mattst88@gmail.com>,
	freedreno@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v10 11/15] drm/atomic-helper: Set fence deadline for vblank
Date: Fri, 31 Mar 2023 13:44:12 -0700	[thread overview]
Message-ID: <20230331204412.GA396777@dev-arch.thelio-3990X> (raw)
In-Reply-To: <20230308155322.344664-12-robdclark@gmail.com>

Hi Rob,

On Wed, Mar 08, 2023 at 07:53:02AM -0800, 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>

I apologize if this has already been reported or fixed, I searched lore
but did not find anything.

This change as commit d39e48ca80c0 ("drm/atomic-helper: Set fence
deadline for vblank") in -next causes a hang while running LTP's
read_all test on /proc on my Ampere Altra system (it seems it is hanging
on a pagemap file?). Additionally, I have this splat in dmesg, which
seems related based on the call stack.

[   20.542591] fbcon: Taking over console
[   20.550772] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000074
[   20.550776] Mem abort info:
[   20.550777]   ESR = 0x0000000096000004
[   20.550779]   EC = 0x25: DABT (current EL), IL = 32 bits
[   20.550781]   SET = 0, FnV = 0
[   20.550782]   EA = 0, S1PTW = 0
[   20.550784]   FSC = 0x04: level 0 translation fault
[   20.550785] Data abort info:
[   20.550786]   ISV = 0, ISS = 0x00000004
[   20.550788]   CM = 0, WnR = 0
[   20.550789] user pgtable: 4k pages, 48-bit VAs, pgdp=0000080009d16000
[   20.550791] [0000000000000074] pgd=0000000000000000, p4d=0000000000000000
[   20.550796] Internal error: Oops: 0000000096000004 [#1] SMP
[   20.550800] Modules linked in: ip6table_nat tun nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 rfkill ip_set nf_tables nfnetlink qrtr sunrpc binfmt_misc vfat fat xfs snd_usb_audio snd_hwdep snd_usbmidi_lib snd_seq snd_pcm snd_rawmidi snd_timer snd_seq_device snd soundcore joydev mc ipmi_ssif ipmi_devintf ipmi_msghandler arm_spe_pmu arm_cmn arm_dsu_pmu arm_dmc620_pmu cppc_cpufreq loop zram crct10dif_ce polyval_ce nvme polyval_generic ghash_ce sbsa_gwdt igb nvme_core ast nvme_common i2c_algo_bit xgene_hwmon gpio_dwapb scsi_dh_rdac scsi_dh_emc scsi_dh_alua ip6_tables ip_tables dm_multipath fuse
[   20.550869] CPU: 12 PID: 469 Comm: kworker/12:1 Not tainted 6.3.0-rc2-00008-gd39e48ca80c0 #1
[   20.550872] Hardware name: ADLINK AVA Developer Platform/AVA Developer Platform, BIOS TianoCore 2.04.100.07 (SYS: 2.06.20220308) 09/08/2022
[   20.550875] Workqueue: events fbcon_register_existing_fbs
[   20.550884] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   20.550888] pc : drm_crtc_next_vblank_start+0x2c/0x98
[   20.550894] lr : drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550898] sp : ffff80000d583960
[   20.550900] x29: ffff80000d583960 x28: ffff07ff8fc187b0 x27: 0000000000000000
[   20.550904] x26: ffff07ff99c08c00 x25: 0000000000000038 x24: ffff07ff99c0c000
[   20.550908] x23: 0000000000000001 x22: 0000000000000038 x21: 0000000000000000
[   20.550912] x20: ffff07ff9640a280 x19: 0000000000000000 x18: ffffffffffffffff
[   20.550915] x17: 0000000000000000 x16: ffffb24d2eece1c0 x15: 0000003038303178
[   20.550919] x14: 3032393100000048 x13: 0000000000000000 x12: 0000000000000000
[   20.550923] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffb24d2eeeaca0
[   20.550926] x8 : ffff80000d583628 x7 : 0000080077783000 x6 : 0000000000000000
[   20.550930] x5 : ffff80000d584000 x4 : ffff07ff99c0c000 x3 : 0000000000000130
[   20.550934] x2 : 0000000000000000 x1 : ffff80000d5839c0 x0 : ffff07ff99c0cc08
[   20.550937] Call trace:
[   20.550939]  drm_crtc_next_vblank_start+0x2c/0x98
[   20.550942]  drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550946]  drm_atomic_helper_commit+0xb0/0x188
[   20.550949]  drm_atomic_commit+0xb0/0xf0
[   20.550953]  drm_client_modeset_commit_atomic+0x218/0x280
[   20.550957]  drm_client_modeset_commit_locked+0x64/0x1a0
[   20.550961]  drm_client_modeset_commit+0x38/0x68
[   20.550965]  __drm_fb_helper_restore_fbdev_mode_unlocked+0xb0/0xf8
[   20.550970]  drm_fb_helper_set_par+0x44/0x88
[   20.550973]  fbcon_init+0x1e0/0x4a8
[   20.550976]  visual_init+0xbc/0x118
[   20.550981]  do_bind_con_driver.isra.0+0x194/0x3a0
[   20.550984]  do_take_over_console+0x50/0x70
[   20.550987]  do_fbcon_takeover+0x74/0xf8
[   20.550989]  do_fb_registered+0x13c/0x158
[   20.550992]  fbcon_register_existing_fbs+0x78/0xc0
[   20.550995]  process_one_work+0x1ec/0x478
[   20.551000]  worker_thread+0x74/0x418
[   20.551002]  kthread+0xec/0x100
[   20.551005]  ret_from_fork+0x10/0x20
[   20.551011] Code: f9400004 b9409013 f940a082 9ba30a73 (b9407662) 
[   20.551013] ---[ end trace 0000000000000000 ]---

If there is any additional information that I can provide or patches I
can test, I am more than happy to do so.

Cheers,
Nathan

# bad: [4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5] Add linux-next specific files for 20230331
# good: [b2bc47e9b2011a183f9d3d3454a294a938082fb9] Merge tag 'net-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
git bisect start '4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5' 'b2bc47e9b2011a183f9d3d3454a294a938082fb9'
# good: [ed5f95f3349003d74a4a11b27b0f05d6794c382a] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect good ed5f95f3349003d74a4a11b27b0f05d6794c382a
# bad: [85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt.git
git bisect bad 85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b
# bad: [fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f] Merge branch 'msm-next' of https://gitlab.freedesktop.org/drm/msm.git
git bisect bad fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f
# good: [90031bc33f7525f0cc7a9ef0b1df62a1a4463382] Merge tag 'amd-drm-next-6.4-2023-03-17' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
git bisect good 90031bc33f7525f0cc7a9ef0b1df62a1a4463382
# good: [d4e04817db670083aed73de1fadd3b21758e69ba] drm/amdgpu: Return from switch early for EEPROM I2C address
git bisect good d4e04817db670083aed73de1fadd3b21758e69ba
# good: [70e360f9b548d99f959668d4f047d1363d42fe8e] drm: exynos: dsi: Consolidate component and bridge
git bisect good 70e360f9b548d99f959668d4f047d1363d42fe8e
# bad: [0b43595d0cbb06736d1e572e79e29a410a273573] Merge branch 'drm-next' of https://gitlab.freedesktop.org/agd5f/linux
git bisect bad 0b43595d0cbb06736d1e572e79e29a410a273573
# good: [fbb3b3500f76ec8b741bd2d0e761ca3e856ad924] dt-bindings: display: boe,tv101wum-nl6: document rotation
git bisect good fbb3b3500f76ec8b741bd2d0e761ca3e856ad924
# bad: [82bbec189ab34873688484cd14189a5392946fbb] Merge v6.3-rc4 into drm-next
git bisect bad 82bbec189ab34873688484cd14189a5392946fbb
# bad: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank
git bisect bad d39e48ca80c0960b039cb38633957f0040f63e1a
# good: [d7d5a21dd6b4706c04fbba5d25db8da5f25aab68] dma-buf/dma-resv: Add a way to set fence deadline
git bisect good d7d5a21dd6b4706c04fbba5d25db8da5f25aab68
# good: [f3823da7e4ba7d4781375c2bb786a8a78efc6591] drm/scheduler: Add fence deadline support
git bisect good f3823da7e4ba7d4781375c2bb786a8a78efc6591
# good: [b2c077d001b612b1f34f7e528b2dc6072bd6794e] drm/vblank: Add helper to get next vblank time
git bisect good b2c077d001b612b1f34f7e528b2dc6072bd6794e
# first bad commit: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: Rob Clark <robdclark@gmail.com>
Cc: "Rob Clark" <robdclark@chromium.org>,
	"Christian König" <ckoenig.leichtzumerken@gmail.com>,
	intel-gfx@lists.freedesktop.org,
	"open list" <linux-kernel@vger.kernel.org>,
	dri-devel@lists.freedesktop.org,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"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: Fri, 31 Mar 2023 13:44:12 -0700	[thread overview]
Message-ID: <20230331204412.GA396777@dev-arch.thelio-3990X> (raw)
In-Reply-To: <20230308155322.344664-12-robdclark@gmail.com>

Hi Rob,

On Wed, Mar 08, 2023 at 07:53:02AM -0800, 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>

I apologize if this has already been reported or fixed, I searched lore
but did not find anything.

This change as commit d39e48ca80c0 ("drm/atomic-helper: Set fence
deadline for vblank") in -next causes a hang while running LTP's
read_all test on /proc on my Ampere Altra system (it seems it is hanging
on a pagemap file?). Additionally, I have this splat in dmesg, which
seems related based on the call stack.

[   20.542591] fbcon: Taking over console
[   20.550772] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000074
[   20.550776] Mem abort info:
[   20.550777]   ESR = 0x0000000096000004
[   20.550779]   EC = 0x25: DABT (current EL), IL = 32 bits
[   20.550781]   SET = 0, FnV = 0
[   20.550782]   EA = 0, S1PTW = 0
[   20.550784]   FSC = 0x04: level 0 translation fault
[   20.550785] Data abort info:
[   20.550786]   ISV = 0, ISS = 0x00000004
[   20.550788]   CM = 0, WnR = 0
[   20.550789] user pgtable: 4k pages, 48-bit VAs, pgdp=0000080009d16000
[   20.550791] [0000000000000074] pgd=0000000000000000, p4d=0000000000000000
[   20.550796] Internal error: Oops: 0000000096000004 [#1] SMP
[   20.550800] Modules linked in: ip6table_nat tun nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 rfkill ip_set nf_tables nfnetlink qrtr sunrpc binfmt_misc vfat fat xfs snd_usb_audio snd_hwdep snd_usbmidi_lib snd_seq snd_pcm snd_rawmidi snd_timer snd_seq_device snd soundcore joydev mc ipmi_ssif ipmi_devintf ipmi_msghandler arm_spe_pmu arm_cmn arm_dsu_pmu arm_dmc620_pmu cppc_cpufreq loop zram crct10dif_ce polyval_ce nvme polyval_generic ghash_ce sbsa_gwdt igb nvme_core ast nvme_common i2c_algo_bit xgene_hwmon gpio_dwapb scsi_dh_rdac scsi_dh_emc scsi_dh_alua ip6_tables ip_tables dm_multipath fuse
[   20.550869] CPU: 12 PID: 469 Comm: kworker/12:1 Not tainted 6.3.0-rc2-00008-gd39e48ca80c0 #1
[   20.550872] Hardware name: ADLINK AVA Developer Platform/AVA Developer Platform, BIOS TianoCore 2.04.100.07 (SYS: 2.06.20220308) 09/08/2022
[   20.550875] Workqueue: events fbcon_register_existing_fbs
[   20.550884] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   20.550888] pc : drm_crtc_next_vblank_start+0x2c/0x98
[   20.550894] lr : drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550898] sp : ffff80000d583960
[   20.550900] x29: ffff80000d583960 x28: ffff07ff8fc187b0 x27: 0000000000000000
[   20.550904] x26: ffff07ff99c08c00 x25: 0000000000000038 x24: ffff07ff99c0c000
[   20.550908] x23: 0000000000000001 x22: 0000000000000038 x21: 0000000000000000
[   20.550912] x20: ffff07ff9640a280 x19: 0000000000000000 x18: ffffffffffffffff
[   20.550915] x17: 0000000000000000 x16: ffffb24d2eece1c0 x15: 0000003038303178
[   20.550919] x14: 3032393100000048 x13: 0000000000000000 x12: 0000000000000000
[   20.550923] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffb24d2eeeaca0
[   20.550926] x8 : ffff80000d583628 x7 : 0000080077783000 x6 : 0000000000000000
[   20.550930] x5 : ffff80000d584000 x4 : ffff07ff99c0c000 x3 : 0000000000000130
[   20.550934] x2 : 0000000000000000 x1 : ffff80000d5839c0 x0 : ffff07ff99c0cc08
[   20.550937] Call trace:
[   20.550939]  drm_crtc_next_vblank_start+0x2c/0x98
[   20.550942]  drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550946]  drm_atomic_helper_commit+0xb0/0x188
[   20.550949]  drm_atomic_commit+0xb0/0xf0
[   20.550953]  drm_client_modeset_commit_atomic+0x218/0x280
[   20.550957]  drm_client_modeset_commit_locked+0x64/0x1a0
[   20.550961]  drm_client_modeset_commit+0x38/0x68
[   20.550965]  __drm_fb_helper_restore_fbdev_mode_unlocked+0xb0/0xf8
[   20.550970]  drm_fb_helper_set_par+0x44/0x88
[   20.550973]  fbcon_init+0x1e0/0x4a8
[   20.550976]  visual_init+0xbc/0x118
[   20.550981]  do_bind_con_driver.isra.0+0x194/0x3a0
[   20.550984]  do_take_over_console+0x50/0x70
[   20.550987]  do_fbcon_takeover+0x74/0xf8
[   20.550989]  do_fb_registered+0x13c/0x158
[   20.550992]  fbcon_register_existing_fbs+0x78/0xc0
[   20.550995]  process_one_work+0x1ec/0x478
[   20.551000]  worker_thread+0x74/0x418
[   20.551002]  kthread+0xec/0x100
[   20.551005]  ret_from_fork+0x10/0x20
[   20.551011] Code: f9400004 b9409013 f940a082 9ba30a73 (b9407662) 
[   20.551013] ---[ end trace 0000000000000000 ]---

If there is any additional information that I can provide or patches I
can test, I am more than happy to do so.

Cheers,
Nathan

# bad: [4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5] Add linux-next specific files for 20230331
# good: [b2bc47e9b2011a183f9d3d3454a294a938082fb9] Merge tag 'net-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
git bisect start '4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5' 'b2bc47e9b2011a183f9d3d3454a294a938082fb9'
# good: [ed5f95f3349003d74a4a11b27b0f05d6794c382a] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect good ed5f95f3349003d74a4a11b27b0f05d6794c382a
# bad: [85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt.git
git bisect bad 85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b
# bad: [fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f] Merge branch 'msm-next' of https://gitlab.freedesktop.org/drm/msm.git
git bisect bad fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f
# good: [90031bc33f7525f0cc7a9ef0b1df62a1a4463382] Merge tag 'amd-drm-next-6.4-2023-03-17' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
git bisect good 90031bc33f7525f0cc7a9ef0b1df62a1a4463382
# good: [d4e04817db670083aed73de1fadd3b21758e69ba] drm/amdgpu: Return from switch early for EEPROM I2C address
git bisect good d4e04817db670083aed73de1fadd3b21758e69ba
# good: [70e360f9b548d99f959668d4f047d1363d42fe8e] drm: exynos: dsi: Consolidate component and bridge
git bisect good 70e360f9b548d99f959668d4f047d1363d42fe8e
# bad: [0b43595d0cbb06736d1e572e79e29a410a273573] Merge branch 'drm-next' of https://gitlab.freedesktop.org/agd5f/linux
git bisect bad 0b43595d0cbb06736d1e572e79e29a410a273573
# good: [fbb3b3500f76ec8b741bd2d0e761ca3e856ad924] dt-bindings: display: boe,tv101wum-nl6: document rotation
git bisect good fbb3b3500f76ec8b741bd2d0e761ca3e856ad924
# bad: [82bbec189ab34873688484cd14189a5392946fbb] Merge v6.3-rc4 into drm-next
git bisect bad 82bbec189ab34873688484cd14189a5392946fbb
# bad: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank
git bisect bad d39e48ca80c0960b039cb38633957f0040f63e1a
# good: [d7d5a21dd6b4706c04fbba5d25db8da5f25aab68] dma-buf/dma-resv: Add a way to set fence deadline
git bisect good d7d5a21dd6b4706c04fbba5d25db8da5f25aab68
# good: [f3823da7e4ba7d4781375c2bb786a8a78efc6591] drm/scheduler: Add fence deadline support
git bisect good f3823da7e4ba7d4781375c2bb786a8a78efc6591
# good: [b2c077d001b612b1f34f7e528b2dc6072bd6794e] drm/vblank: Add helper to get next vblank time
git bisect good b2c077d001b612b1f34f7e528b2dc6072bd6794e
# first bad commit: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: Rob Clark <robdclark@gmail.com>
Cc: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
	intel-gfx@lists.freedesktop.org,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Christian König" <ckoenig.leichtzumerken@gmail.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Matt Turner" <mattst88@gmail.com>,
	"Bas Nieuwenhuizen" <bas@basnieuwenhuizen.nl>,
	"Rob Clark" <robdclark@chromium.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"David Airlie" <airlied@gmail.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"open list" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v10 11/15] drm/atomic-helper: Set fence deadline for vblank
Date: Fri, 31 Mar 2023 13:44:12 -0700	[thread overview]
Message-ID: <20230331204412.GA396777@dev-arch.thelio-3990X> (raw)
In-Reply-To: <20230308155322.344664-12-robdclark@gmail.com>

Hi Rob,

On Wed, Mar 08, 2023 at 07:53:02AM -0800, 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>

I apologize if this has already been reported or fixed, I searched lore
but did not find anything.

This change as commit d39e48ca80c0 ("drm/atomic-helper: Set fence
deadline for vblank") in -next causes a hang while running LTP's
read_all test on /proc on my Ampere Altra system (it seems it is hanging
on a pagemap file?). Additionally, I have this splat in dmesg, which
seems related based on the call stack.

[   20.542591] fbcon: Taking over console
[   20.550772] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000074
[   20.550776] Mem abort info:
[   20.550777]   ESR = 0x0000000096000004
[   20.550779]   EC = 0x25: DABT (current EL), IL = 32 bits
[   20.550781]   SET = 0, FnV = 0
[   20.550782]   EA = 0, S1PTW = 0
[   20.550784]   FSC = 0x04: level 0 translation fault
[   20.550785] Data abort info:
[   20.550786]   ISV = 0, ISS = 0x00000004
[   20.550788]   CM = 0, WnR = 0
[   20.550789] user pgtable: 4k pages, 48-bit VAs, pgdp=0000080009d16000
[   20.550791] [0000000000000074] pgd=0000000000000000, p4d=0000000000000000
[   20.550796] Internal error: Oops: 0000000096000004 [#1] SMP
[   20.550800] Modules linked in: ip6table_nat tun nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 rfkill ip_set nf_tables nfnetlink qrtr sunrpc binfmt_misc vfat fat xfs snd_usb_audio snd_hwdep snd_usbmidi_lib snd_seq snd_pcm snd_rawmidi snd_timer snd_seq_device snd soundcore joydev mc ipmi_ssif ipmi_devintf ipmi_msghandler arm_spe_pmu arm_cmn arm_dsu_pmu arm_dmc620_pmu cppc_cpufreq loop zram crct10dif_ce polyval_ce nvme polyval_generic ghash_ce sbsa_gwdt igb nvme_core ast nvme_common i2c_algo_bit xgene_hwmon gpio_dwapb scsi_dh_rdac scsi_dh_emc scsi_dh_alua ip6_tables ip_tables dm_multipath fuse
[   20.550869] CPU: 12 PID: 469 Comm: kworker/12:1 Not tainted 6.3.0-rc2-00008-gd39e48ca80c0 #1
[   20.550872] Hardware name: ADLINK AVA Developer Platform/AVA Developer Platform, BIOS TianoCore 2.04.100.07 (SYS: 2.06.20220308) 09/08/2022
[   20.550875] Workqueue: events fbcon_register_existing_fbs
[   20.550884] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   20.550888] pc : drm_crtc_next_vblank_start+0x2c/0x98
[   20.550894] lr : drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550898] sp : ffff80000d583960
[   20.550900] x29: ffff80000d583960 x28: ffff07ff8fc187b0 x27: 0000000000000000
[   20.550904] x26: ffff07ff99c08c00 x25: 0000000000000038 x24: ffff07ff99c0c000
[   20.550908] x23: 0000000000000001 x22: 0000000000000038 x21: 0000000000000000
[   20.550912] x20: ffff07ff9640a280 x19: 0000000000000000 x18: ffffffffffffffff
[   20.550915] x17: 0000000000000000 x16: ffffb24d2eece1c0 x15: 0000003038303178
[   20.550919] x14: 3032393100000048 x13: 0000000000000000 x12: 0000000000000000
[   20.550923] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffb24d2eeeaca0
[   20.550926] x8 : ffff80000d583628 x7 : 0000080077783000 x6 : 0000000000000000
[   20.550930] x5 : ffff80000d584000 x4 : ffff07ff99c0c000 x3 : 0000000000000130
[   20.550934] x2 : 0000000000000000 x1 : ffff80000d5839c0 x0 : ffff07ff99c0cc08
[   20.550937] Call trace:
[   20.550939]  drm_crtc_next_vblank_start+0x2c/0x98
[   20.550942]  drm_atomic_helper_wait_for_fences+0x90/0x240
[   20.550946]  drm_atomic_helper_commit+0xb0/0x188
[   20.550949]  drm_atomic_commit+0xb0/0xf0
[   20.550953]  drm_client_modeset_commit_atomic+0x218/0x280
[   20.550957]  drm_client_modeset_commit_locked+0x64/0x1a0
[   20.550961]  drm_client_modeset_commit+0x38/0x68
[   20.550965]  __drm_fb_helper_restore_fbdev_mode_unlocked+0xb0/0xf8
[   20.550970]  drm_fb_helper_set_par+0x44/0x88
[   20.550973]  fbcon_init+0x1e0/0x4a8
[   20.550976]  visual_init+0xbc/0x118
[   20.550981]  do_bind_con_driver.isra.0+0x194/0x3a0
[   20.550984]  do_take_over_console+0x50/0x70
[   20.550987]  do_fbcon_takeover+0x74/0xf8
[   20.550989]  do_fb_registered+0x13c/0x158
[   20.550992]  fbcon_register_existing_fbs+0x78/0xc0
[   20.550995]  process_one_work+0x1ec/0x478
[   20.551000]  worker_thread+0x74/0x418
[   20.551002]  kthread+0xec/0x100
[   20.551005]  ret_from_fork+0x10/0x20
[   20.551011] Code: f9400004 b9409013 f940a082 9ba30a73 (b9407662) 
[   20.551013] ---[ end trace 0000000000000000 ]---

If there is any additional information that I can provide or patches I
can test, I am more than happy to do so.

Cheers,
Nathan

# bad: [4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5] Add linux-next specific files for 20230331
# good: [b2bc47e9b2011a183f9d3d3454a294a938082fb9] Merge tag 'net-6.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
git bisect start '4b0f4525dc4fe8af17b3daefe585f0c2eb0fe0a5' 'b2bc47e9b2011a183f9d3d3454a294a938082fb9'
# good: [ed5f95f3349003d74a4a11b27b0f05d6794c382a] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect good ed5f95f3349003d74a4a11b27b0f05d6794c382a
# bad: [85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt.git
git bisect bad 85f7d1bfa30a05df2c9d8a0e9f6b1f23b4a6f13b
# bad: [fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f] Merge branch 'msm-next' of https://gitlab.freedesktop.org/drm/msm.git
git bisect bad fbd0f79f200f8e5cb73fb3d7b788de09a8f33a6f
# good: [90031bc33f7525f0cc7a9ef0b1df62a1a4463382] Merge tag 'amd-drm-next-6.4-2023-03-17' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
git bisect good 90031bc33f7525f0cc7a9ef0b1df62a1a4463382
# good: [d4e04817db670083aed73de1fadd3b21758e69ba] drm/amdgpu: Return from switch early for EEPROM I2C address
git bisect good d4e04817db670083aed73de1fadd3b21758e69ba
# good: [70e360f9b548d99f959668d4f047d1363d42fe8e] drm: exynos: dsi: Consolidate component and bridge
git bisect good 70e360f9b548d99f959668d4f047d1363d42fe8e
# bad: [0b43595d0cbb06736d1e572e79e29a410a273573] Merge branch 'drm-next' of https://gitlab.freedesktop.org/agd5f/linux
git bisect bad 0b43595d0cbb06736d1e572e79e29a410a273573
# good: [fbb3b3500f76ec8b741bd2d0e761ca3e856ad924] dt-bindings: display: boe,tv101wum-nl6: document rotation
git bisect good fbb3b3500f76ec8b741bd2d0e761ca3e856ad924
# bad: [82bbec189ab34873688484cd14189a5392946fbb] Merge v6.3-rc4 into drm-next
git bisect bad 82bbec189ab34873688484cd14189a5392946fbb
# bad: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank
git bisect bad d39e48ca80c0960b039cb38633957f0040f63e1a
# good: [d7d5a21dd6b4706c04fbba5d25db8da5f25aab68] dma-buf/dma-resv: Add a way to set fence deadline
git bisect good d7d5a21dd6b4706c04fbba5d25db8da5f25aab68
# good: [f3823da7e4ba7d4781375c2bb786a8a78efc6591] drm/scheduler: Add fence deadline support
git bisect good f3823da7e4ba7d4781375c2bb786a8a78efc6591
# good: [b2c077d001b612b1f34f7e528b2dc6072bd6794e] drm/vblank: Add helper to get next vblank time
git bisect good b2c077d001b612b1f34f7e528b2dc6072bd6794e
# first bad commit: [d39e48ca80c0960b039cb38633957f0040f63e1a] drm/atomic-helper: Set fence deadline for vblank

  reply	other threads:[~2023-03-31 20:44 UTC|newest]

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

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=20230331204412.GA396777@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=airlied@gmail.com \
    --cc=bas@basnieuwenhuizen.nl \
    --cc=ckoenig.leichtzumerken@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel@ffwll.ch \
    --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=mripard@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.