Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry: -28" after running for some period #5674

Open
6by9 opened this issue Oct 23, 2023 · 93 comments · Fixed by #5823
Open
Assignees

Comments

@6by9
Copy link
Contributor

6by9 commented Oct 23, 2023

Describe the bug

Noted from #5649, https://forums.raspberrypi.com/viewtopic.php?t=357826, and https://forums.raspberrypi.com/viewtopic.php?t=358177

It looks like we have a memory leak of dlist entries somewhere.

Steps to reproduce the behaviour

See the other threads

Device (s)

Raspberry Pi 4 Mod. B

System

Bookworm or Ubuntu 23.10

Logs

No response

Additional context

No response

@6by9 6by9 self-assigned this Oct 23, 2023
@6by9
Copy link
Contributor Author

6by9 commented Oct 26, 2023

For anyone watching this issue, #5684 addresses a couple of issues but I haven't been able to reproduce exhausting the DLIST memory.

If anyone wants to test, then sudo rpi-update pulls/5684 should get the CI build once complete.

@WeirdAnalyst
Copy link

Same for me. See below:

Oct 27 00:29:54 kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry: -28
Oct 27 00:29:54 mymachine last message buffered 2 times
Oct 27 00:29:54 mymachine kernel: ------------[ cut here ]------------
Oct 27 00:29:54 mymachine kernel: atomic remove_fb failed with -28
Oct 27 00:29:54 mymachine kernel: WARNING: CPU: 2 PID: 6471 at drivers/gpu/drm/drm_framebuffer.c:1130 drm_framebuffer_remove+0x4b8/0x510 [drm]
Oct 27 00:29:54 mymachine kernel: Modules linked in: uinput rfcomm fuse 8021q garp stp llc xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter ip_tables x_ta
Oct 27 00:29:54 mymachine kernel: CPU: 2 PID: 6471 Comm: kworker/2:3 Tainted: G C 6.1.58-v8 #1
Oct 27 00:29:54 mymachine kernel: Hardware name: Raspberry Pi 4 Model B Rev 1.4 (DT)
Oct 27 00:29:54 mymachine kernel: Workqueue: events drm_mode_rmfb_work_fn [drm]
Oct 27 00:29:54 mymachine kernel: pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Oct 27 00:29:54 mymachine kernel: pc : drm_framebuffer_remove+0x4b8/0x510 [drm]
Oct 27 00:29:54 mymachine kernel: lr : drm_framebuffer_remove+0x4b8/0x510 [drm]
Oct 27 00:29:54 mymachine kernel: sp : ffffffc00b643cb0
Oct 27 00:29:54 mymachine kernel: x29: ffffffc00b643cb0 x28: ffffff804214f000 x27: ffffff81079a12b8
Oct 27 00:29:54 mymachine kernel: x26: ffffffd95606a460 x25: 0000000000000000 x24: 0000000000000010
Oct 27 00:29:54 mymachine kernel: x23: 00000000ffffffe4 x22: ffffff81079a12c0 x21: ffffff81079a1000
Oct 27 00:29:54 mymachine kernel: x20: ffffff8089b76800 x19: ffffff80ea473000 x18: 00000000fffffffe
Oct 27 00:29:54 mymachine kernel: x17: 0000000000000000 x16: ffffffd9c02884c0 x15: ffffffc00b643890
Oct 27 00:29:54 mymachine kernel: x14: 0000000000000000 x13: 38322d2068746977 x12: 2064656c69616620
Oct 27 00:29:54 mymachine kernel: x11: fffffffffffe0000 x10: ffffffd9c18947c0 x9 : ffffffd9c02face4
Oct 27 00:29:54 mymachine kernel: x8 : 00000000ffffefff x7 : ffffffd9c18947c0 x6 : 80000000fffff000
Oct 27 00:29:54 mymachine kernel: x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000027
Oct 27 00:29:54 mymachine kernel: x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffffff81d6c4dd00
Oct 27 00:29:54 mymachine kernel: Call trace:
Oct 27 00:29:54 mymachine kernel: drm_framebuffer_remove+0x4b8/0x510 [drm]
Oct 27 00:29:54 mymachine kernel: drm_mode_rmfb_work_fn+0x80/0xac [drm]
Oct 27 00:29:54 mymachine kernel: process_one_work+0x1dc/0x460
Oct 27 00:29:54 mymachine kernel: worker_thread+0x22c/0x43c
Oct 27 00:29:54 mymachine kernel: kthread+0xf8/0x104
Oct 27 00:29:54 mymachine kernel: ret_from_fork+0x10/0x20
Oct 27 00:29:54 mymachine kernel: ---[ end trace 0000000000000000 ]---
Oct 27 00:29:54 mymachine kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry: -28
Oct 27 00:30:07 mymachine last message buffered 50 times
Oct 27 00:31:47 mymachine last message buffered 118 times

@6by9
Copy link
Contributor Author

6by9 commented Oct 27, 2023

Thanks for testing.

PR updated to add a debugfs entry to print out the allocations. You should be able to do sudo cat /sys/kernel/debug/dri/1/hvs_dlist_allocs to print out the allocations. For me with a triple-head Wayfire session running I get

pi@bookworm64:~ $ sudo cat /sys/kernel/debug/dri/1/hvs_dlist_allocs 
Allocated nodes:
node [00000020 + 0000000b]
node [0000002b + 00000011]
node [0000003c + 00000011]
node [00000056 + 00000009]
node [0000005f + 00000011]
node [00000070 + 00000011]
node [00000092 + 00000009]
Stale nodes:
node [0000005f + 00000011] channel 2 frcnt 9
node [0000002b + 00000011] channel 2 frcnt 9

0x20 is the scaling kernel. Entries that are 0x11 bytes long have a primary and a cursor plane, whilst those 0x9 bytes long only have a primary plane. This can also be confirmed via sudo cat /sys/kernel/debug/dri/1/hvs_dlists to list those which currently active.

Knowing what it thinks are allocated vs active when it goes wrong would be very useful.

@WeirdAnalyst
Copy link

Sorry I think I wrote something misleading. I was not meaning that I had the issue after applying your patch. The kernel dump I provided is before before applying it.
Now I applied your patch and all seems OK.
Thank you and sorry for the confusion I have generated.

@6by9
Copy link
Contributor Author

6by9 commented Oct 28, 2023

Sorry I think I wrote something misleading. I was not meaning that I had the issue after applying your patch. The kernel dump I provided is before before applying it. Now I applied your patch and all seems OK. Thank you and sorry for the confusion I have generated.

OK, you had me quite confused that we still appeared to have a leak. Having the debugfs hook to dump out the allocations doesn't hurt anyway.
If anyone else is able to test and confirm that they aren't seeing the error anymore, that would be awesome.

@Brunnis
Copy link

Brunnis commented Oct 28, 2023

I am the one that initially reported the issue on Ubuntu 23.10 in the forum thread. Since there's no easy way of applying the fix in Ubuntu (right?), I have applied it to a Raspberry Pi OS installation instead and so far so good. However, I don't think I've been able to reproduce the issue on RPi OS before the fix, so the fact that it works may not mean that much. I'll continue using the fix and let you know if I run into any issues.

@Dark-Sky
Copy link

Dark-Sky commented Oct 29, 2023

I have a guy on our forums keeps having this issue so I compiled the 6.1.58 kernel with your commits using commit 36ed2f9. He only had time for a short test but he appears to still be having the issue. He is using Gnome with Wayland. I do not seem to have the issue here on XFCE. I get no related output in journalctl while playing like he does.

My terminal output in XFCE:

[ray@jellyfin AKA.2023]$ mpv nasa.ts 
 (+) Video --vid=1 (hevc 3840x2160 59.940fps)
 (+) Audio --aid=1 (mp2 2ch 48000Hz)
     Audio --aid=2 (aac 2ch 48000Hz)
Using hardware decoding (drm).
 (+) Video --vid=1 (hevc 3840x2160 59.940fps)
 (+) Audio --aid=1 (mp2 2ch 48000Hz)
     Audio --aid=2 (aac 2ch 48000Hz)
     Subs  --sid=1 (*) (eia_608)
AO: [pipewire] 48000Hz stereo 2ch s16p
VO: [gpu] 3840x2160 drm_prime[rpi4_8]
AV: 00:04:23 / 00:04:24 (100%) A-V:  0.000 Dropped: 8285
Exiting... (End of file)

Him playing with mpv compiled with jc-kynesim's ffmpeg6:

oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: rpivid_h265_start: (3840x2160)
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: SPS changed
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: PPS changed
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: Missing DPB ent 0, timestamp=0
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: Missing DPB ent 1, timestamp=0
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: Missing DPB ent 2, timestamp=0
oct. 29 19:07:54 bloodmoon-pc kernel: rpivid feb10000.codec: Missing DPB ent 3, timestamp=0
oct. 29 19:07:55 bloodmoon-pc kernel: vc4-drm gpu: swiotlb buffer is full (sz: 6352896 bytes), total 32768 (slots), used 199 (slots)
oct. 29 19:07:55 bloodmoon-pc kernel: vc4-drm gpu: swiotlb buffer is full (sz: 5558272 bytes), total 32768 (slots), used 587 (slots)
oct. 29 19:07:56 bloodmoon-pc kernel: vc4-drm gpu: swiotlb buffer is full (sz: 6496256 bytes), total 32768 (slots), used 129 (slots)
oct. 29 19:07:59 bloodmoon-pc kernel: rpivid feb10000.codec: PPS changed
oct. 29 19:08:02 bloodmoon-pc kernel: rpivid feb10000.codec: PPS changed
oct. 29 19:08:02 bloodmoon-pc kernel: rpivid feb10000.codec: Missing DPB ent 0, timestamp=0

