We use some essential cookies to make our website work.

We use optional cookies, as detailed in our cookie policy, to remember your settings and understand how you use our website.

143 posts
dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Tue Dec 10, 2024 4:20 pm

andrum99 wrote:
Tue Dec 10, 2024 3:54 pm
What do these mean - is there actually a performance hit, or is it just assumed there will be?
I don't believe there will be. Feel free to post if you find any evidence to the contrary.
We should perhaps suppress that message.

andrum99
Posts: 2530
Joined: Fri Jul 20, 2012 2:41 pm

Re: NUMA Testing

Tue Dec 10, 2024 7:44 pm

dom wrote:
Tue Dec 10, 2024 4:20 pm
andrum99 wrote:
Tue Dec 10, 2024 3:54 pm
What do these mean - is there actually a performance hit, or is it just assumed there will be?
I don't believe there will be.
...
👍

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Tue Dec 10, 2024 8:22 pm

dom wrote:
Tue Dec 10, 2024 4:20 pm
We should perhaps suppress that message.
Should be gone in latest rpi-update (master/6.6) kernel.

DanielLi64
Posts: 4
Joined: Sat Nov 30, 2024 10:02 pm

Re: NUMA Testing

Tue Dec 10, 2024 8:48 pm

koge wrote:
Tue Dec 03, 2024 10:13 pm
Anyone interested to try with and w/o NUMA in Mathematica:

Code: Select all

Needs["Benchmarking`"];
BenchmarkReport[]
Wolfram reports (aka RPi4/400 - probably pre-NUMA) Cortex-A72 (4 Cores) Linux ARM (64-bit) 0.37
Average of 8 runs:
With NUMA 0.7637
Without NUMA 0.6575

hackbar
Posts: 24
Joined: Thu Jul 21, 2022 5:51 pm

Re: NUMA Testing

Thu Dec 12, 2024 2:08 am

I've tested this on a Pi 5 4GB with my low latency video streaming setup (just a gstreamer pipeline), and I don't see any improvements in CPU usage (just looking at top). No regressions either though. I think gstreamer is pretty cpu-bound.

gstreamer command:
gst-launch-1.0 libcamerasrc ! video/x-raw,width=640,height=480,framerate=60/1,format=I420 ! x264enc bitrate=2048 tune=zerolatency ! video/x-h264,profile=baseline ! h264parse ! queue ! rtph264pay config-interval=1 pt=96 ! udpsink host=1ドル port=5000


$ uname -a
Linux pi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux

$ dmesg | grep NUMA
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: NODE_DATA [mem 0x1fffd2c0-0x1fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x3fbfd2c0-0x3fbfffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x5fffd2c0-0x5fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x7fffd2c0-0x7fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x9fffd2c0-0x9fffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xbfffd2c0-0xbfffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xdfffd2c0-0xdfffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xffd892c0-0xffd8bfff]
[ 0.000000] mempolicy: NUMA default policy overridden to 'interleave:0-7'
[ 0.261719] pci_bus 0000:00: Unknown NUMA node; performance will be reduced

Mikael
Posts: 127
Joined: Wed Feb 11, 2015 12:35 pm

Re: NUMA Testing

Thu Dec 12, 2024 9:45 am

DanielLi64 wrote:
Sun Dec 08, 2024 3:10 pm
Setting SDRAM_BANKLOW=1 is not ideal depending on what your using your PI for. It would be very interesting to see your Quake benchmarks with SDRAM_BANKLOW=2 and SDRAM_BANKLOW=3 (even faster writes).
You're right. I reran the previous tests and added results for SDRAM_BANKLOW 2 and 3, as well as GB6 scores for all configurations. All tests were ran on a Pi 5 4GB. For some reason, the Quake 2 result for the NUMA off case was much better this time around... The BANKLOW settings of 2 or 3 might be a decent compromise for retained (or even improved) GPU performance, if there is no other way to get it back while still using the BANKLOW=1 setting.

EDIT: To be honest though, I don't know enough about how the different settings work, so I guess using 2 or 3 could produce other side effects or inconsistencies that are undesirable.

Code: Select all

						NUMA off	NUMA on [BL=1]	NUMA on [BL=2]	NUMA on [BL=3]
Yamagi Quake 2 (1080p, GLES3, 16xAF)		117,1		96,7		112,8		118,7
vkQuake3 (1080p, Vulkan)			168,4		146,8		166,3		172,5
Geekbench 6 ST					830		896		889		871
Geekbench 6 MT					1758		2114		2080		1990

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Thu Dec 12, 2024 11:09 am

hackbar wrote:
Thu Dec 12, 2024 2:08 am
gst-launch-1.0 libcamerasrc ! video/x-raw,width=640,height=480,framerate=60/1,format=I420 ! x264enc bitrate=2048 tune=zerolatency ! video/x-h264,profile=baseline ! h264parse ! queue ! rtph264pay config-interval=1 pt=96 ! udpsink host=1ドル port=5000
I believe the zerolatency option disables multicore encode and so the benefits of numa are limited.
I'd expect better numa results for a non-zerolatency encode.

hackbar
Posts: 24
Joined: Thu Jul 21, 2022 5:51 pm

Re: NUMA Testing

Thu Dec 12, 2024 5:13 pm

dom wrote: I believe the zerolatency option disables multicore encode and so the benefits of numa are limited.
I'd expect better numa results for a non-zerolatency encode.
Makes sense, although the pipeline is using about 200% cpu (two cores). I don't know what else in the pipeline would use that much juice.

I'd try it without zerolatency, but for some reason it never produces packets without that parameter.

cjan
Posts: 1192
Joined: Sun May 06, 2012 12:00 am

Re: NUMA Testing

Fri Dec 13, 2024 11:25 pm

ok, how to disable NUMA?

Mikael
Posts: 127
Joined: Wed Feb 11, 2015 12:35 pm

Re: NUMA Testing

Sat Dec 14, 2024 10:49 am

cjan wrote:
Fri Dec 13, 2024 11:25 pm
ok, how to disable NUMA?
Don’t enter the SDRAM_BANKLOW setting in the EEPROM config.

andrum99
Posts: 2530
Joined: Fri Jul 20, 2012 2:41 pm

Re: NUMA Testing

Sat Dec 14, 2024 3:52 pm

Mikael wrote:
Sat Dec 14, 2024 10:49 am
cjan wrote:
Fri Dec 13, 2024 11:25 pm
ok, how to disable NUMA?
Don’t enter the SDRAM_BANKLOW setting in the EEPROM config.
Testing on a Pi 5, the latest bootloader EEPROM from 2024年12月07日 configures 8 NUMA nodes by default when there is no SDRAM_BANKLOW specified in its config.

