NVSIPL INvSIPLFrameCompletionQueue::pipeline->Get(): Queue full after ~100 loops

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux
QNX
other

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.9.1.10844
other

Host Machine Version
native Ubuntu 18.04
other

Hi,

I’m implementing NVSIPL code based on the nvsipl_camera sample. I don’t see how my frame queue handling is different than the sample code’s.

I create the frame and notification handling pipelines using SetPipelineCfg(…). After launching a thread with a while loop that calls the INvSIPLFrameCompletionQueue::frame_pipeline->Get(), the loop runs for about 100 iterations and then the following error is output:
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBlockingQueue.hpp: 129: Add: Queue is full

I don’t have this header file, and I couldn’t find anything online about it. There are no other relevant frame pipeline method calls to make, and nvsipl_camera doesn’t appear to make any other relevant calls. I am releasing the INvSIPLBuffer object after using it each loop as is done in the sample (I don’t expect that is related to the pipeline though anyways).

What conditions could be causing this issue?

Thank You
Mick Honey

Dear @michael.honey,
Is nvsipl_camera working without any issue?
May I know what is your objective and modifying nvsipl_camera sample in your use case? Also please share full log to inspect.

nvsipl_camera is working without any issue.

My objective is to pull camera image data from the system and pass it on to the application layer through an API I’m creating.

Here is the output of my program. There is some additional information about it that I’ll share after:

Configuration name: F008A120RM0A_CPHY_x4
Initializing NVSIPL
NvSIPL library version: 1.0.0
NvSIPL header version: 1.0.0
Registered output: 0 from link: 0 of quad: 0 as id: 0
MAX96712: Revision 2 detected
MAX96712 Rev 2: Link 0: Tx amplitude 0x28, 0x68, 0xb3, 0x72, 0xd2
MAX96712 Rev 2 manual adaptation on the link 0 (31)
MAX9295: Revision 8 detected!
Sensor AR0820 CRBC Rev 2.0 detected!
Module_id 22 Severity 6 : NvMediaICPCreateEx 76
Module_id 22 Severity 6 : T19x VI version  0x000019
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_WARN_ICP_FRAME_DROP
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
Queue timeout
Pipeline: 0, NOTIF_INFO_ICP_PROCESSING_DONE
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBlockingQueue.hpp: 129: Add: Queue is full
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBlockingQueue.hpp: 129: Add: Queue is full
SIPL_ICP_ISP_0: /dvs/git/dirty/git-master_linux/camera/fusa/sipl/src/core/utils/CNvMBlockingQueue.hpp: 129: Add: Queue is full

The repetition of NOTIF_INFO_ICP_PROCESSING_DONE happens before the Get() loop is spawned. After the Get() loop is spawned, the notifications stop for ~10 seconds. It’s usually after about 120 loops that the “Queue is full” warning is given. (I didn’t want to post a log with a loop counter running).

In this case, I’m not doing anything with the data, so I don’t think that my loop that is calling GetImage() is running too slow.

Thanks in advance for any feedback.

Dear @michael.honey,
May I know if the issue is resolved or need support?

Thank you for replying. We have resolved this issue. The queue that was filling up was the notification queue, so we set up a pipeline to read it, and now this issue has gone away.

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