Backport Argus library files from JP 5.1.4 to 5.1.2

It would be great if this topic would be merged with the original one, now locked: Jetson NX high CPU syscall usage on nvargus kernel 4.9 vs 5.10

Wanted to test the fix for Argus 40% CPU reduction mentioned in the Release Notes for JP 5.1.4, but since we are locked on a custom kernel, we can’t upgrade the whole system right now, so the question is: what files contain the fix, so we can copy them from a new install?

Thank you!

$ ldd /usr/sbin/nvargus-daemon
	linux-vdso.so.1 (0x0000ffff86242000)
	libnvargus_socketserver.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvargus_socketserver.so (0x0000ffff85fb0000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff85e00000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff86209000)
	libEGL.so.1 => /lib/aarch64-linux-gnu/libEGL.so.1 (0x0000ffff85dd0000)
	libnvvic.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvvic.so (0x0000ffff85da0000)
	libnvscf.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvscf.so (0x0000ffff85630000)
	libnvcamerautils.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcamerautils.so (0x0000ffff855f0000)
	libnvcam_imageencoder.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcam_imageencoder.so (0x0000ffff855c0000)
	libnvrm_mem.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_mem.so (0x0000ffff855a0000)
	libnvrm_sync.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_sync.so (0x0000ffff85580000)
	libnvrm_surface.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_surface.so (0x0000ffff85540000)
	libnvrm_host1x.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_host1x.so (0x0000ffff85510000)
	libnvos.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvos.so (0x0000ffff854e0000)
	libnvbufsurface.so.1.0.0 => /usr/lib/aarch64-linux-gnu/nvidia/libnvbufsurface.so.1.0.0 (0x0000ffff85410000)
	libnvmm_utils.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvmm_utils.so (0x0000ffff853e0000)
	libnvcameratools.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcameratools.so (0x0000ffff85340000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff85110000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff85070000)
	libGLdispatch.so.0 => /lib/aarch64-linux-gnu/libGLdispatch.so.0 (0x0000ffff84ee0000)
	libnvrm_stream.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_stream.so (0x0000ffff84ec0000)
	libnvsocsys.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvsocsys.so (0x0000ffff84ea0000)
	libnvcolorutil.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcolorutil.so (0x0000ffff84e70000)
	libnvmedia_isp_ext.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_isp_ext.so (0x0000ffff84e30000)
	libcuda.so.1 => /usr/lib/aarch64-linux-gnu/nvidia/libcuda.so.1 (0x0000ffff83170000)
	libnvcamlog.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcamlog.so (0x0000ffff83150000)
	libnvfnetstoredefog.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvfnetstoredefog.so (0x0000ffff83100000)
	libnvfnet.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvfnet.so (0x0000ffff83040000)
	libnvfnetstorehdfx.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvfnetstorehdfx.so (0x0000ffff83010000)
	libnvrm_chip.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_chip.so (0x0000ffff82ff0000)
	libnvodm_imager.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvodm_imager.so (0x0000ffff82a90000)
	libnvcapture.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcapture.so (0x0000ffff82a20000)
	libGLESv2.so.2 => /lib/aarch64-linux-gnu/libGLESv2.so.2 (0x0000ffff829e0000)
	libnvtvmr.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvtvmr.so (0x0000ffff828e0000)
	libnvphs.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvphs.so (0x0000ffff828b0000)
	libnvfusacap.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvfusacap.so (0x0000ffff82860000)
	libnvisppg.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvisppg.so (0x0000ffff82770000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff82740000)
	libnvjpeg.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvjpeg.so (0x0000ffff826e0000)
	libnvsciipc.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvsciipc.so (0x0000ffff826a0000)
	libnvbuf_fdmap.so.1.0.0 => /usr/lib/aarch64-linux-gnu/nvidia/libnvbuf_fdmap.so.1.0.0 (0x0000ffff82680000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff82660000)
	librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff82640000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff82620000)
	libnvrm_gpu.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvrm_gpu.so (0x0000ffff825a0000)
	libexpat.so.1 => /lib/aarch64-linux-gnu/libexpat.so.1 (0x0000ffff82560000)
	libnvcamv4l2.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvcamv4l2.so (0x0000ffff82530000)
	libnvisp.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvisp.so (0x0000ffff82440000)
	libnvmmlite.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite.so (0x0000ffff82420000)
	libnvmmlite_utils.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite_utils.so (0x0000ffff82400000)
	libnvtegrahv.so => /usr/lib/aarch64-linux-gnu/nvidia/libnvtegrahv.so (0x0000ffff823e0000)

Replace the libs for CPU usage of Argus.

libnvscf.so.35.4.1.cpu_usage (8.4 MB)

Thanks

please note that,
we have seen 40% CPU reduction during 12 camera use case, which does not always translate to 40% aggregate reduction with 2 or 4 camera use cases.

I have replaced the file attached by you into this path: /usr/lib/aarch64-linux-gnu/tegra/libnvscf.so

Notice the “tegra” different from “nvidia” in the path.

Unfortunately, there is no measurable impact on the CPU load 🙁 more than half of the CPU time is sys calls, this was not the case in JP 4.6, see the linked topic.

PS: this is for 2 cameras.

Also, as requested in the linked topic, Here is the output of systemd-cgtop

Control Group                                                                                   Tasks   %CPU   Memory  Input/s Output/s
/                                                                                                 611  456.6     2.7G        -        -
user.slice                                                                                        320  223.5   967.6M        -        -
system.slice                                                                                      130  190.7   936.8M        -        -
system.slice/nvargus-daemon.service                                                                47  190.3   361.5M        -        -
system.slice/avahi-daemon.service                                                                   2    0.1     1.4M        -        -
system.slice/jtop.service                                                                           4    0.0    21.3M        -        -
init.scope                                                                                          1      -   244.0K        -        -
system.slice/ModemManager.service                                                                   3      -     9.9M        -