cma: cma_alloc: linux,cma: alloc failed, req-size: 4050 pages, ret: -12
v3d fec00000.v3d: MMU error from client CLE (4) at 0x1e8a1000, pte invalid

Requested info on his pi4:

sudo cat /sys/kernel/debug/dri/1/hvs_dlist_allocs
Allocated nodes:
node [00000020 + 0000000b]
node [0000002b + 00000009]
node [0000003d + 00000009]
Stale nodes:
node [0000002b + 00000009] channel 0 frcnt 35

@6by9
Copy link
Contributor Author

6by9 commented Oct 30, 2023

@Dark-Sky That log doesn't include the
ERROR Failed to allocate DLIST entry: -28
error that this issue is about.

swiotlb buffer is full is a little worrying as I wouldn't expect there to need to be swiotlb usage under most situations. linux,cma: alloc failed is a totally different error.

@Brunnis
Copy link

Brunnis commented Oct 30, 2023

swiotlb buffer is full is a little worrying as I wouldn't expect there to need to be swiotlb usage under most situations.

I've been seeing that a lot on my Pi 4 as well. I believe on both RPi OS Bookworm and Ubuntu 23.10. Haven't made a report on it yet.

@Dark-Sky
Copy link

Dark-Sky commented Oct 30, 2023

@Dark-Sky That log doesn't include the ERROR Failed to allocate DLIST entry: -28 error that this issue is about.

I had questioned him about that earlier and he said he was getting the same error when he succeeded to open a TTY. Most of the time his system would just lock up was his response later on.

leaak

@Dark-Sky
Copy link

Dark-Sky commented Nov 1, 2023

Our forum member had some more time to test today and reported this:

I think that “vc4-drm gpu: swiotlb buffer is full” is a different problem than

in a tty :

vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry: -28

or in journalctl

Page flip failed: drmModeAtomicCommit: No space available on the device

who make the freezes.

For the moment no more problems with pull/5684. I will continue to report.

@6by9
Copy link
Contributor Author

6by9 commented Nov 1, 2023

For the moment no more problems with pull/5684. I will continue to report.

So does that mean it is working?

If not, what kernel version are they actually running? And what client software?

Some of the reports providing the WARN backtrace including drm_mode_rmfb_work_fn is weird.
drm_mode_rmfb is generally called due to drmModeRmFB in userspace, which is destroying a FB mapping of a bo or DMABUF. This isn't something that I would expect to be happening that often, as you generally addFB during init, and destroy at exit. drm_framebuffer_remove is then doing a commit if the FB was active when removed.

I'm wondering if this is on some app being killed, hence cleanup coming in and freeing all resources in one hit, thereby generating many commits. Even so, if not directly driving DRM to add lots of planes, then I wouldn't expect there to be lots of active FBs needing actually removing, but the accounting may not be that finely grained.

@Dark-Sky
Copy link

Dark-Sky commented Nov 1, 2023

So does that mean it is working?

I asked again today and this was his response still testing the using the kernel I compiled with your commits you had done above:

I have enabled a maximum of gnome-shell extension and apart from vc4-drm gpu: swiotlb buffer is full, I didn’t have any crash. But I think it takes a few days to be sure.

Seems to me it should have locked up by now.

@6by9
Copy link
Contributor Author

6by9 commented Nov 2, 2023

Seems to me it should have locked up by now.

That sounds positive. I've updated the PR, and will look to get it merged now.

@42piratas
Copy link

Any news on this?
+1 with devices with the same problem.

@6by9
Copy link
Contributor Author

6by9 commented Nov 18, 2023

Any news on this? +1 with devices with the same problem.

It was merged on Nov 6th.
It looks like we may not have had an rpi-update kernel build since then.

@popcornmix
Copy link
Collaborator

rpi-update should now include this fix.

@42piratas
Copy link

Here, the issue persists after rpi-update

2023-11-22T09:57:54.225502-03:00 optimus kernel: [90169.384329] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T09:59:42.333493-03:00 optimus kernel: [90277.493993] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T10:01:57.469504-03:00 optimus kernel: [90412.630571] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T10:03:45.577410-03:00 optimus kernel: [90520.739007] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T10:06:00.717403-03:00 optimus kernel: [90655.881635] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T10:07:48.825415-03:00 optimus kernel: [90763.990886] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28
2023-11-22T10:10:03.953545-03:00 optimus kernel: [90899.120268] vc4-drm gpu: [drm] *ERROR* Failed to allocate DLIST entry: -28

@pelwell
Copy link
Contributor

pelwell commented Nov 22, 2023

What does uname -a report?

@42piratas
Copy link

What does uname -a report?

Linux optimus 6.5.0-1007-raspi #9-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 7 18:36:01 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

@pelwell
Copy link
Contributor

pelwell commented Nov 22, 2023

You're not running the rpi-update kernel, so you won't have the fix.

@popcornmix
Copy link
Collaborator

Are you on Ubuntu? rpi-update is designed for RPiOS.

If you are on another OS, you'll have to check with their developers on how to get testing kernel updates.

@neo1973
Copy link

neo1973 commented Nov 25, 2023

I got this just now on a RPi3B+ with Arch Linux ARM. The used kernel is 6.1.63-1-rpi-ARCH which is based on 5a0aa24 according to the PKGBUILD. This version already includes #5684 as I understand.

The problem occurred after running Kodi for a couple of days. dmesg:

[273347.082568] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=36. ret=-28

kodi.log:

2023-11-26 00:34:16.307 T:425     error <general>: CDRMAtomic::DrmAtomicCommit - atomic commit failed: No space left on device

@42piratas
Copy link

Are you on Ubuntu? rpi-update is designed for RPiOS.

Yes, I'm on Ubuntu. What should I do?

@popcornmix
Copy link
Collaborator

Yes, I'm on Ubuntu. What should I do?

You'll need to report it to Ubuntu devs, and see if the kernel you are running includes #5684

@TRyan84
Copy link

TRyan84 commented Nov 27, 2023

Hi, same problem here:

CM3+
uname -a
Linux raspberrypi 6.1.63-v7+ #1699 SMP Tue Nov 21 14:59:51 GMT 2023 armv7l GNU/Linux

[300517.627445] vc4-drm soc:gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=8. ret=-28
[300517.646319] vc4-drm soc:gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=8. ret=-28
[300517.672197] vc4-drm soc:gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=8. ret=-28

@tartanpion
Copy link

tartanpion commented Dec 2, 2023

Same problem, using the last kernel with 5684. Gnome-wayland
Linux bloodmoon-pc 6.1.64-2-MANJARO-RPI4 #1 SMP PREEMPT Fri Dec 1 15:47:37 UTC 2023 aarch64 GNU/Linux

Here when playing a video :
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: swiotlb_tbl_map_single: 61 callbacks suppressed
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: swiotlb buffer is full (sz: 1036288 bytes), total 32768 (slots), used 869 (slots)
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28
déc. 02 23:46:57 bloodmoon-pc kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28

Sometimes i have
nov. 11 20:46:13 bloodmoon-pc gnome-shell[1113]: Page flip failed: drmModeAtomicCommit: No space available on the device
or
nov. 24 15:01:28 bloodmoon-pc gnome-shell[1155]: Page flip failed: drmModeSetCursor failed: No space available on the device
nov. 24 15:01:28 bloodmoon-pc gnome-shell[1155]: Cursor update failed: drmModeSetCursor failed: No space available on the device

No TTY available, i need to reboot with ctl alt key. i don't have another PC to ssh and type sudo cat /sys/kernel/debug/dri/1/hvs_dlist_allocs when the crash occurs. (Edit i have configured my smartphone for SSH,waiting another crash now)

It's seems the crash is only with wayland. One week with gnome-Xorg and no crash.

@neo1973
Copy link

neo1973 commented Dec 3, 2023

Had the issue again a couple of times, here the information from the debugfs:

