What is the cause of the very high CPU usage of vi-output?

platform:jetson-xavier-agx

➜cat /etc/nv_tegra_release
# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64, DATE: Sun Mar 19 15:19:21 UTC 2023

Dear nvidia, hello, I am running the ros program of the AHD camera at jetson, after running for a period of time, I use the top command and find that the CPU usage of the vi-output process is very high, reaching 100%, in general, what is the reason for the CPU usage of this vi-output process to be so high? How do I reduce the CPU usage of this vi-output process? What information do you need to provide to resolve this issue? At present, there are 4 AHD cameras and 5 realsense D435 cameras on jetson, thank you.

hello DreamLan,

IIUC, realsense D435 is using USB interface, may I know what’s interface used by AHD cameras?
in addition, please also share your command-line for reference.

BTW,
"top" commands by default is in Irix mode, it expressed as a percentage of total CPU time.
for CPU usage evaluation by running "top" commands, you should also toggle Irix mode as off (Solaris mode) by “I” (shift+i) to check average CPU usage.
please share a task’s average CPU usage which divided by the total number of CPUs.

AHD camera uses the mipi interface, which is an analog camera, when it is just running, the cpu of the vi-output driver is normal, when we use it to run the algorithm, the cpu usage of the vi-output driver will be very high after running for a period of time

In the algorithm program, the following parameters are used to open the AHD camera of the MIPI interface
"nvv4l2camerasrc device=/dev/video0 ! video/x-raw(memory:NVMM), width=1920, height=1080,interlace-mode=progressive, framerate=30/1, format=UYVY! nvvidconv ! video/x-raw, format=(string)NV12 ! appsink name=raw_sink max-buffers=1 drop=true"

could you please also share the average CPU results for checking.
and… you may also check such high loading it’s caused by algorithm or not.

1 Like

Hello, I just reproduced the issue and I see that dmesg shows an error message like this.


This is the full dmesg when the vi-output CPU usage is high
dmesg.txt (136.8 KB)

hello DreamLan,

here’s discarding frame error report by VI, you may also need to check camrtc-capture.h for these flags, and err_data.
in short, flags=0, it means capture channel has encounter an error, and it must reset.

I am also seen lots of errors related to query UVC control.
could you please hack the driver to ignore/disable them for issue narrow down?

@JerryChang ,hello,I have decompressed the driver file, the driver version jetpack_5.1.1, how to modify the above? Thank you

The error related to querying the UVC control should be caused by connecting 5 realsense D435s, is it a firmware version mismatch? There is a depth camera that will be abnormal every once in a while, and it is connected to the USB 3.0 interface.

hello DreamLan,

kernel sources, [Driver Package (BSP) Sources] were available via Jetson Linux 35.4.1 | NVIDIA Developer
you may refer to developer guide for the steps, Building the Kernel.
please see-also Camera Driver Porting, since Jetpack-5.x release using kernel version 5.10 now.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.