However, I tested setting SDRAM_BANKLOW=-1 (i.e. minus one), and this appeared to do the trick:

Code: Select all

andrew@tarmachan:~ $ vcgencmd bootloader_config
[all]
BOOT_ORDER=0xf146
POWER_OFF_ON_HALT=1
SDRAM_BANKLOW=-1

Code: Select all

andrew@tarmachan:~ $ dmesg | grep -i numa
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000001ffffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0x1ffb892c0-0x1ffb8bfff]
[ 0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave smsc95xx.macaddr=D8:3A:DD:7D:7D:61 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=tty1 console=ttyAMA0,115200 root=PARTUUID=2a4a0632-02 rootfstype=ext4 fsck.repair=yes rootwait drm.edid_firmware=edid/lr_tv.dat video=HDMI-A-1:D vc4.force_hotplug=1
[ 0.000000] mempolicy: NUMA default policy overridden to 'interleave:0'
So a single NUMA node, which I'm assuming is effectively the same as no NUMA.

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Sat Dec 14, 2024 5:33 pm

andrum99 wrote:
Sat Dec 14, 2024 3:52 pm
However, I tested setting SDRAM_BANKLOW=-1 (i.e. minus one), and this appeared to do the trick:
So a single NUMA node, which I'm assuming is effectively the same as no NUMA.
Correct.

Mikael
Posts: 127
Joined: Wed Feb 11, 2015 12:35 pm

Re: NUMA Testing

Sun Dec 15, 2024 11:23 am

andrum99 wrote:
Sat Dec 14, 2024 3:52 pm
Testing on a Pi 5, the latest bootloader EEPROM from 2024年12月07日 configures 8 NUMA nodes by default when there is no SDRAM_BANKLOW specified in its config.

However, I tested setting SDRAM_BANKLOW=-1 (i.e. minus one), and this appeared to do the trick:
I went back to check on my system, as I was pretty sure I had actually confirmed the behavior. Turns out I still use the Nov 12 bootloader, which indeed disables NUMA if the SDRAM_BANKLOW row is removed. I'll upgrade to the latest. :)

slick517d
Posts: 1
Joined: Thu Sep 28, 2023 1:42 pm

Re: NUMA Testing

Mon Dec 16, 2024 1:30 pm

numa=fake=off in cmdline.txt seems to work for me.

Code: Select all

[ray@jellyfin ~]$ cat /boot/cmdline.txt
root=PARTUUID=cb41f4dc-03 rw rootwait console=serial0,115200 console=tty0 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 usbhid.mousepoll=8 audit=0 cgroup_enable=memory psi=1 delayacct lsm=landlock,lockdown,yama,integrity,apparmor,bpf numa=fake=off
 
[ray@jellyfin ~]$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3
node 0 size: 8038 MB
node 0 free: 546 MB
node distances:
node 0 
 0: 10

ejolson
Posts: 13865
Joined: Tue Mar 18, 2014 11:47 am

Re: NUMA Testing

Mon Dec 16, 2024 5:01 pm

slick517d wrote:
Mon Dec 16, 2024 1:30 pm
numa=fake=off in cmdline.txt seems to work for me.

Code: Select all

[ray@jellyfin ~]$ cat /boot/cmdline.txt
root=PARTUUID=cb41f4dc-03 rw rootwait console=serial0,115200 console=tty0 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 usbhid.mousepoll=8 audit=0 cgroup_enable=memory psi=1 delayacct lsm=landlock,lockdown,yama,integrity,apparmor,bpf numa=fake=off
 
[ray@jellyfin ~]$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3
node 0 size: 8038 MB
node 0 free: 546 MB
node distances:
node 0 
 0: 10
What does numactl --hardware report when fake NUMA is properly enabled?

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Mon Dec 16, 2024 5:08 pm

slick517d wrote:
Mon Dec 16, 2024 1:30 pm
numa=fake=off in cmdline.txt seems to work for me.
While that will disable NUMA, it won't undo the BANKLOW change.
You'll get better performance without NUMA by setting SDRAM_BANKLOW=-1 which undoes both.

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Wed Dec 18, 2024 4:36 pm

I have some weird problem that might be related to NUMA: On a Pi5 (didn't test on Pi4 yet), showing a 10bit HEVC 4K video on a single DRM plane flickers (see short video here), assuming the following conditions are true:
  • Video is 10bit at 4K resolution (hevc (Main 10), yuv420p10le(tv)). 8bit 4K HEVC works.
  • NUMA is active with both SDRAM_BANKLOW=1 and the automatically added "numa_policy=interleave numa=fake=8" kernel command line arguments. Both with "numa=fake=off" and removed SDRAM_BANKLOW=1 it works.
  • A OpenGLES surface must be active. If I remove the eglSwapBuffers call, it works. It also doesn't make a difference whether or not the resulting GL framebuffer is actually added to a DRM plane or not. Even if completely unused, it results in flickering unless the eglSwapBuffers is also removed.
  • Tried both with Mesa 23.2.1-1~bpo12+rpt3 as well as the new 24.2.4 and it doesn't make a difference.
  • 4K 30Hz mode (CEA 95) works, anything with a higher frequency (50Hz CEA 96 or 60Hz CEA 97) flickers. Using 1080p output at 60Hz works.
I'm testing this on both 32bit and 64bit Raspberry Pi OS, updated to the latest release:

Code: Select all

uname -a
Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux
vcgencmd bootloader_config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
SDRAM_BANKLOW=1
I'm a bit lost on what might cause this. I feel that it might be memory bandwidth related? The fact that actually using the GL surface or not doesn't make a difference is really odd.

Here's the DRM debug output. The first one flickers, the second one doesn't. The only difference are the V3D related calls.

Code: Select all

[ 683.607572] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 683.607577] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 683.607625] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (2)
[ 683.607627] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (1)
[ 683.607677] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 0000000041d6fee5
[ 683.608162] releasing FB backed AVFrame 0x5555d0648170 (fb_id: 685)
[ 683.608204] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_ATOMIC
[ 683.608257] vc4-drm axi:gpu: [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000628a0803
[ 683.608311] [drm:drm_mode_object_get [drm]] OBJ ID: 687 (2)
[ 683.608360] vc4-drm axi:gpu: [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:106:plane-4] 00000000c8ec6464 state to 00000000628a0803
[ 683.608411] [drm:drm_mode_object_get [drm]] OBJ ID: 678 (2)
[ 683.608459] vc4-drm axi:gpu: [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:93:crtc-2] 00000000aa3abbf8 state to 00000000628a0803
[ 683.608510] vc4-drm axi:gpu: [drm:drm_atomic_set_fb_for_plane [drm]] Set [FB:684] for [PLANE:106:plane-4] state 00000000c8ec6464
[ 683.608559] [drm:drm_mode_object_get [drm]] OBJ ID: 684 (3)
[ 683.608608] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 687 (3)
[ 683.608656] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (4)
[ 683.608704] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (3)
[ 683.608753] vc4-drm axi:gpu: [drm:drm_atomic_check_only [drm]] checking 00000000628a0803
[ 683.608805] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 000000006868bfc5 state 000000009bdfa05a to 00000000628a0803
[ 683.608856] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Trying to find a channel.
[ 683.608877] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Already enabled, reusing channel 0.
[ 683.608903] vc4-drm axi:gpu: [drm:vc6_plane_mode_set [vc4]] [PLANE:106:plane-4] Computed DLIST size: 20
[ 683.608922] vc4-drm axi:gpu: [drm:vc4_plane_atomic_check [vc4]] [PLANE:106:plane-4] LBM Allocation Size: 240
[ 683.608942] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Found [PLANE:106:plane-4] with DLIST size: 20
[ 683.608964] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Allocating DLIST block with size: 21
[ 683.608984] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 00000000ffc09560 state 0000000058f90675 to 00000000628a0803
[ 683.609036] vc4-drm axi:gpu: [drm:drm_atomic_nonblocking_commit [drm]] committing 00000000628a0803 nonblocking
[ 683.609150] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609208] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609260] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609310] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609418] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 683.610046] vc4-drm axi:gpu: [drm:drm_gem_dma_prime_import_sg_table [drm_dma_helper]] dma_addr = 0x0000000a78000000, size = 16596992
[ 683.610044] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: hwmode: htotal 4400, vtotal 2250, vdisplay 2160
[ 683.610069] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 683.610104] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: clock 594000 kHz framedur 16666666 linedur 7407
[ 683.610121] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_ADDFB2
[ 683.610177] vc4-drm axi:gpu: [drm:drm_mode_addfb2 [drm]] [FB:685]
[ 683.610229] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_GEM_CLOSE
[ 683.610403] allocated FB backed AVFrame 0x5555d0648170 (fb_id: 685)
[ 683.610442] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610496] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610549] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610599] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610655] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_SUBMIT_CL
[ 683.610796] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
[ 683.610863] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 683.610916] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE
[ 683.610970] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 683.611026] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 683.624172] vc4-drm axi:gpu: [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000628a0803
[ 683.624189] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_RMFB
[ 683.624230] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 683.624241] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (2)
[ 683.624280] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 687 (2)
[ 683.624290] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (1)
[ 683.624331] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000628a0803