/sys/kernel/debug/dri/128/hvs_dlist_allocs
# cat /sys/kernel/debug/dri/128/hvs_dlist_allocs 
Allocated nodes:
node [00000020 + 0000000b]
node [0000002b + 00000008]
node [00000033 + 00000008]
node [0000003b + 00000008]
node [00000043 + 00000008]
node [0000004b + 00000008]
node [00000053 + 00000008]
node [0000005b + 00000008]
node [00000063 + 00000008]
node [0000006b + 00000008]
node [00000073 + 00000008]
node [0000007b + 00000008]
node [00000083 + 00000008]
node [0000008b + 00000008]
node [00000093 + 00000008]
node [0000009b + 00000008]
node [000000a3 + 00000008]
node [000000ab + 00000008]
node [000000b3 + 00000008]
node [000000bb + 00000008]
node [000000c3 + 00000008]
node [000000cb + 00000008]
node [000000d3 + 00000008]
node [000000db + 00000008]
node [000000e3 + 00000008]
node [000000eb + 00000008]
node [000000f3 + 00000008]
node [000000fb + 00000008]
node [00000103 + 00000008]
node [0000010b + 00000008]
node [00000113 + 00000008]
node [0000011b + 00000008]
node [00000123 + 00000008]
node [0000012b + 00000008]
node [00000133 + 00000008]
node [0000013b + 00000008]
node [00000143 + 00000008]
node [0000014b + 00000008]
node [00000153 + 00000008]
node [0000015b + 00000008]
node [00000163 + 00000008]
node [0000016b + 00000008]
node [00000173 + 00000008]
node [0000017b + 00000008]
node [00000183 + 00000008]
node [0000018b + 00000008]
node [00000193 + 00000008]
node [0000019b + 00000008]
node [000001a3 + 00000008]
node [000001ab + 00000008]
node [000001b3 + 00000008]
node [000001bb + 00000008]
node [000001c3 + 00000008]
node [000001cb + 00000008]
node [000001d3 + 00000008]
node [000001db + 00000008]
node [000001e3 + 00000008]
node [000001eb + 00000008]
node [000001f3 + 00000008]
node [000001fb + 00000008]
node [00000203 + 00000008]
node [0000020b + 00000008]
node [00000213 + 00000008]
node [0000021b + 00000008]
node [00000223 + 00000008]
node [0000022b + 00000008]
node [00000233 + 00000008]
node [0000023b + 00000008]
node [00000243 + 00000008]
node [0000024b + 00000008]
node [00000253 + 00000008]
node [0000025b + 00000008]
node [00000263 + 00000008]
node [0000026b + 00000008]
node [00000273 + 00000008]
node [0000027b + 00000008]
node [00000283 + 00000008]
node [0000028b + 00000008]
node [00000293 + 00000008]
node [0000029b + 00000008]
node [000002a3 + 00000008]
node [000002ab + 00000008]
node [000002b3 + 00000008]
node [000002bb + 00000008]
node [000002c3 + 00000008]
node [000002cb + 00000008]
node [000002d3 + 00000008]
node [000002db + 00000008]
node [000002e3 + 00000008]
node [000002eb + 00000008]
node [000002f3 + 00000008]
node [000002fb + 00000008]
node [00000303 + 00000008]
node [0000030b + 00000008]
node [00000313 + 00000008]
node [0000031b + 00000008]
node [00000323 + 00000008]
node [0000032b + 00000008]
node [00000333 + 00000008]
node [0000033b + 00000008]
node [00000343 + 00000008]
node [0000034b + 00000008]
node [00000353 + 00000008]
node [0000035b + 00000008]
node [00000363 + 00000008]
node [0000036b + 00000008]
node [00000373 + 00000008]
node [0000037b + 00000008]
node [00000383 + 00000008]
node [0000038b + 00000008]
node [00000393 + 00000008]
node [0000039b + 00000008]
node [000003a3 + 00000008]
node [000003ab + 00000008]
node [000003b3 + 00000008]
node [000003bb + 00000008]
node [000003c3 + 00000008]
node [000003cb + 00000008]
node [000003d3 + 00000008]
node [000003db + 00000008]
node [000003e3 + 00000008]
node [000003eb + 00000008]
node [000003f3 + 00000008]
node [000003fb + 00000008]
node [00000403 + 00000008]
node [0000040b + 00000008]
node [00000413 + 00000008]
node [0000041b + 00000008]
node [00000423 + 00000008]
node [0000042b + 00000008]
node [00000433 + 00000008]
node [0000043b + 00000008]
node [00000443 + 00000008]
node [0000044b + 00000008]
node [00000453 + 00000008]
node [0000045b + 00000008]
node [00000463 + 00000008]
node [0000046b + 00000008]
node [00000473 + 00000008]
node [0000047b + 00000008]
node [00000483 + 00000008]
node [0000048b + 00000008]
node [00000493 + 00000008]
node [0000049b + 00000008]
node [000004a3 + 00000008]
node [000004ab + 00000008]
node [000004b3 + 00000008]
node [000004bb + 00000008]
node [000004c3 + 00000008]
node [000004cb + 00000008]
node [000004d3 + 00000008]
node [000004db + 00000008]
node [000004e3 + 00000008]
node [000004eb + 00000008]
node [000004f3 + 00000008]
node [000004fb + 00000008]
node [00000503 + 00000008]
node [0000050b + 00000008]
node [00000513 + 00000008]
node [0000051b + 00000008]
node [00000523 + 00000008]
node [0000052b + 00000008]
node [00000533 + 00000008]
node [0000053b + 00000008]
node [00000543 + 00000008]
node [0000054b + 00000008]
node [00000553 + 00000008]
node [0000055b + 00000008]
node [00000563 + 00000008]
node [0000056b + 00000008]
node [00000573 + 00000008]
node [0000057b + 00000008]
node [00000583 + 00000008]
node [0000058b + 00000008]
node [00000593 + 00000008]
node [0000059b + 00000008]
node [000005a3 + 00000008]
node [000005ab + 00000008]
node [000005b3 + 00000008]
node [000005bb + 00000008]
node [000005c3 + 00000008]
node [000005cb + 00000008]
node [000005d3 + 00000008]
node [000005db + 00000008]
node [000005e3 + 00000008]
node [000005eb + 00000008]
node [000005f3 + 00000008]
node [000005fb + 00000008]
node [00000603 + 00000008]
node [0000060b + 00000008]
node [00000613 + 00000008]
node [0000061b + 00000008]
node [00000623 + 00000008]
node [0000062b + 00000008]
node [00000633 + 00000008]
node [0000063b + 00000008]
node [00000643 + 00000008]
node [0000064b + 00000008]
node [00000653 + 00000008]
node [0000065b + 00000008]
node [00000663 + 00000008]
node [0000066b + 00000008]
node [00000673 + 00000008]
node [0000067b + 00000008]
node [00000683 + 00000008]
node [0000068b + 00000008]
node [00000693 + 00000008]
node [0000069b + 00000008]
node [000006a3 + 00000008]
node [000006ab + 00000008]
node [000006b3 + 00000008]
node [000006bb + 00000008]
node [000006c3 + 00000008]
node [000006cb + 00000008]
node [000006d3 + 00000008]
node [000006db + 00000008]
node [000006e3 + 00000008]
node [000006eb + 00000008]
node [000006f3 + 00000008]
node [000006fb + 00000008]
node [00000703 + 00000008]
node [0000070b + 00000008]
node [00000713 + 00000008]
node [0000071b + 00000008]
node [00000723 + 00000008]
node [0000072b + 00000008]
node [00000733 + 00000008]
node [0000073b + 00000008]
node [00000743 + 00000008]
node [0000074b + 00000008]
node [00000753 + 00000008]
node [0000075b + 00000008]
node [00000763 + 00000008]
node [0000076b + 00000008]
node [00000773 + 00000008]
node [0000077b + 00000008]
node [00000783 + 00000008]
node [0000078b + 00000008]
node [00000793 + 00000008]
node [0000079b + 00000008]
node [000007a3 + 00000008]
node [000007ab + 00000008]
node [000007b3 + 00000008]
node [000007bb + 00000008]
node [000007c3 + 00000008]
node [000007cb + 00000008]
node [000007d3 + 00000008]
node [000007db + 00000008]
node [000007e3 + 00000008]
node [000007eb + 00000008]
node [000007f3 + 00000008]
node [000007fb + 00000008]
node [00000803 + 00000008]
node [0000080b + 00000008]
node [00000813 + 00000008]
node [0000081b + 00000008]
node [00000823 + 00000008]
node [0000082b + 00000008]
node [00000833 + 00000008]
node [0000083b + 00000008]
node [00000843 + 00000008]
node [0000084b + 00000008]
node [00000853 + 00000008]
node [0000085b + 00000008]
node [00000863 + 00000008]
node [0000086b + 00000008]
node [00000873 + 00000008]
node [0000087b + 00000008]
node [00000883 + 00000008]
node [0000088b + 00000008]
node [00000893 + 00000008]
node [0000089b + 00000008]
node [000008a3 + 00000008]
node [000008ab + 00000008]
node [000008b3 + 00000008]
node [000008bb + 00000008]
node [000008c3 + 00000008]
node [000008cb + 00000008]
node [000008d3 + 00000008]
node [000008db + 00000008]
node [000008e3 + 00000008]
node [000008eb + 00000008]
node [000008f3 + 00000008]
node [000008fb + 00000008]
node [00000903 + 00000008]
node [0000090b + 00000008]
node [00000913 + 00000008]
node [0000091b + 00000008]
node [00000923 + 00000008]
node [0000092b + 00000008]
node [00000933 + 00000008]
node [0000093b + 00000008]
node [00000943 + 00000008]
node [0000094b + 00000008]
node [00000953 + 00000008]
node [0000095b + 00000008]
node [00000963 + 00000008]
node [0000096b + 00000008]
node [00000973 + 00000008]
node [0000097b + 00000008]
node [00000983 + 00000008]
node [0000098b + 00000008]
node [00000993 + 00000008]
node [0000099b + 00000008]
node [000009a3 + 00000008]
node [000009ab + 00000008]
node [000009b3 + 00000008]
node [000009bb + 00000008]
node [000009c3 + 00000008]
node [000009cb + 00000008]
node [000009d3 + 00000008]
node [000009db + 00000008]
node [000009e3 + 00000008]
node [000009eb + 00000008]
node [000009f3 + 00000008]
node [000009fb + 00000008]
node [00000a03 + 00000008]
node [00000a0b + 00000008]
node [00000a13 + 00000008]
node [00000a1b + 00000008]
node [00000a23 + 00000008]
node [00000a2b + 00000008]
node [00000a33 + 00000008]
node [00000a3b + 00000008]
node [00000a43 + 00000008]
node [00000a4b + 00000008]
node [00000a53 + 00000008]
node [00000a5b + 00000008]
node [00000a63 + 00000008]
node [00000a6b + 00000008]
node [00000a73 + 00000008]
node [00000a7b + 00000008]
node [00000a83 + 00000008]
node [00000a8b + 00000008]
node [00000a93 + 00000008]
node [00000a9b + 00000008]
node [00000aa3 + 00000008]
node [00000aab + 00000008]
node [00000ab3 + 00000008]
node [00000abb + 00000008]
node [00000ac3 + 00000008]
node [00000acb + 00000008]
node [00000ad3 + 00000008]
node [00000adb + 00000008]
node [00000ae3 + 00000008]
node [00000aeb + 00000008]
node [00000af3 + 00000008]
node [00000afb + 00000008]
node [00000b03 + 00000008]
node [00000b0b + 00000008]
node [00000b13 + 00000008]
node [00000b1b + 00000008]
node [00000b23 + 00000008]
node [00000b2b + 00000008]
node [00000b33 + 00000008]
node [00000b3b + 00000008]
node [00000b43 + 00000008]
node [00000b4b + 00000008]
node [00000b53 + 00000008]
node [00000b5b + 00000008]
node [00000b63 + 00000008]
node [00000b6b + 00000008]
node [00000b73 + 00000008]
node [00000b7b + 00000008]
node [00000b83 + 00000008]
node [00000b8b + 00000008]
node [00000b93 + 00000008]
node [00000b9b + 00000008]
node [00000ba3 + 00000008]
node [00000bab + 00000008]
node [00000bb3 + 00000008]
node [00000bbb + 00000008]
node [00000bc3 + 00000008]
node [00000bcb + 00000008]
node [00000bd3 + 00000008]
node [00000bdb + 00000008]
node [00000be3 + 00000008]
node [00000beb + 00000008]
node [00000bf3 + 00000008]
node [00000bfb + 00000008]
node [00000c03 + 00000008]
node [00000c0b + 00000008]
node [00000c13 + 00000008]
node [00000c1b + 00000008]
node [00000c23 + 00000008]
node [00000c2b + 00000008]
node [00000c33 + 00000008]
node [00000c3b + 00000008]
node [00000c43 + 00000008]
node [00000c4b + 00000008]
node [00000c53 + 00000008]
node [00000c5b + 00000008]
node [00000c63 + 00000008]
node [00000c6b + 00000008]
node [00000c73 + 00000008]
node [00000c7b + 00000008]
node [00000c83 + 00000008]
node [00000c8b + 00000008]
node [00000c93 + 00000008]
node [00000c9b + 00000008]
node [00000ca3 + 00000008]
node [00000cab + 00000008]
node [00000cb3 + 00000008]
node [00000cbb + 00000008]
node [00000cc3 + 00000008]
node [00000ccb + 00000008]
node [00000cd3 + 00000008]
node [00000cdb + 00000008]
node [00000ce3 + 00000008]
node [00000ceb + 00000008]
node [00000cf3 + 00000008]
node [00000cfb + 00000008]
node [00000d03 + 00000008]
node [00000d0b + 00000008]
node [00000d13 + 00000008]
node [00000d1b + 00000008]
node [00000d23 + 00000008]
node [00000d2b + 00000008]
node [00000d33 + 00000008]
node [00000d3b + 00000008]
node [00000d43 + 00000008]
node [00000d4b + 00000008]
node [00000d53 + 00000008]
node [00000d5b + 00000008]
node [00000d63 + 00000008]
node [00000d6b + 00000008]
node [00000d73 + 00000008]
node [00000d7b + 00000008]
node [00000d83 + 00000008]
node [00000d8b + 00000008]
node [00000d93 + 00000008]
node [00000d9b + 00000008]
node [00000da3 + 00000008]
node [00000dab + 00000008]
node [00000db3 + 00000008]
node [00000dbb + 00000008]
node [00000dc3 + 00000008]
node [00000dcb + 00000008]
node [00000dd3 + 00000008]
node [00000ddb + 00000008]
node [00000de3 + 00000008]
node [00000deb + 00000008]
node [00000df3 + 00000008]
node [00000dfb + 00000008]
node [00000e03 + 00000008]
node [00000e0b + 00000008]
node [00000e13 + 00000008]
node [00000e1b + 00000008]
node [00000e23 + 00000008]
node [00000e2b + 00000008]
node [00000e33 + 00000008]
node [00000e3b + 00000008]
node [00000e43 + 00000008]
node [00000e4b + 00000008]
node [00000e53 + 00000008]
node [00000e5b + 00000008]
node [00000e63 + 00000008]
node [00000e6b + 00000008]
node [00000e73 + 00000008]
node [00000e7b + 00000008]
node [00000e83 + 00000008]
node [00000e8b + 00000008]
node [00000e93 + 00000008]
node [00000e9b + 00000008]
node [00000ea3 + 00000008]
node [00000eab + 00000008]
node [00000eb3 + 00000008]
node [00000ebb + 00000008]
node [00000ec3 + 00000008]
node [00000ecb + 00000008]
node [00000ed3 + 00000008]
node [00000edb + 00000008]
node [00000ee3 + 00000008]
node [00000eeb + 00000008]
node [00000ef3 + 00000008]
node [00000efb + 00000008]
node [00000f03 + 00000008]
node [00000f0b + 00000008]
node [00000f13 + 00000008]
node [00000f1b + 00000008]
node [00000f23 + 00000008]
node [00000f2b + 00000008]
node [00000f33 + 00000008]
node [00000f3b + 00000008]
node [00000f43 + 00000008]
node [00000f4b + 00000008]
node [00000f53 + 00000008]
node [00000f5b + 00000008]
node [00000f63 + 00000008]
node [00000f6b + 00000008]
node [00000f73 + 00000008]
node [00000f7b + 00000008]
node [00000f83 + 00000008]
node [00000f8b + 00000008]
node [00000f93 + 00000008]
node [00000f9b + 00000008]
node [00000fa3 + 00000008]
node [00000fab + 00000008]
node [00000fb3 + 00000008]
node [00000fbb + 00000008]
node [00000fc3 + 00000008]
node [00000fcb + 00000008]
node [00000fd3 + 00000008]
node [00000fdb + 00000008]
node [00000fe3 + 00000008]
node [00000feb + 00000008]
node [00000ff3 + 00000008]
Stale nodes:
node [0000002b + 00000008] channel 1 frcnt 31
node [0000003b + 00000008] channel 1 frcnt 33
node [00000033 + 00000008] channel 1 frcnt 35
node [00000043 + 00000008] channel 1 frcnt 37
node [0000004b + 00000008] channel 1 frcnt 39
node [00000053 + 00000008] channel 1 frcnt 41
node [0000005b + 00000008] channel 1 frcnt 43
node [00000063 + 00000008] channel 1 frcnt 45
node [0000006b + 00000008] channel 1 frcnt 47
node [00000073 + 00000008] channel 1 frcnt 49
node [0000007b + 00000008] channel 1 frcnt 51
node [00000083 + 00000008] channel 1 frcnt 53
node [0000008b + 00000008] channel 1 frcnt 55
node [00000093 + 00000008] channel 1 frcnt 57
node [0000009b + 00000008] channel 1 frcnt 59
node [000000a3 + 00000008] channel 1 frcnt 61
node [000000ab + 00000008] channel 1 frcnt 63
node [000000b3 + 00000008] channel 1 frcnt 1
node [000000bb + 00000008] channel 1 frcnt 3
node [000000c3 + 00000008] channel 1 frcnt 5
node [000000cb + 00000008] channel 1 frcnt 7
node [000000d3 + 00000008] channel 1 frcnt 9
node [000000db + 00000008] channel 1 frcnt 11
node [000000e3 + 00000008] channel 1 frcnt 13
node [000000eb + 00000008] channel 1 frcnt 15
node [000000f3 + 00000008] channel 1 frcnt 17
node [000000fb + 00000008] channel 1 frcnt 19
node [00000103 + 00000008] channel 1 frcnt 21
node [0000010b + 00000008] channel 1 frcnt 23
node [00000113 + 00000008] channel 1 frcnt 25
node [0000011b + 00000008] channel 1 frcnt 27
node [00000123 + 00000008] channel 1 frcnt 29
node [0000012b + 00000008] channel 1 frcnt 31
node [00000133 + 00000008] channel 1 frcnt 33
node [0000013b + 00000008] channel 1 frcnt 35
node [00000143 + 00000008] channel 1 frcnt 37
node [0000014b + 00000008] channel 1 frcnt 39
node [00000153 + 00000008] channel 1 frcnt 41
node [0000015b + 00000008] channel 1 frcnt 43
node [00000163 + 00000008] channel 1 frcnt 45
node [0000016b + 00000008] channel 1 frcnt 47
node [00000173 + 00000008] channel 1 frcnt 49
node [0000017b + 00000008] channel 1 frcnt 51
node [00000183 + 00000008] channel 1 frcnt 53
node [0000018b + 00000008] channel 1 frcnt 55
node [00000193 + 00000008] channel 1 frcnt 57
node [0000019b + 00000008] channel 1 frcnt 59
node [000001a3 + 00000008] channel 1 frcnt 61
node [000001ab + 00000008] channel 1 frcnt 63
node [000001b3 + 00000008] channel 1 frcnt 1
node [000001bb + 00000008] channel 1 frcnt 3
node [000001c3 + 00000008] channel 1 frcnt 5
node [000001cb + 00000008] channel 1 frcnt 7
node [000001d3 + 00000008] channel 1 frcnt 9
node [000001db + 00000008] channel 1 frcnt 11
node [000001e3 + 00000008] channel 1 frcnt 13
node [000001eb + 00000008] channel 1 frcnt 15
node [000001f3 + 00000008] channel 1 frcnt 17
node [000001fb + 00000008] channel 1 frcnt 19
node [00000203 + 00000008] channel 1 frcnt 21
node [0000020b + 00000008] channel 1 frcnt 23
node [00000213 + 00000008] channel 1 frcnt 25
node [0000021b + 00000008] channel 1 frcnt 27
node [00000223 + 00000008] channel 1 frcnt 29
node [0000022b + 00000008] channel 1 frcnt 31
node [00000233 + 00000008] channel 1 frcnt 33
node [0000023b + 00000008] channel 1 frcnt 35
node [00000243 + 00000008] channel 1 frcnt 37
node [0000024b + 00000008] channel 1 frcnt 39
node [00000253 + 00000008] channel 1 frcnt 41
node [0000025b + 00000008] channel 1 frcnt 43
node [00000263 + 00000008] channel 1 frcnt 45
node [0000026b + 00000008] channel 1 frcnt 47
node [00000273 + 00000008] channel 1 frcnt 49
node [0000027b + 00000008] channel 1 frcnt 51
node [00000283 + 00000008] channel 1 frcnt 53
node [0000028b + 00000008] channel 1 frcnt 55
node [00000293 + 00000008] channel 1 frcnt 57
node [0000029b + 00000008] channel 1 frcnt 59
node [000002a3 + 00000008] channel 1 frcnt 61
node [000002ab + 00000008] channel 1 frcnt 63
node [000002b3 + 00000008] channel 1 frcnt 1
node [000002bb + 00000008] channel 1 frcnt 3
node [000002c3 + 00000008] channel 1 frcnt 5
node [000002cb + 00000008] channel 1 frcnt 7
node [000002d3 + 00000008] channel 1 frcnt 9
node [000002db + 00000008] channel 1 frcnt 11
node [000002e3 + 00000008] channel 1 frcnt 13
node [000002eb + 00000008] channel 1 frcnt 15
node [000002f3 + 00000008] channel 1 frcnt 17
node [000002fb + 00000008] channel 1 frcnt 19
node [00000303 + 00000008] channel 1 frcnt 21
node [0000030b + 00000008] channel 1 frcnt 23
node [00000313 + 00000008] channel 1 frcnt 25
node [0000031b + 00000008] channel 1 frcnt 27
node [00000323 + 00000008] channel 1 frcnt 29
node [0000032b + 00000008] channel 1 frcnt 31
node [00000333 + 00000008] channel 1 frcnt 33
node [0000033b + 00000008] channel 1 frcnt 35
node [00000343 + 00000008] channel 1 frcnt 37
node [0000034b + 00000008] channel 1 frcnt 39
node [00000353 + 00000008] channel 1 frcnt 41
node [0000035b + 00000008] channel 1 frcnt 43
node [00000363 + 00000008] channel 1 frcnt 45
node [0000036b + 00000008] channel 1 frcnt 47
node [00000373 + 00000008] channel 1 frcnt 49
node [0000037b + 00000008] channel 1 frcnt 51
node [00000383 + 00000008] channel 1 frcnt 53
node [0000038b + 00000008] channel 1 frcnt 55
node [00000393 + 00000008] channel 1 frcnt 57
node [0000039b + 00000008] channel 1 frcnt 59
node [000003a3 + 00000008] channel 1 frcnt 61
node [000003ab + 00000008] channel 1 frcnt 63
node [000003b3 + 00000008] channel 1 frcnt 1
node [000003bb + 00000008] channel 1 frcnt 3
node [000003c3 + 00000008] channel 1 frcnt 5
node [000003cb + 00000008] channel 1 frcnt 7
node [000003d3 + 00000008] channel 1 frcnt 9
node [000003db + 00000008] channel 1 frcnt 11
node [000003e3 + 00000008] channel 1 frcnt 13
node [000003eb + 00000008] channel 1 frcnt 15
node [000003f3 + 00000008] channel 1 frcnt 17
node [000003fb + 00000008] channel 1 frcnt 19
node [00000403 + 00000008] channel 1 frcnt 21
node [0000040b + 00000008] channel 1 frcnt 23
node [00000413 + 00000008] channel 1 frcnt 25
node [0000041b + 00000008] channel 1 frcnt 27
node [00000423 + 00000008] channel 1 frcnt 29
node [0000042b + 00000008] channel 1 frcnt 31
node [00000433 + 00000008] channel 1 frcnt 33
node [0000043b + 00000008] channel 1 frcnt 35
node [00000443 + 00000008] channel 1 frcnt 37
node [0000044b + 00000008] channel 1 frcnt 39
node [00000453 + 00000008] channel 1 frcnt 41
node [0000045b + 00000008] channel 1 frcnt 43
node [00000463 + 00000008] channel 1 frcnt 45
node [0000046b + 00000008] channel 1 frcnt 47
node [00000473 + 00000008] channel 1 frcnt 49
node [0000047b + 00000008] channel 1 frcnt 51
node [00000483 + 00000008] channel 1 frcnt 53
node [0000048b + 00000008] channel 1 frcnt 55
node [00000493 + 00000008] channel 1 frcnt 57
node [0000049b + 00000008] channel 1 frcnt 59
node [000004a3 + 00000008] channel 1 frcnt 61
node [000004ab + 00000008] channel 1 frcnt 63
node [000004b3 + 00000008] channel 1 frcnt 1
node [000004bb + 00000008] channel 1 frcnt 3
node [000004c3 + 00000008] channel 1 frcnt 5
node [000004cb + 00000008] channel 1 frcnt 7
node [000004d3 + 00000008] channel 1 frcnt 9
node [000004db + 00000008] channel 1 frcnt 11
node [000004e3 + 00000008] channel 1 frcnt 13
node [000004eb + 00000008] channel 1 frcnt 15
node [000004f3 + 00000008] channel 1 frcnt 17
node [000004fb + 00000008] channel 1 frcnt 19
node [00000503 + 00000008] channel 1 frcnt 21
node [0000050b + 00000008] channel 1 frcnt 23
node [00000513 + 00000008] channel 1 frcnt 25
node [0000051b + 00000008] channel 1 frcnt 27
node [00000523 + 00000008] channel 1 frcnt 29
node [0000052b + 00000008] channel 1 frcnt 31
node [00000533 + 00000008] channel 1 frcnt 33
node [0000053b + 00000008] channel 1 frcnt 35
node [00000543 + 00000008] channel 1 frcnt 37
node [0000054b + 00000008] channel 1 frcnt 39
node [00000553 + 00000008] channel 1 frcnt 41
node [0000055b + 00000008] channel 1 frcnt 43
node [00000563 + 00000008] channel 1 frcnt 45
node [0000056b + 00000008] channel 1 frcnt 47
node [00000573 + 00000008] channel 1 frcnt 49
node [0000057b + 00000008] channel 1 frcnt 51
node [00000583 + 00000008] channel 1 frcnt 53
node [0000058b + 00000008] channel 1 frcnt 55
node [00000593 + 00000008] channel 1 frcnt 57
node [0000059b + 00000008] channel 1 frcnt 59
node [000005a3 + 00000008] channel 1 frcnt 61
node [000005ab + 00000008] channel 1 frcnt 63
node [000005b3 + 00000008] channel 1 frcnt 1
node [000005bb + 00000008] channel 1 frcnt 3
node [000005c3 + 00000008] channel 1 frcnt 5
node [000005cb + 00000008] channel 1 frcnt 7
node [000005d3 + 00000008] channel 1 frcnt 9
node [000005db + 00000008] channel 1 frcnt 11
node [000005e3 + 00000008] channel 1 frcnt 13
node [000005eb + 00000008] channel 1 frcnt 15
node [000005f3 + 00000008] channel 1 frcnt 17
node [000005fb + 00000008] channel 1 frcnt 19
node [00000603 + 00000008] channel 1 frcnt 21
node [0000060b + 00000008] channel 1 frcnt 23
node [00000613 + 00000008] channel 1 frcnt 25
node [0000061b + 00000008] channel 1 frcnt 27
node [00000623 + 00000008] channel 1 frcnt 29
node [0000062b + 00000008] channel 1 frcnt 31
node [00000633 + 00000008] channel 1 frcnt 33
node [0000063b + 00000008] channel 1 frcnt 35
node [00000643 + 00000008] channel 1 frcnt 37
node [0000064b + 00000008] channel 1 frcnt 39
node [00000653 + 00000008] channel 1 frcnt 41
node [0000065b + 00000008] channel 1 frcnt 43
node [00000663 + 00000008] channel 1 frcnt 45
node [0000066b + 00000008] channel 1 frcnt 47
node [00000673 + 00000008] channel 1 frcnt 49
node [0000067b + 00000008] channel 1 frcnt 51
node [00000683 + 00000008] channel 1 frcnt 53
node [0000068b + 00000008] channel 1 frcnt 55
node [00000693 + 00000008] channel 1 frcnt 57
node [0000069b + 00000008] channel 1 frcnt 59
node [000006a3 + 00000008] channel 1 frcnt 61
node [000006ab + 00000008] channel 1 frcnt 63
node [000006b3 + 00000008] channel 1 frcnt 1
node [000006bb + 00000008] channel 1 frcnt 3
node [000006c3 + 00000008] channel 1 frcnt 5
node [000006cb + 00000008] channel 1 frcnt 7
node [000006d3 + 00000008] channel 1 frcnt 9
node [000006db + 00000008] channel 1 frcnt 11
node [000006e3 + 00000008] channel 1 frcnt 13
node [000006eb + 00000008] channel 1 frcnt 15
node [000006f3 + 00000008] channel 1 frcnt 17
node [000006fb + 00000008] channel 1 frcnt 19
node [00000703 + 00000008] channel 1 frcnt 21
node [0000070b + 00000008] channel 1 frcnt 23
node [00000713 + 00000008] channel 1 frcnt 25
node [0000071b + 00000008] channel 1 frcnt 27
node [00000723 + 00000008] channel 1 frcnt 29
node [0000072b + 00000008] channel 1 frcnt 31
node [00000733 + 00000008] channel 1 frcnt 33
node [0000073b + 00000008] channel 1 frcnt 35
node [00000743 + 00000008] channel 1 frcnt 37
node [0000074b + 00000008] channel 1 frcnt 39
node [00000753 + 00000008] channel 1 frcnt 41
node [0000075b + 00000008] channel 1 frcnt 43
node [00000763 + 00000008] channel 1 frcnt 45
node [0000076b + 00000008] channel 1 frcnt 47
node [00000773 + 00000008] channel 1 frcnt 49
node [0000077b + 00000008] channel 1 frcnt 51
node [00000783 + 00000008] channel 1 frcnt 53
node [0000078b + 00000008] channel 1 frcnt 55
node [00000793 + 00000008] channel 1 frcnt 57
node [0000079b + 00000008] channel 1 frcnt 59
node [000007a3 + 00000008] channel 1 frcnt 61
node [000007ab + 00000008] channel 1 frcnt 63
node [000007b3 + 00000008] channel 1 frcnt 1
node [000007bb + 00000008] channel 1 frcnt 3
node [000007c3 + 00000008] channel 1 frcnt 5
node [000007cb + 00000008] channel 1 frcnt 7
node [000007d3 + 00000008] channel 1 frcnt 9
node [000007db + 00000008] channel 1 frcnt 11
node [000007e3 + 00000008] channel 1 frcnt 13
node [000007eb + 00000008] channel 1 frcnt 15
node [000007f3 + 00000008] channel 1 frcnt 17
node [000007fb + 00000008] channel 1 frcnt 19
node [00000803 + 00000008] channel 1 frcnt 21
node [0000080b + 00000008] channel 1 frcnt 23
node [00000813 + 00000008] channel 1 frcnt 25
node [0000081b + 00000008] channel 1 frcnt 27
node [00000823 + 00000008] channel 1 frcnt 29
node [0000082b + 00000008] channel 1 frcnt 31
node [00000833 + 00000008] channel 1 frcnt 33
node [0000083b + 00000008] channel 1 frcnt 35
node [00000843 + 00000008] channel 1 frcnt 37
node [0000084b + 00000008] channel 1 frcnt 39
node [00000853 + 00000008] channel 1 frcnt 41
node [0000085b + 00000008] channel 1 frcnt 43
node [00000863 + 00000008] channel 1 frcnt 45
node [0000086b + 00000008] channel 1 frcnt 47
node [00000873 + 00000008] channel 1 frcnt 49
node [0000087b + 00000008] channel 1 frcnt 51
node [00000883 + 00000008] channel 1 frcnt 53
node [0000088b + 00000008] channel 1 frcnt 55
node [00000893 + 00000008] channel 1 frcnt 57
node [0000089b + 00000008] channel 1 frcnt 59
node [000008a3 + 00000008] channel 1 frcnt 61
node [000008ab + 00000008] channel 1 frcnt 63
node [000008b3 + 00000008] channel 1 frcnt 1
node [000008bb + 00000008] channel 1 frcnt 3
node [000008c3 + 00000008] channel 1 frcnt 5
node [000008cb + 00000008] channel 1 frcnt 7
node [000008d3 + 00000008] channel 1 frcnt 9
node [000008db + 00000008] channel 1 frcnt 11
node [000008e3 + 00000008] channel 1 frcnt 13
node [000008eb + 00000008] channel 1 frcnt 15
node [000008f3 + 00000008] channel 1 frcnt 17
node [000008fb + 00000008] channel 1 frcnt 19
node [00000903 + 00000008] channel 1 frcnt 21
node [0000090b + 00000008] channel 1 frcnt 23
node [00000913 + 00000008] channel 1 frcnt 25
node [0000091b + 00000008] channel 1 frcnt 27
node [00000923 + 00000008] channel 1 frcnt 29
node [0000092b + 00000008] channel 1 frcnt 31
node [00000933 + 00000008] channel 1 frcnt 33
node [0000093b + 00000008] channel 1 frcnt 35
node [00000943 + 00000008] channel 1 frcnt 37
node [0000094b + 00000008] channel 1 frcnt 39
node [00000953 + 00000008] channel 1 frcnt 41
node [0000095b + 00000008] channel 1 frcnt 43
node [00000963 + 00000008] channel 1 frcnt 45
node [0000096b + 00000008] channel 1 frcnt 47
node [00000973 + 00000008] channel 1 frcnt 49
node [0000097b + 00000008] channel 1 frcnt 51
node [00000983 + 00000008] channel 1 frcnt 53
node [0000098b + 00000008] channel 1 frcnt 55
node [00000993 + 00000008] channel 1 frcnt 57
node [0000099b + 00000008] channel 1 frcnt 59
node [000009a3 + 00000008] channel 1 frcnt 61
node [000009ab + 00000008] channel 1 frcnt 63
node [000009b3 + 00000008] channel 1 frcnt 1
node [000009bb + 00000008] channel 1 frcnt 3
node [000009c3 + 00000008] channel 1 frcnt 5
node [000009cb + 00000008] channel 1 frcnt 7
node [000009d3 + 00000008] channel 1 frcnt 9
node [000009db + 00000008] channel 1 frcnt 11
node [000009e3 + 00000008] channel 1 frcnt 13
node [000009eb + 00000008] channel 1 frcnt 15
node [000009f3 + 00000008] channel 1 frcnt 17
node [000009fb + 00000008] channel 1 frcnt 19
node [00000a03 + 00000008] channel 1 frcnt 21
node [00000a0b + 00000008] channel 1 frcnt 23
node [00000a13 + 00000008] channel 1 frcnt 25
node [00000a1b + 00000008] channel 1 frcnt 27
node [00000a23 + 00000008] channel 1 frcnt 29
node [00000a2b + 00000008] channel 1 frcnt 31
node [00000a33 + 00000008] channel 1 frcnt 33
node [00000a3b + 00000008] channel 1 frcnt 35
node [00000a43 + 00000008] channel 1 frcnt 37
node [00000a4b + 00000008] channel 1 frcnt 39
node [00000a53 + 00000008] channel 1 frcnt 41
node [00000a5b + 00000008] channel 1 frcnt 43
node [00000a63 + 00000008] channel 1 frcnt 45
node [00000a6b + 00000008] channel 1 frcnt 47
node [00000a73 + 00000008] channel 1 frcnt 49
node [00000a7b + 00000008] channel 1 frcnt 51
node [00000a83 + 00000008] channel 1 frcnt 53
node [00000a8b + 00000008] channel 1 frcnt 55
node [00000a93 + 00000008] channel 1 frcnt 57
node [00000a9b + 00000008] channel 1 frcnt 59
node [00000aa3 + 00000008] channel 1 frcnt 61
node [00000aab + 00000008] channel 1 frcnt 63
node [00000ab3 + 00000008] channel 1 frcnt 1
node [00000abb + 00000008] channel 1 frcnt 3
node [00000ac3 + 00000008] channel 1 frcnt 5
node [00000acb + 00000008] channel 1 frcnt 7
node [00000ad3 + 00000008] channel 1 frcnt 9
node [00000adb + 00000008] channel 1 frcnt 11
node [00000ae3 + 00000008] channel 1 frcnt 13
node [00000aeb + 00000008] channel 1 frcnt 15
node [00000af3 + 00000008] channel 1 frcnt 17
node [00000afb + 00000008] channel 1 frcnt 19
node [00000b03 + 00000008] channel 1 frcnt 21
node [00000b0b + 00000008] channel 1 frcnt 23
node [00000b13 + 00000008] channel 1 frcnt 25
node [00000b1b + 00000008] channel 1 frcnt 27
node [00000b23 + 00000008] channel 1 frcnt 29
node [00000b2b + 00000008] channel 1 frcnt 31
node [00000b33 + 00000008] channel 1 frcnt 33
node [00000b3b + 00000008] channel 1 frcnt 35
node [00000b43 + 00000008] channel 1 frcnt 37
node [00000b4b + 00000008] channel 1 frcnt 39
node [00000b53 + 00000008] channel 1 frcnt 41
node [00000b5b + 00000008] channel 1 frcnt 43
node [00000b63 + 00000008] channel 1 frcnt 45
node [00000b6b + 00000008] channel 1 frcnt 47
node [00000b73 + 00000008] channel 1 frcnt 49
node [00000b7b + 00000008] channel 1 frcnt 51
node [00000b83 + 00000008] channel 1 frcnt 53
node [00000b8b + 00000008] channel 1 frcnt 55
node [00000b93 + 00000008] channel 1 frcnt 57
node [00000b9b + 00000008] channel 1 frcnt 59
node [00000ba3 + 00000008] channel 1 frcnt 61
node [00000bab + 00000008] channel 1 frcnt 63
node [00000bb3 + 00000008] channel 1 frcnt 1
node [00000bbb + 00000008] channel 1 frcnt 3
node [00000bc3 + 00000008] channel 1 frcnt 5
node [00000bcb + 00000008] channel 1 frcnt 7
node [00000bd3 + 00000008] channel 1 frcnt 9
node [00000bdb + 00000008] channel 1 frcnt 11
node [00000be3 + 00000008] channel 1 frcnt 13
node [00000beb + 00000008] channel 1 frcnt 15
node [00000bf3 + 00000008] channel 1 frcnt 17
node [00000bfb + 00000008] channel 1 frcnt 19
node [00000c03 + 00000008] channel 1 frcnt 21
node [00000c0b + 00000008] channel 1 frcnt 23
node [00000c13 + 00000008] channel 1 frcnt 25
node [00000c1b + 00000008] channel 1 frcnt 27
node [00000c23 + 00000008] channel 1 frcnt 29
node [00000c2b + 00000008] channel 1 frcnt 31
node [00000c33 + 00000008] channel 1 frcnt 33
node [00000c3b + 00000008] channel 1 frcnt 35
node [00000c43 + 00000008] channel 1 frcnt 37
node [00000c4b + 00000008] channel 1 frcnt 39
node [00000c53 + 00000008] channel 1 frcnt 41
node [00000c5b + 00000008] channel 1 frcnt 43
node [00000c63 + 00000008] channel 1 frcnt 45
node [00000c6b + 00000008] channel 1 frcnt 47
node [00000c73 + 00000008] channel 1 frcnt 49
node [00000c7b + 00000008] channel 1 frcnt 51
node [00000c83 + 00000008] channel 1 frcnt 53
node [00000c8b + 00000008] channel 1 frcnt 55
node [00000c93 + 00000008] channel 1 frcnt 57
node [00000c9b + 00000008] channel 1 frcnt 59
node [00000ca3 + 00000008] channel 1 frcnt 61
node [00000cab + 00000008] channel 1 frcnt 63
node [00000cb3 + 00000008] channel 1 frcnt 1
node [00000cbb + 00000008] channel 1 frcnt 3
node [00000cc3 + 00000008] channel 1 frcnt 5
node [00000ccb + 00000008] channel 1 frcnt 7
node [00000cd3 + 00000008] channel 1 frcnt 9
node [00000cdb + 00000008] channel 1 frcnt 11
node [00000ce3 + 00000008] channel 1 frcnt 13
node [00000ceb + 00000008] channel 1 frcnt 15
node [00000cf3 + 00000008] channel 1 frcnt 17
node [00000cfb + 00000008] channel 1 frcnt 19
node [00000d03 + 00000008] channel 1 frcnt 21
node [00000d0b + 00000008] channel 1 frcnt 23
node [00000d13 + 00000008] channel 1 frcnt 25
node [00000d1b + 00000008] channel 1 frcnt 27
node [00000d23 + 00000008] channel 1 frcnt 29
node [00000d2b + 00000008] channel 1 frcnt 31
node [00000d33 + 00000008] channel 1 frcnt 33
node [00000d3b + 00000008] channel 1 frcnt 35
node [00000d43 + 00000008] channel 1 frcnt 37
node [00000d4b + 00000008] channel 1 frcnt 39
node [00000d53 + 00000008] channel 1 frcnt 41
node [00000d5b + 00000008] channel 1 frcnt 43
node [00000d63 + 00000008] channel 1 frcnt 45
node [00000d6b + 00000008] channel 1 frcnt 47
node [00000d73 + 00000008] channel 1 frcnt 49
node [00000d7b + 00000008] channel 1 frcnt 51
node [00000d83 + 00000008] channel 1 frcnt 53
node [00000d8b + 00000008] channel 1 frcnt 55
node [00000d93 + 00000008] channel 1 frcnt 57
node [00000d9b + 00000008] channel 1 frcnt 59
node [00000da3 + 00000008] channel 1 frcnt 61
node [00000dab + 00000008] channel 1 frcnt 63
node [00000db3 + 00000008] channel 1 frcnt 1
node [00000dbb + 00000008] channel 1 frcnt 3
node [00000dc3 + 00000008] channel 1 frcnt 5
node [00000dcb + 00000008] channel 1 frcnt 7
node [00000dd3 + 00000008] channel 1 frcnt 9
node [00000ddb + 00000008] channel 1 frcnt 11
node [00000de3 + 00000008] channel 1 frcnt 13
node [00000deb + 00000008] channel 1 frcnt 15
node [00000df3 + 00000008] channel 1 frcnt 17
node [00000dfb + 00000008] channel 1 frcnt 19
node [00000e03 + 00000008] channel 1 frcnt 21
node [00000e0b + 00000008] channel 1 frcnt 23
node [00000e13 + 00000008] channel 1 frcnt 25
node [00000e1b + 00000008] channel 1 frcnt 27
node [00000e23 + 00000008] channel 1 frcnt 29
node [00000e2b + 00000008] channel 1 frcnt 31
node [00000e33 + 00000008] channel 1 frcnt 33
node [00000e3b + 00000008] channel 1 frcnt 35
node [00000e43 + 00000008] channel 1 frcnt 37
node [00000e4b + 00000008] channel 1 frcnt 39
node [00000e53 + 00000008] channel 1 frcnt 41
node [00000e5b + 00000008] channel 1 frcnt 43
node [00000e63 + 00000008] channel 1 frcnt 45
node [00000e6b + 00000008] channel 1 frcnt 47
node [00000e73 + 00000008] channel 1 frcnt 49
node [00000e7b + 00000008] channel 1 frcnt 51
node [00000e83 + 00000008] channel 1 frcnt 53
node [00000e8b + 00000008] channel 1 frcnt 55
node [00000e93 + 00000008] channel 1 frcnt 57
node [00000e9b + 00000008] channel 1 frcnt 59
node [00000ea3 + 00000008] channel 1 frcnt 61
node [00000eab + 00000008] channel 1 frcnt 63
node [00000eb3 + 00000008] channel 1 frcnt 1
node [00000ebb + 00000008] channel 1 frcnt 3
node [00000ec3 + 00000008] channel 1 frcnt 5
node [00000ecb + 00000008] channel 1 frcnt 7
node [00000ed3 + 00000008] channel 1 frcnt 9
node [00000edb + 00000008] channel 1 frcnt 11
node [00000ee3 + 00000008] channel 1 frcnt 13
node [00000eeb + 00000008] channel 1 frcnt 15
node [00000ef3 + 00000008] channel 1 frcnt 17
node [00000efb + 00000008] channel 1 frcnt 19
node [00000f03 + 00000008] channel 1 frcnt 21
node [00000f0b + 00000008] channel 1 frcnt 23
node [00000f13 + 00000008] channel 1 frcnt 25
node [00000f1b + 00000008] channel 1 frcnt 27
node [00000f23 + 00000008] channel 1 frcnt 29
node [00000f2b + 00000008] channel 1 frcnt 31
node [00000f33 + 00000008] channel 1 frcnt 33
node [00000f3b + 00000008] channel 1 frcnt 35
node [00000f43 + 00000008] channel 1 frcnt 37
node [00000f4b + 00000008] channel 1 frcnt 39
node [00000f53 + 00000008] channel 1 frcnt 41
node [00000f5b + 00000008] channel 1 frcnt 43
node [00000f63 + 00000008] channel 1 frcnt 45
node [00000f6b + 00000008] channel 1 frcnt 47
node [00000f73 + 00000008] channel 1 frcnt 49
node [00000f7b + 00000008] channel 1 frcnt 51
node [00000f83 + 00000008] channel 1 frcnt 53
node [00000f8b + 00000008] channel 1 frcnt 55
node [00000f93 + 00000008] channel 1 frcnt 57
node [00000f9b + 00000008] channel 1 frcnt 59
node [00000fa3 + 00000008] channel 1 frcnt 61
node [00000fab + 00000008] channel 1 frcnt 63
node [00000fb3 + 00000008] channel 1 frcnt 1
node [00000fbb + 00000008] channel 1 frcnt 3
node [00000fc3 + 00000008] channel 1 frcnt 5
node [00000fcb + 00000008] channel 1 frcnt 7
node [00000fd3 + 00000008] channel 1 frcnt 9
node [00000fdb + 00000008] channel 1 frcnt 11
node [00000fe3 + 00000008] channel 1 frcnt 13
node [00000feb + 00000008] channel 1 frcnt 15
/sys/kernel/debug/dri/128/hvs_dlists
# cat /sys/kernel/debug/dri/128/hvs_dlists
HVS chan 0 disabled
HVS chan 1:
HVS chan 2 disabled

@pelwell
Copy link
Contributor

pelwell commented Jan 22, 2024

a watch on the kernel log would be useful.

dmesg -W will display any new messages without the old ones.

@anyc
Copy link
Contributor

anyc commented Jan 22, 2024

Hm, I still get a lot of [77623.803868] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28 messages. I'll check, if I added your patch correctly. I did not measure the time yet but I think it only takes a small amount of hours for me to trigger it.

@anyc
Copy link
Contributor

anyc commented Jan 22, 2024

[   13.672810] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  363.423902] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  402.193994] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  441.428474] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  482.153770] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e

@anyc
Copy link
Contributor

anyc commented Jan 22, 2024

These errors occur while displaying a QML file executed with qmlscene and fullscreen EGLFS that shows a few MJPEG CCTV streams with gstreamer. Kernel is 6.1.63.

@6by9
Copy link
Contributor Author

6by9 commented Jan 22, 2024

[   13.672810] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  363.423902] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  402.193994] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  441.428474] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e
[  482.153770] vc4-drm soc:gpu: [drm] *ERROR* Failed to allocate DLIST entry. Requested size=8. ret=-28. DISPCTRL is aa0c400e

If this is the only output from dmesg -W, then the workaround is doing what it is meant to (clears out the list when full, which is 8-10s at 60Hz), but for some reason the interrupt is no longer triggering. If it were Linux masking the interrupt out because nothing is handling it, then the kernel logs that. Which sort of implies the hardware is doing something nasty. I need to decode that DISPCTRL value tomorrow to ensure the interrupt is still enabled.