Code: Select all

[ 496.057567] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 496.057578] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (2)
[ 496.057605] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 496.057616] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (1)
[ 496.057643] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 0000000062baf360
[ 496.058055] releasing FB backed AVFrame 0x5556182c6270 (fb_id: 684)
[ 496.058100] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_ATOMIC
[ 496.058143] vc4-drm axi:gpu: [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000293b4b18
[ 496.058186] [drm:drm_mode_object_get [drm]] OBJ ID: 681 (2)
[ 496.058244] vc4-drm axi:gpu: [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:106:plane-4] 00000000036cdaf8 state to 00000000293b4b18
[ 496.058292] [drm:drm_mode_object_get [drm]] OBJ ID: 678 (2)
[ 496.058334] vc4-drm axi:gpu: [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:93:crtc-2] 000000009f440e27 state to 00000000293b4b18
[ 496.058373] vc4-drm axi:gpu: [drm:drm_atomic_set_fb_for_plane [drm]] Set [FB:683] for [PLANE:106:plane-4] state 00000000036cdaf8
[ 496.058416] [drm:drm_mode_object_get [drm]] OBJ ID: 683 (3)
[ 496.058453] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 681 (3)
[ 496.058490] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 683 (4)
[ 496.058528] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 683 (3)
[ 496.058566] vc4-drm axi:gpu: [drm:drm_atomic_check_only [drm]] checking 00000000293b4b18
[ 496.058606] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 000000006868bfc5 state 00000000aabd393c to 00000000293b4b18
[ 496.058648] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Trying to find a channel.
[ 496.058673] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Already enabled, reusing channel 0.
[ 496.058696] vc4-drm axi:gpu: [drm:vc6_plane_mode_set [vc4]] [PLANE:106:plane-4] Computed DLIST size: 20
[ 496.058711] vc4-drm axi:gpu: [drm:vc4_plane_atomic_check [vc4]] [PLANE:106:plane-4] LBM Allocation Size: 240
[ 496.058727] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Found [PLANE:106:plane-4] with DLIST size: 20
[ 496.058746] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Allocating DLIST block with size: 21
[ 496.058765] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 00000000ffc09560 state 00000000ae5d1a57 to 00000000293b4b18
[ 496.058805] vc4-drm axi:gpu: [drm:drm_atomic_nonblocking_commit [drm]] committing 00000000293b4b18 nonblocking
[ 496.058966] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 496.059465] vc4-drm axi:gpu: [drm:drm_gem_dma_prime_import_sg_table [drm_dma_helper]] dma_addr = 0x0000000a79000000, size = 16596992
[ 496.059477] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 496.059516] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_ADDFB2
[ 496.059559] vc4-drm axi:gpu: [drm:drm_mode_addfb2 [drm]] [FB:684]
[ 496.059597] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_GEM_CLOSE
[ 496.059702] allocated FB backed AVFrame 0x5556182c6270 (fb_id: 684)
[ 496.059729] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: hwmode: htotal 4400, vtotal 2250, vdisplay 2160
[ 496.059770] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: clock 594000 kHz framedur 16666666 linedur 7407
[ 496.074172] vc4-drm axi:gpu: [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000293b4b18
[ 496.074217] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 496.074225] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_RMFB
[ 496.074255] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 681 (2)
[ 496.074272] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 496.074293] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000293b4b18
[ 496.074311] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (1)
[ 496.074721] releasing FB backed AVFrame 0x55561833bf80 (fb_id: 685)
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Wed Dec 18, 2024 5:16 pm