@6by9
Copy link
Contributor Author

6by9 commented Jan 23, 2024

If you have a way of reproducing, please give details - I'm still at a loss.

The DISPCTRL value in the above logs is weird if it's from a Pi4/CM4. None of the EOF interrupts are enabled (bits 7, 11, and 15), yet we have entries in the stale queue. That shouldn't be possible as they get enabled when any entries get marked as stale via vc4_hvs_mark_dlist_entry_stale, and disabled if vc4_hvs_schedule_dlist_sweep (triggered by the interrupt) finds there are no stale entries at all. All the locking looks consistent in using mm_lock.

@anyc
Copy link
Contributor

anyc commented Jan 23, 2024

Sorry, this was on a RPi3 in my case: Raspberry Pi 3 Model B Rev 1.2. I also have a RPi4 but without display.

There is not much more I can tell. The app is displaying the images. It also has a user interface but nobody has touched them. I can provide you the QML file but it is simply displaying MJPEG streams that you cannot access. In the case above it only took a few minutes to trigger the bug.

@anyc
Copy link
Contributor

anyc commented Jan 23, 2024

Ah one thing, I switched back to an old kernel (5.15.84) for now but everything else is the same and in this case the bug does not occur.

@6by9
Copy link
Contributor Author

6by9 commented Jan 23, 2024

Sorry, this was on a RPi3 in my case: Raspberry Pi 3 Model B Rev 1.2. I also have a RPi4 but without display.

There is not much more I can tell. The app is displaying the images. It also has a user interface but nobody has touched them. I can provide you the QML file but it is simply displaying MJPEG streams that you cannot access. In the case above it only took a few minutes to trigger the bug.

I can synthesize MJPEG streams if needed. Currently I have no way to reproduce.
If you want to email it, then my email address is the Signed-off-by line in the commit text for https://github.com/raspberrypi/linux/pull/5880/commits

Ah one thing, I switched back to an old kernel (5.15.84) for now but everything else is the same and in this case the bug does not occur.

Earlier kernels had an issue where DLIST memory could get reused whilst it was still in use, hence 013f247 was introduced.

@anyc
Copy link
Contributor

anyc commented Jan 23, 2024

I sent you the email.

@WilkuAgresor
Copy link

Linux testTerminal 6.1.74-v8+ #1725 SMP PREEMPT Mon Jan 22 13:35:32 GMT 2024 aarch64 GNU/Linux

Pi 4B

Jan 24 12:57:46 testTerminal kernel: vc4-drm gpu: [drm] ERROR Failed to allocate DLIST entry. Requested size=17. ret=-28. DISPCTRL is aa0c020e