dividuum wrote:
Wed Dec 18, 2024 4:36 pm
I have some weird problem that might be related to NUMA: On a Pi5 (didn't test on Pi4 yet), showing a 10bit HEVC 4K video on a single DRM plane flickers (see short video here), assuming the following conditions are true:
Can you confirm what planes are present? Is the video displayed as a P030 plane, or does it go through GL and is a RGBA32 plane?
Is there a second plane present?

Are you able to pause the video playback (possibly still decoding, but keep showing the same plane).
Do you ever see the corrupt/striped frame persisting?

Can you test if forcing clocks has any effect (e.g. force_turbo=1 on config.txt). I suspect not on Pi5.

Can you narrow down if it's the banklow setting or the numa setting that causes it?

1) Set in the eeprom-config "SDRAM_BANKLOW=-1" to disable banklow.
add to cmdline.txt "numa_policy=interleave numa=fake=8 system_heap.max_order=0" to enable numa manually.

2) Set in the eeprom-config "SDRAM_BANKLOW=1" to enable banklow.
add to cmdline.txt "numa=fake=1" to disable numa manually.

Do 1 or 2 have the issue?

ejolson
Posts: 13865
Joined: Tue Mar 18, 2014 11:47 am

Re: NUMA Testing

Wed Dec 18, 2024 5:20 pm

dividuum wrote:
Wed Dec 18, 2024 4:36 pm
I have some weird problem that might be related to NUMA: On a Pi5 (didn't test on Pi4 yet), showing a 10bit HEVC 4K video on a single DRM plane flickers (see short video here), assuming the following conditions are true:
  • Video is 10bit at 4K resolution (hevc (Main 10), yuv420p10le(tv)). 8bit 4K HEVC works.
  • NUMA is active with both SDRAM_BANKLOW=1 and the automatically added "numa_policy=interleave numa=fake=8" kernel command line arguments. Both with "numa=fake=off" and removed SDRAM_BANKLOW=1 it works.
  • A OpenGLES surface must be active. If I remove the eglSwapBuffers call, it works. It also doesn't make a difference whether or not the resulting GL framebuffer is actually added to a DRM plane or not. Even if completely unused, it results in flickering unless the eglSwapBuffers is also removed.
  • Tried both with Mesa 23.2.1-1~bpo12+rpt3 as well as the new 24.2.4 and it doesn't make a difference.
  • 4K 30Hz mode (CEA 95) works, anything with a higher frequency (50Hz CEA 96 or 60Hz CEA 97) flickers. Using 1080p output at 60Hz works.
I'm testing this on both 32bit and 64bit Raspberry Pi OS, updated to the latest release:

Code: Select all

uname -a
Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux
vcgencmd bootloader_config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
SDRAM_BANKLOW=1
I'm a bit lost on what might cause this. I feel that it might be memory bandwidth related? The fact that actually using the GL surface or not doesn't make a difference is really odd.

Here's the DRM debug output. The first one flickers, the second one doesn't. The only difference are the V3D related calls.

Code: Select all

[ 683.607572] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 683.607577] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 683.607625] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (2)
[ 683.607627] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (1)
[ 683.607677] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 0000000041d6fee5
[ 683.608162] releasing FB backed AVFrame 0x5555d0648170 (fb_id: 685)
[ 683.608204] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_ATOMIC
[ 683.608257] vc4-drm axi:gpu: [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000628a0803
[ 683.608311] [drm:drm_mode_object_get [drm]] OBJ ID: 687 (2)
[ 683.608360] vc4-drm axi:gpu: [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:106:plane-4] 00000000c8ec6464 state to 00000000628a0803
[ 683.608411] [drm:drm_mode_object_get [drm]] OBJ ID: 678 (2)
[ 683.608459] vc4-drm axi:gpu: [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:93:crtc-2] 00000000aa3abbf8 state to 00000000628a0803
[ 683.608510] vc4-drm axi:gpu: [drm:drm_atomic_set_fb_for_plane [drm]] Set [FB:684] for [PLANE:106:plane-4] state 00000000c8ec6464
[ 683.608559] [drm:drm_mode_object_get [drm]] OBJ ID: 684 (3)
[ 683.608608] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 687 (3)
[ 683.608656] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (4)
[ 683.608704] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (3)
[ 683.608753] vc4-drm axi:gpu: [drm:drm_atomic_check_only [drm]] checking 00000000628a0803
[ 683.608805] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 000000006868bfc5 state 000000009bdfa05a to 00000000628a0803
[ 683.608856] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Trying to find a channel.
[ 683.608877] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Already enabled, reusing channel 0.
[ 683.608903] vc4-drm axi:gpu: [drm:vc6_plane_mode_set [vc4]] [PLANE:106:plane-4] Computed DLIST size: 20
[ 683.608922] vc4-drm axi:gpu: [drm:vc4_plane_atomic_check [vc4]] [PLANE:106:plane-4] LBM Allocation Size: 240
[ 683.608942] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Found [PLANE:106:plane-4] with DLIST size: 20
[ 683.608964] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Allocating DLIST block with size: 21
[ 683.608984] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 00000000ffc09560 state 0000000058f90675 to 00000000628a0803
[ 683.609036] vc4-drm axi:gpu: [drm:drm_atomic_nonblocking_commit [drm]] committing 00000000628a0803 nonblocking
[ 683.609150] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609208] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609260] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609310] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.609418] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 683.610046] vc4-drm axi:gpu: [drm:drm_gem_dma_prime_import_sg_table [drm_dma_helper]] dma_addr = 0x0000000a78000000, size = 16596992
[ 683.610044] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: hwmode: htotal 4400, vtotal 2250, vdisplay 2160
[ 683.610069] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 683.610104] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: clock 594000 kHz framedur 16666666 linedur 7407
[ 683.610121] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_ADDFB2
[ 683.610177] vc4-drm axi:gpu: [drm:drm_mode_addfb2 [drm]] [FB:685]
[ 683.610229] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_GEM_CLOSE
[ 683.610403] allocated FB backed AVFrame 0x5555d0648170 (fb_id: 685)
[ 683.610442] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610496] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610549] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610599] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_WAIT_BO
[ 683.610655] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, V3D_SUBMIT_CL
[ 683.610796] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
[ 683.610863] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_CREATE
[ 683.610916] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE
[ 683.610970] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_WAIT
[ 683.611026] v3d 1002000000.v3d: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe280, auth=1, DRM_IOCTL_SYNCOBJ_DESTROY
[ 683.624172] vc4-drm axi:gpu: [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000628a0803
[ 683.624189] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1240, dev=0xe201, auth=1, DRM_IOCTL_MODE_RMFB
[ 683.624230] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 683.624241] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (2)
[ 683.624280] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 687 (2)
[ 683.624290] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 686 (1)
[ 683.624331] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000628a0803

Code: Select all

[ 496.057567] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 496.057578] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (2)
[ 496.057605] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 496.057616] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 684 (1)
[ 496.057643] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 0000000062baf360
[ 496.058055] releasing FB backed AVFrame 0x5556182c6270 (fb_id: 684)
[ 496.058100] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_ATOMIC
[ 496.058143] vc4-drm axi:gpu: [drm:drm_atomic_state_init [drm]] Allocated atomic state 00000000293b4b18
[ 496.058186] [drm:drm_mode_object_get [drm]] OBJ ID: 681 (2)
[ 496.058244] vc4-drm axi:gpu: [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:106:plane-4] 00000000036cdaf8 state to 00000000293b4b18
[ 496.058292] [drm:drm_mode_object_get [drm]] OBJ ID: 678 (2)
[ 496.058334] vc4-drm axi:gpu: [drm:drm_atomic_get_crtc_state [drm]] Added [CRTC:93:crtc-2] 000000009f440e27 state to 00000000293b4b18
[ 496.058373] vc4-drm axi:gpu: [drm:drm_atomic_set_fb_for_plane [drm]] Set [FB:683] for [PLANE:106:plane-4] state 00000000036cdaf8
[ 496.058416] [drm:drm_mode_object_get [drm]] OBJ ID: 683 (3)
[ 496.058453] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 681 (3)
[ 496.058490] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 683 (4)
[ 496.058528] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 683 (3)
[ 496.058566] vc4-drm axi:gpu: [drm:drm_atomic_check_only [drm]] checking 00000000293b4b18
[ 496.058606] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 000000006868bfc5 state 00000000aabd393c to 00000000293b4b18
[ 496.058648] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Trying to find a channel.
[ 496.058673] vc4-drm axi:gpu: [drm:vc4_atomic_check [vc4]] crtc-2: Already enabled, reusing channel 0.
[ 496.058696] vc4-drm axi:gpu: [drm:vc6_plane_mode_set [vc4]] [PLANE:106:plane-4] Computed DLIST size: 20
[ 496.058711] vc4-drm axi:gpu: [drm:vc4_plane_atomic_check [vc4]] [PLANE:106:plane-4] LBM Allocation Size: 240
[ 496.058727] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Found [PLANE:106:plane-4] with DLIST size: 20
[ 496.058746] vc4-drm axi:gpu: [drm:vc4_hvs_atomic_check [vc4]] [CRTC:93:crtc-2] Allocating DLIST block with size: 21
[ 496.058765] vc4-drm axi:gpu: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 00000000ffc09560 state 00000000ae5d1a57 to 00000000293b4b18
[ 496.058805] vc4-drm axi:gpu: [drm:drm_atomic_nonblocking_commit [drm]] committing 00000000293b4b18 nonblocking
[ 496.058966] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 496.059465] vc4-drm axi:gpu: [drm:drm_gem_dma_prime_import_sg_table [drm_dma_helper]] dma_addr = 0x0000000a79000000, size = 16596992
[ 496.059477] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_PRIME_FD_TO_HANDLE
[ 496.059516] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_ADDFB2
[ 496.059559] vc4-drm axi:gpu: [drm:drm_mode_addfb2 [drm]] [FB:684]
[ 496.059597] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_GEM_CLOSE
[ 496.059702] allocated FB backed AVFrame 0x5556182c6270 (fb_id: 684)
[ 496.059729] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: hwmode: htotal 4400, vtotal 2250, vdisplay 2160
[ 496.059770] vc4-drm axi:gpu: [drm:drm_calc_timestamping_constants [drm]] crtc 93: clock 594000 kHz framedur 16666666 linedur 7407
[ 496.074172] vc4-drm axi:gpu: [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000293b4b18
[ 496.074217] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 678 (3)
[ 496.074225] vc4-drm axi:gpu: [drm:drm_ioctl [drm]] comm="info-beamer" pid=1177, dev=0xe201, auth=1, DRM_IOCTL_MODE_RMFB
[ 496.074255] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 681 (2)
[ 496.074272] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (2)
[ 496.074293] vc4-drm axi:gpu: [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000293b4b18
[ 496.074311] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 685 (1)
[ 496.074721] releasing FB backed AVFrame 0x55561833bf80 (fb_id: 685)
I think possible trouble with video is one of the primary focuses for this thread.

My understanding is your 6.6.x kernel uses the fake NUMA patches from Igalia. The upcoming 6.12.x kernel uses similar patches by Microsoft. I wonder whether the Microsoft patches in the 6.12.x kernel perform better, worse or the same.

Unfortunately tracking your problem is beyond me; I hope an engineer looks into this.

Edit: Cross posted; see the post before this one.

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Wed Dec 18, 2024 5:37 pm

dom wrote:
Wed Dec 18, 2024 5:16 pm
Can you confirm what planes are present? Is the video displayed as a P030 plane, or does it go through GL and is a RGBA32 plane?
Is there a second plane present?
Only a single P030 framebuffer:

Code: Select all

root@raspberrypi:~# kmsprint -p
Connector 0 (32) HDMI-A-1 (connected)
 EDID (1) = blob-id 681 len 256 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 93
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (37) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (38) = 8 [8 - 12]
 Broadcast RGB (39) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (40) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 0 (31) TMDS
 Crtc 2 (93) [email protected] 594.000 3840/176/88/296/+ 2160/4/10/76/- 60 (60.00) P|D 
 OUT_FENCE_PTR (19) = 0 [0 - 18446744073709551615]
 ACTIVE (22) = 1 [0 - 1]
 MODE_ID (23) = blob-id 678 len 68
 VRR_ENABLED (24) = 0 [0 - 1]
 Plane 4 (106) fb-id: 686 (crtcs: 1 2 3) 0,0 3840x2160 -> 0,0 3840x2160 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 P030 XR30 AR30 AB30 XB30 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
 type (8) = 0 (Overlay) [Overlay=0|Primary=1|Cursor=2] (immutable)
 SRC_X (9) = 0 [0 - 4294967295]
 SRC_Y (10) = 0 [0 - 4294967295]
 SRC_W (11) = 251658240 [0 - 4294967295]
 SRC_H (12) = 141557760 [0 - 4294967295]
 CRTC_X (13) = 0 [-2147483648 - 2147483647]
 CRTC_Y (14) = 0 [-2147483648 - 2147483647]
 CRTC_W (15) = 3840 [0 - 2147483647]
 CRTC_H (16) = 2160 [0 - 2147483647]
 FB_ID (17) = object id 686
 IN_FENCE_FD (18) = -1 [-1 - 2147483647]
 CRTC_ID (20) = object id 93
 IN_FORMATS (30) = blob-id 107 len 288 (immutable)
 alpha (108) = 65535 [0 - 65535]
 pixel blend mode (109) = 2 (None) [Pre-multiplied=0|Coverage=1|None=2]
 rotation (110) = 0x1 (rotate-0) [rotate-0=0x1|rotate-180=0x4|reflect-x=0x10|reflect-y=0x20]
 COLOR_ENCODING (111) = 1 (ITU-R BT.709 YCbCr) [ITU-R BT.601 YCbCr=0|ITU-R BT.709 YCbCr=1|ITU-R BT.2020 YCbCr=2]
 COLOR_RANGE (112) = 0 (YCbCr limited range) [YCbCr limited range=0|YCbCr full range=1]
 SCALING_FILTER (113) = 0 (Default) [Default=0|Nearest Neighbor=1]
 CHROMA_SITING_H (114) = 0 [0 - 65536]
 CHROMA_SITING_V (115) = 32768 [0 - 65536]
 zpos (116) = 1 [1 - 17]
 FB 686 3840x2160 P030
Connector 1 (42) HDMI-A-2 (disconnected)
 EDID (1) = blob-id 0 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 0
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (43) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (44) = 8 [8 - 12]
 Broadcast RGB (45) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (46) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 1 (41) TMDS
Are you able to pause the video playback (possibly still decoding, but keep showing the same plane).
I am. With an unchanging framebuffer, the video output is stable. Although I can see it having those diagonal stripes while the frame is first added to the output.
Do you ever see the corrupt/striped frame persisting?
Nope.
Can you test if forcing clocks has any effect (e.g. force_turbo=1 on config.txt). I suspect not on Pi5.
Indeed. Flickering remains.
Can you narrow down if it's the banklow setting or the numa setting that causes it?

1) Set in the eeprom-config "SDRAM_BANKLOW=-1" to disable banklow.
add to cmdline.txt "numa_policy=interleave numa=fake=8 system_heap.max_order=0" to enable numa manually.

2) Set in the eeprom-config "SDRAM_BANKLOW=1" to enable banklow.
add to cmdline.txt "numa=fake=1" to disable numa manually.