@6by9
Copy link
Contributor Author

6by9 commented Jan 24, 2024

Thanks @anyc - I'll try running that up.

And thanks also to @WilkuAgresor. Was that a single log entry, or was it repeating? The system shouldn't lock up at that point, but I want to understand why it is triggering at all.
Curious that in your DISPCTRL value the EOF interrupt is also disabled. I'm trying to find a route through the code that can do that.

@WilkuAgresor
Copy link

It repeated once before my script rebooted the pi. I'll disable the workaround and report when I catch it again.

@6by9
Copy link
Contributor Author

6by9 commented Jan 24, 2024

I think we may have a read-modify-write issue between setting the DSPEISLUR and EOF enables - I'm seeing both bits 7 (0x80) and 9 (0x200) being enabled and disabled in SCALER_DISPCTRL via /sys/kernel/debug/dri/1/hvs_regs over updates, and they're done from different contexts.

I've created #5891 as a test which disables the underrun interrupt, so it should remove the race condition. It's a hack, but it would be useful if people could test to see if it does solve their issues. Once CI has completed, sudo rpi-update pulls/5891 should get the 6.1 kernel with that patch.

@pelwell
Copy link
Contributor

pelwell commented Jan 24, 2024

The builds are done - sudo rpi-update pulls/5891 away (after backing up any important data etc.)