Do 1 or 2 have the issue?
1) Seems to work fine. In `dmesg` I can see that fake NUMA is active while SDRAM_BANKLOW=-1 in shown in `vcgencmd bootloader_config`.
2) Also works. SDRAM_BANKLOW=1 in shown in `vcgencmd bootloader_config`.
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Wed Dec 18, 2024 7:21 pm

Two other data points:
  • I've cut the GL surface resolution in half (1920x1080 down from 4K). With that the video plays back mostly flicker free. Note that the GL surface is still not used anywhere. It's not even getting imported into DRM.
  • I've previously placed the video across the complete output (3480x2160+0,0). When I instead leave a small border around it (3280x1960+100,100) or place it in with half resolution in the top left corner (1920x1080+0,0), the flickering changes and it looks like the rendering randomly stops at different horizontal coordinates.
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Thu Dec 19, 2024 11:50 am

Works on Pi4:

Code: Select all

# kmsprint -p
Connector 0 (32) HDMI-A-1 (connected)
 EDID (1) = blob-id 723 len 256 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 101
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (37) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (38) = 8 [8 - 12]
 Broadcast RGB (39) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (40) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 0 (31) TMDS
 Crtc 3 (101) [email protected] 594.000 3840/176/88/296/+ 2160/4/10/76/- 60 (60.00) P|D 
 OUT_FENCE_PTR (19) = 0 [0 - 18446744073709551615]
 ACTIVE (22) = 1 [0 - 1]
 MODE_ID (23) = blob-id 720 len 68
 VRR_ENABLED (24) = 0 [0 - 1]
 Plane 6 (126) fb-id: 727 (crtcs: 1 2 3 4 5) 0,0 3840x2160 -> 0,0 3840x2160 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 P030 XR30 AR30 AB30 XB30 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
 type (8) = 0 (Overlay) [Overlay=0|Primary=1|Cursor=2] (immutable)
 SRC_X (9) = 0 [0 - 4294967295]
 SRC_Y (10) = 0 [0 - 4294967295]
 SRC_W (11) = 251658240 [0 - 4294967295]
 SRC_H (12) = 141557760 [0 - 4294967295]
 CRTC_X (13) = 0 [-2147483648 - 2147483647]
 CRTC_Y (14) = 0 [-2147483648 - 2147483647]
 CRTC_W (15) = 3840 [0 - 2147483647]
 CRTC_H (16) = 2160 [0 - 2147483647]
 FB_ID (17) = object id 727
 IN_FENCE_FD (18) = -1 [-1 - 2147483647]
 CRTC_ID (20) = object id 101
 IN_FORMATS (30) = blob-id 127 len 288 (immutable)
 alpha (128) = 65535 [0 - 65535]
 pixel blend mode (129) = 2 (None) [Pre-multiplied=0|Coverage=1|None=2]
 rotation (130) = 0x1 (rotate-0) [rotate-0=0x1|rotate-180=0x4|reflect-x=0x10|reflect-y=0x20]
 COLOR_ENCODING (131) = 1 (ITU-R BT.709 YCbCr) [ITU-R BT.601 YCbCr=0|ITU-R BT.709 YCbCr=1|ITU-R BT.2020 YCbCr=2]
 COLOR_RANGE (132) = 0 (YCbCr limited range) [YCbCr limited range=0|YCbCr full range=1]
 SCALING_FILTER (133) = 0 (Default) [Default=0|Nearest Neighbor=1]
 CHROMA_SITING_H (134) = 0 [0 - 65536]
 CHROMA_SITING_V (135) = 32768 [0 - 65536]
 zpos (136) = 1 [1 - 17]
 FB 727 3840x2160 P030
Connector 1 (42) HDMI-A-2 (disconnected)
 EDID (1) = blob-id 0 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 0
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (43) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (44) = 8 [8 - 12]
 Broadcast RGB (45) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (46) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 1 (41) TMDS
With added hdmi_enable_4kp60=1 in config.txt.

Code: Select all

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux
pi@raspberrypi:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
SDRAM_BANKLOW=3
pi@raspberrypi:~ $ vcgencmd bootloader_version
2024年12月07日 12:39:28
version 3858f977ab6d689a226ad24d26749266762b7160 (release)
timestamp 1733575168
update-time 1734608428
capabilities 0x0000007f
pi@raspberrypi:~ $ cat /proc/cmdline 
coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0 numa=fake=2 system_heap.max_order=0 smsc95xx.macaddr=E4:5F:01:98:A0:2B vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=f1fa33b0-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=DE
pi@raspberrypi:~ $ numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3
node 0 size: 3806 MB
node 0 free: 3012 MB
node 1 cpus:
node 1 size: 4015 MB
node 1 free: 3578 MB
node distances:
node 0 1 
 0: 10 20 
 1: 20 10
 
pi@raspberrypi:~ $ cat /proc/cpuinfo |grep Rev
Revision : d03115
Model : Raspberry Pi 4 Model B Rev 1.5
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Thu Dec 19, 2024 12:08 pm

Another data point: Works on Pi5 2GB :?:

Code: Select all

 kmsprint -p
Connector 0 (32) HDMI-A-1 (connected)
 EDID (1) = blob-id 681 len 256 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 93
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (37) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (38) = 8 [8 - 12]
 Broadcast RGB (39) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (40) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 0 (31) TMDS
 Crtc 2 (93) [email protected] 594.000 3840/176/88/296/+ 2160/4/10/76/- 60 (60.00) P|D 
 OUT_FENCE_PTR (19) = 0 [0 - 18446744073709551615]
 ACTIVE (22) = 1 [0 - 1]
 MODE_ID (23) = blob-id 678 len 68
 VRR_ENABLED (24) = 0 [0 - 1]
 Plane 4 (106) fb-id: 684 (crtcs: 1 2 3) 0,0 3840x2160 -> 0,0 3840x2160 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 P030 XR30 AR30 AB30 XB30 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
 type (8) = 0 (Overlay) [Overlay=0|Primary=1|Cursor=2] (immutable)
 SRC_X (9) = 0 [0 - 4294967295]
 SRC_Y (10) = 0 [0 - 4294967295]
 SRC_W (11) = 251658240 [0 - 4294967295]
 SRC_H (12) = 141557760 [0 - 4294967295]
 CRTC_X (13) = 0 [-2147483648 - 2147483647]
 CRTC_Y (14) = 0 [-2147483648 - 2147483647]
 CRTC_W (15) = 3840 [0 - 2147483647]
 CRTC_H (16) = 2160 [0 - 2147483647]
 FB_ID (17) = object id 684
 IN_FENCE_FD (18) = -1 [-1 - 2147483647]
 CRTC_ID (20) = object id 93
 IN_FORMATS (30) = blob-id 107 len 288 (immutable)
 alpha (108) = 65535 [0 - 65535]
 pixel blend mode (109) = 2 (None) [Pre-multiplied=0|Coverage=1|None=2]
 rotation (110) = 0x1 (rotate-0) [rotate-0=0x1|rotate-180=0x4|reflect-x=0x10|reflect-y=0x20]
 COLOR_ENCODING (111) = 1 (ITU-R BT.709 YCbCr) [ITU-R BT.601 YCbCr=0|ITU-R BT.709 YCbCr=1|ITU-R BT.2020 YCbCr=2]
 COLOR_RANGE (112) = 0 (YCbCr limited range) [YCbCr limited range=0|YCbCr full range=1]
 SCALING_FILTER (113) = 0 (Default) [Default=0|Nearest Neighbor=1]
 CHROMA_SITING_H (114) = 0 [0 - 65536]
 CHROMA_SITING_V (115) = 32768 [0 - 65536]
 zpos (116) = 1 [1 - 17]
 FB 684 3840x2160 P030
Connector 1 (42) HDMI-A-2 (disconnected)
 EDID (1) = blob-id 0 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 0
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (43) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (44) = 8 [8 - 12]
 Broadcast RGB (45) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (46) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 1 (41) TMDS

Code: Select all

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux
pi@raspberrypi:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
SDRAM_BANKLOW=1
pi@raspberrypi:~ $ vcgencmd bootloader_version
2024年12月15日 00:16:50
version 461827f22e6ab42230e3a5a1735ee2092cdcbb72 (release)
timestamp 1734221810
update-time 1734609614
capabilities 0x0000007f
pi@raspberrypi:~ $ cat /proc/cmdline 
reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave numa=fake=4 system_heap.max_order=0 smsc95xx.macaddr=2C:CF:67:75:7B:4B vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=f1fa33b0-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=DE
pi@raspberrypi:~ $ numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3
node 0 size: 487 MB
node 0 free: 92 MB
node 1 cpus:
node 1 size: 501 MB
node 1 free: 273 MB
node 2 cpus:
node 2 size: 509 MB
node 2 free: 280 MB
node 3 cpus:
node 3 size: 508 MB
node 3 free: 263 MB
node distances:
node 0 1 2 3 
 0: 10 20 20 20 
 1: 20 10 20 20 
 2: 20 20 10 20 
 3: 20 20 20 10 
pi@raspberrypi:~ $ cat /proc/cpuinfo |grep Rev
Revision : b04170
Model : Raspberry Pi 5 Model B Rev 1.0
Let me gather all that again for the 8GB model I initially used...
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dividuum
Posts: 414
Joined: Sun Jun 16, 2013 1:18 pm

Re: NUMA Testing

Thu Dec 19, 2024 12:13 pm

Pi5 8GB model again flickers:

Code: Select all