@WilkuAgresor
Copy link

Right now uptime is 5 days after the 'sudo rpi-update pulls/5891' and a reboot.
Linux testTerminal 6.1.74-v8+ #1 SMP PREEMPT Wed Jan 24 17:15:21 UTC 2024 aarch64 GNU/Linux
No issues found, everything works ok.

@6by9
Copy link
Contributor Author

6by9 commented Jan 30, 2024

Thanks for testing - I was beginning to think no one had tested it.

I'll have a think about a clean way of implementing both underrun and EOF interrupt handling. It's tempting to just enable EOF permanently, but it adds some overhead triggering interrupts at 60Hz for each HVS channel.

@anyc
Copy link
Contributor

anyc commented Jan 31, 2024

I can also confirm that it works for me for over one day now.

@TRyan84
Copy link

TRyan84 commented Feb 1, 2024

Hello,

ruining since 7 days on a cm3+, and it works.

Thanks

@6by9
Copy link
Contributor Author

6by9 commented Feb 1, 2024

Thanks @WilkuAgresor, @TRyan84 and @anyc.
With the three of you confirming that the hack to drop underrun logging works, it gives me confidence that we have identified the cause, and just need to sort the proper fix.

I don't need any other confirmations that it works now.

@hughmcmaster
Copy link

Can someone please tell me which kernel version has the relevant fixes for this issue?

I'm running Debian 12 Bookworm (arm64) on a RPi4 (8GB).

@6by9
Copy link
Contributor Author

6by9 commented Feb 12, 2024

I've dropped underrun detection via #5935 which was merged 7:52PM Fri 8th Feb.
The last rpi-update bump was 3:41PM Fri 8th Feb, so hasn't picked it up yet.

AIUI using sudo rpi-update rpi-6.6.y should pick up the latest CI build from that branch, which should include it.

@TRyan84
Copy link

TRyan84 commented Feb 14, 2024

Hello,

I update the System with sudo rpi-update rpi-6.6.y

Now I get this error:
[ 16.264098] alsactl[701]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
[ 16.873391] vc4_dsi 3f700000.dsi: transfer interrupt wait timeout
[ 16.873407] vc4_dsi 3f700000.dsi: instat: 0x00000000
[ 16.873425] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI transfer failed, resetting: -110
[ 17.113409] tc358762 3f700000.dsi.0: error initializing bridge (-110)
[ 17.115153] Console: switching to colour frame buffer device 100x30
[ 17.129595] vc4-drm soc:gpu: [drm] fb0: vc4drmfb frame buffer device

And the Display is kind of fuzzy...

Thanks.
Greetings

@6by9
Copy link
Contributor Author

6by9 commented Feb 14, 2024

I update the System with sudo rpi-update rpi-6.6.y

Now I get this error:

[ 16.264098] alsactl[701]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
[ 16.873391] vc4_dsi 3f700000.dsi: transfer interrupt wait timeout
[ 16.873407] vc4_dsi 3f700000.dsi: instat: 0x00000000
[ 16.873425] [drm:vc4_dsi_host_transfer [vc4]] _ERROR_ DSI transfer failed, resetting: -110
[ 17.113409] tc358762 3f700000.dsi.0: error initializing bridge (-110)
[ 17.115153] Console: switching to colour frame buffer device 100x30
[ 17.129595] vc4-drm soc:gpu: [drm] fb0: vc4drmfb frame buffer device

And the Display is kind of fuzzy...

What DSI display are you using? Presumably the Pi 7" DSI panel as it's loading tc358762.
If a clone of the Pi display, then I largely don't care.
Nothing significant has changed with regard that driver or the DSI host controller.

Which kernel version were you on previously?

@TRyan84
Copy link

TRyan84 commented Feb 14, 2024

Hi 6by9

thanks for your answer.

Yes, I am using the Pi 7" DSI panel

The kernel version before was 6.1.63-v7, and I never saw this behavior

After a few resets, the error is gone.

I have 10 of them in my office, and after I power cycle 2 of them has the same error.

Thanks

Greetings

@TRyan84
Copy link

TRyan84 commented Feb 16, 2024

Hi 6by9,

sorry, I think my setup is the problem...

Greetings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.