kmsprint -p
Connector 0 (32) HDMI-A-1 (connected)
 EDID (1) = blob-id 681 len 256 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 93
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (37) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (38) = 8 [8 - 12]
 Broadcast RGB (39) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (40) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 0 (31) TMDS
 Crtc 2 (93) [email protected] 594.000 3840/176/88/296/+ 2160/4/10/76/- 60 (60.00) P|D 
 OUT_FENCE_PTR (19) = 0 [0 - 18446744073709551615]
 ACTIVE (22) = 1 [0 - 1]
 MODE_ID (23) = blob-id 678 len 68
 VRR_ENABLED (24) = 0 [0 - 1]
 Plane 4 (106) fb-id: 684 (crtcs: 1 2 3) 0,0 3840x2160 -> 0,0 3840x2160 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 P030 XR30 AR30 AB30 XB30 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
 type (8) = 0 (Overlay) [Overlay=0|Primary=1|Cursor=2] (immutable)
 SRC_X (9) = 0 [0 - 4294967295]
 SRC_Y (10) = 0 [0 - 4294967295]
 SRC_W (11) = 251658240 [0 - 4294967295]
 SRC_H (12) = 141557760 [0 - 4294967295]
 CRTC_X (13) = 0 [-2147483648 - 2147483647]
 CRTC_Y (14) = 0 [-2147483648 - 2147483647]
 CRTC_W (15) = 3840 [0 - 2147483647]
 CRTC_H (16) = 2160 [0 - 2147483647]
 FB_ID (17) = object id 684
 IN_FENCE_FD (18) = -1 [-1 - 2147483647]
 CRTC_ID (20) = object id 93
 IN_FORMATS (30) = blob-id 107 len 288 (immutable)
 alpha (108) = 65535 [0 - 65535]
 pixel blend mode (109) = 2 (None) [Pre-multiplied=0|Coverage=1|None=2]
 rotation (110) = 0x1 (rotate-0) [rotate-0=0x1|rotate-180=0x4|reflect-x=0x10|reflect-y=0x20]
 COLOR_ENCODING (111) = 1 (ITU-R BT.709 YCbCr) [ITU-R BT.601 YCbCr=0|ITU-R BT.709 YCbCr=1|ITU-R BT.2020 YCbCr=2]
 COLOR_RANGE (112) = 0 (YCbCr limited range) [YCbCr limited range=0|YCbCr full range=1]
 SCALING_FILTER (113) = 0 (Default) [Default=0|Nearest Neighbor=1]
 CHROMA_SITING_H (114) = 0 [0 - 65536]
 CHROMA_SITING_V (115) = 32768 [0 - 65536]
 zpos (116) = 1 [1 - 17]
 FB 684 3840x2160 P030
Connector 1 (42) HDMI-A-2 (disconnected)
 EDID (1) = blob-id 0 (immutable)
 DPMS (2) = 0 (On) [On=0|Standby=1|Suspend=2|Off=3]
 TILE (4) = blob-id 0 (immutable)
 link-status (5) = 0 (Good) [Good=0|Bad=1]
 non-desktop (6) = 0 [0 - 1] (immutable)
 HDR_OUTPUT_METADATA (7) = blob-id 0
 CRTC_ID (20) = object id 0
 left margin (33) = 0 [0 - 100]
 right margin (34) = 0 [0 - 100]
 top margin (35) = 0 [0 - 100]
 bottom margin (36) = 0 [0 - 100]
 Colorspace (43) = 0 (Default) [Default=0|SMPTE_170M_YCC=1|BT709_YCC=2|XVYCC_601=3|XVYCC_709=4|SYCC_601=5|opYCC_601=6|opRGB=7|BT2020_CYCC=8|BT2020_RGB=9|BT2020_YCC=10|DCI-P3_RGB_D65=11|DCI-P3_RGB_Theater=12]
 max bpc (44) = 8 [8 - 12]
 Broadcast RGB (45) = 0 (Automatic) [Automatic=0|Full=1|Limited 16:235=2]
 Output format (46) = 0 (Automatic) [Automatic=0|RGB=1|YCbCr 4:2:2=2|YCbCr 4:4:4=3]
 Encoder 1 (41) TMDS

Code: Select all

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024年11月25日) aarch64 GNU/Linux
pi@raspberrypi:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
SDRAM_BANKLOW=1
pi@raspberrypi:~ $ vcgencmd bootloader_version
2024年12月15日 00:16:50
version 461827f22e6ab42230e3a5a1735ee2092cdcbb72 (release)
timestamp 1734221810
update-time 1734609344
capabilities 0x0000007f
pi@raspberrypi:~ $ cat /proc/cmdline
reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave numa=fake=8 system_heap.max_order=0 smsc95xx.macaddr=D8:3A:DD:A5:9D:A7 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=f1fa33b0-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=DE
pi@raspberrypi:~ $ numactl -H
available: 8 nodes (0-7)
node 0 cpus: 0 1 2 3
node 0 size: 989 MB
node 0 free: 711 MB
node 1 cpus:
node 1 size: 1019 MB
node 1 free: 899 MB
node 2 cpus:
node 2 size: 1019 MB
node 2 free: 898 MB
node 3 cpus:
node 3 size: 955 MB
node 3 free: 821 MB
node 4 cpus:
node 4 size: 1019 MB
node 4 free: 886 MB
node 5 cpus:
node 5 size: 1019 MB
node 5 free: 899 MB
node 6 cpus:
node 6 size: 1019 MB
node 6 free: 898 MB
node 7 cpus:
node 7 size: 1014 MB
node 7 free: 887 MB
node distances:
node 0 1 2 3 4 5 6 7 
 0: 10 20 20 20 20 20 20 20 
 1: 20 10 20 20 20 20 20 20 
 2: 20 20 10 20 20 20 20 20 
 3: 20 20 20 10 20 20 20 20 
 4: 20 20 20 20 10 20 20 20 
 5: 20 20 20 20 20 10 20 20 
 6: 20 20 20 20 20 20 10 20 
 7: 20 20 20 20 20 20 20 10 
pi@raspberrypi:~ $ cat /proc/cpuinfo |grep Rev
Revision : d04170
Model : Raspberry Pi 5 Model B Rev 1.0

I also tried to restrict its 8GB memory to just 2GB similar to the 2GB Pi5 I have using the following in cmdline.txt:

Code: Select all

mem=2048M numa_policy=interleave numa=fake=4 system_heap.max_order=0
numactl now looks identical, but it still flickers. Really strange:

Code: Select all

$ numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3
node 0 size: 489 MB
node 0 free: 317 MB
node 1 cpus:
node 1 size: 503 MB
node 1 free: 390 MB
node 2 cpus:
node 2 size: 511 MB
node 2 free: 399 MB
node 3 cpus:
node 3 size: 510 MB
node 3 free: 381 MB
node distances:
node 0 1 2 3 
 0: 10 20 20 20 
 1: 20 10 20 20 
 2: 20 20 10 20 
 3: 20 20 20 10 
info-beamer hosted - A user and programmer friendly digital signage platform for the Pi: https://info-beamer.com/hosted

dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 8471
Joined: Wed Aug 17, 2011 7:41 pm

Re: NUMA Testing

Fri Dec 20, 2024 11:17 am

dividuum wrote:
Thu Dec 19, 2024 12:13 pm
Pi5 8GB model again flickers:
If you post a example code (source or binary) that shows the issue I can see if I can find any settings that mitigate it
(although it may not happen immediately with Christmas break coming).

143 posts

Return to "Advanced users"

AltStyle によって変換されたページ (->オリジナル) /