Hi,
We develop an application based on Tegra_multimedia_API to render multiple cameras videos simultaneously. The data flow path is as follows:
V4L2 CSI (DMABUF, UYVY) ----> NvBufferTransform (DMABUF, ARGB32, Blocklinear layout) ----> OSD (DMABUF, ARGB) --> EglRender
Image is captured via V4l2 API in DMA Buffer. And its format is UYVY.
To put OSD text on image, we use NvBufferTransform() API to convert UYVY to ARGB format.
Then nvosd_put_text() is called to add OSD on the image.
Finally, the OSD image is rendered by EglRender.
The application works well if only one process is running.
However, if multiple instances of the application are running simultaneously,
while each process captures and renders image from different, single camera,
e.g, process 1 captures and renders image from CAM1,
process 5 captures and renders image from CAM5,
we get the following dmesgs from time to time,
and the rendering FPS decreases while error msg appears.
22794.631451] ---- syncpts ----
[22794.631464] id 5 (disp_d) min 15886 max 15886 refs 1 (previous client : )
[22794.631469] id 6 (disp_e) min 975 max 975 refs 1 (previous client : )
[22794.631474] id 7 (disp_f) min 4 max 4 refs 1 (previous client : )
[22794.631479] id 8 (vblank1) min 1365780 max -6 refs 1 (previous client : )
[22794.631495] id 20 (gp10b_507) min 666354 max 666396 refs 1 (previous client : )
[22794.631499] id 21 (gp10b_506) min 64 max 64 refs 1 (previous client : )
[22794.631503] id 22 (gp10b_505) min 82202 max 82202 refs 1 (previous client : gp10b_505)
[22794.631508] id 23 (15340000.vic_robot_send_0) min 13302 max 13302 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631513] id 24 (15340000.vic_robot_send_0) min 13298 max 13298 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631517] id 25 (15340000.vic_robot_send_0) min 39119 max 39119 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631524] id 28 (15340000.vic_robot_send_0) min 54216 max 54216 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631529] id 29 (tegra-vi4) min 22427 max 22427 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631533] id 30 (tegra-vi4) min 1213 max 1214 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631538] id 31 (tegra-vi4) min 1213 max 1213 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631542] id 32 (tegra-vi4) min 1212 max 1213 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631547] id 33 (tegra-vi4) min 7677 max 7678 refs 1 (previous client : 15480000.nvdec_video_decode_0)
[22794.631551] id 34 (tegra-vi4) min 7670 max 7672 refs 1 (previous client : 15480000.nvdec_video_decode_0)
[22794.631555] id 35 (tegra-vi4) min 7670 max 7670 refs 1 (previous client : 15480000.nvdec_video_decode_0)
[22794.631560] id 36 (tegra-vi4) min 1211 max 1212 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631564] id 37 (gp10b_503) min 16146 max 16146 refs 1 (previous client : gp10b_503)
[22794.631568] id 38 (gp10b_502) min 9694 max 9698 refs 1 (previous client : 15340000.vic_video_decode_0)
[22794.631573] id 39 (gp10b_500) min 16142 max 16142 refs 1 (previous client : 15480000.nvdec_video_decode_0)
[22794.631577] id 40 (gp10b_501) min 35458 max 35458 refs 1 (previous client : gp10b_503)
[22794.632135] ---- channels ----
[22794.632148]
channel 2 - 15820000.se
[22794.632151] NvHost basic channel registers:
[22794.632155] CMDFIFO_STAT_0: 00002040
[22794.632158] CMDFIFO_RDATA_0: 840c1100
[22794.632162] CMDP_OFFSET_0: 00000000
[22794.632165] CMDP_CLASS_0: 00000000
[22794.632168] CHANNELSTAT_0: 00000000
[22794.632171] The CDMA sync queue is empty.
[22794.632176]
channel 3 - 15830000.se
[22794.632178] NvHost basic channel registers:
[22794.632180] CMDFIFO_STAT_0: 00002040
[22794.632183] CMDFIFO_RDATA_0: 9410d4d7
[22794.632187] CMDP_OFFSET_0: 00000000
[22794.632190] CMDP_CLASS_0: 00000000
[22794.632192] CHANNELSTAT_0: 00000000
[22794.632194] The CDMA sync queue is empty.
[22794.632199]
channel 4 - 15840000.se
[22794.632201] NvHost basic channel registers:
[22794.632204] CMDFIFO_STAT_0: 00002040
[22794.632206] CMDFIFO_RDATA_0: 614947c8
[22794.632210] CMDP_OFFSET_0: 00000000
[22794.632212] CMDP_CLASS_0: 00000000
[22794.632215] CHANNELSTAT_0: 00000000
[22794.632217] The CDMA sync queue is empty.
[22794.632224]
---- host general irq ----
[22794.632227] sync_intc0mask = 0x00000001
[22794.632230] sync_intmask = 0x50000003
[22794.632232]
---- host syncpt irq mask ----
[22794.632234]
---- host syncpt irq status ----
[22794.632237] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[22794.632240] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[22794.632243] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[22794.632246] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[22794.632249] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[22794.632252] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[22794.632255] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[22794.632258] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[22794.632260] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[22794.632263] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[22794.632266] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[22794.632269] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[22794.632272] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[22794.632275] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[22794.632278] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[22794.632281] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[22794.632284] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[22794.632287] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[22794.632292] gp10b pbdma 0:
[22794.632296] id: 8 (tsg), next_id: 8 (tsg) chan status: invalid
[22794.632314] PBDMA_PUT: 0000001e01521234 PBDMA_GET: 0000001e01521220 GP_PUT: 00000ebc GP_GET: 00000eb7 FETCH: 00000ebc HEADER: 20001b08
HDR: 200406c0 SHADOW0: 01521158 SHADOW1: 0000dc1e
[22794.632320] gp10b eng 0:
[22794.632323] id: 8 (tsg), next_id: 8 (tsg), ctx status: valid
[22794.632325] faulted
[22794.632327] busy
[22794.632331] gp10b eng 1:
[22794.632334] id: 4 (tsg), next_id: 4 (tsg), ctx status: valid
[22794.632508] 500-gp10b, pid 10207, refs 2:
[22794.632512] channel status: in use idle not busy
[22794.632519] RAMFC : TOP: 8000001f0000dda0 PUT: 0000001f0000dda0 GET: 0000001f0000dda0 FETCH: 0000001f0000dda0
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00002701 SEMAPHORE 0000001e 01460aa0 00000000 00000002
[22794.632525] 501-gp10b, pid 10209, refs 2:
[22794.632527] channel status: in use idle not busy
[22794.632533] RAMFC : TOP: 8000001f0000dd20 PUT: 0000001f0000dd20 GET: 0000001f0000dd20 FETCH: 0000001f0000dd20
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00002801 SEMAPHORE 0000001e 01460aa0 00000000 00000002
[22794.632538] 502-gp10b, pid 10201, refs 6:
[22794.632541] channel status: in use on_eng_pending busy
[22794.632547] RAMFC : TOP: 8000001e01521220 PUT: 0000001e01521234 GET: 0000001e01521220 FETCH: 00000c1e01521244
HEADER: 20001b08 COUNT: 01110002
SYNCPOINT 00000000 00002601 SEMAPHORE 0000001e 01660aa0 00000000 00000002
[22794.632552] 503-gp10b, pid 10208, refs 2:
[22794.632555] channel status: in use idle not busy
[22794.632560] RAMFC : TOP: 8000001f00007f40 PUT: 0000001f00007f40 GET: 0000001f00007f40 FETCH: 0000001f00007f40
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00002501 SEMAPHORE 0000001e 01420aa0 000018a8 00000002
[22794.632565] 505-gp10b, pid 7115, refs 2:
[22794.632568] channel status: in use idle not busy
[22794.632573] RAMFC : TOP: 8000001f0000f150 PUT: 0000001f0000f150 GET: 0000001f0000f150 FETCH: 0000001f0000f150
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00001601 SEMAPHORE 0000001e 04370080 00000001 00001001
[22794.632578] 506-gp10b, pid 6588, refs 2:
[22794.632581] channel status: in use idle not busy
[22794.632586] RAMFC : TOP: 8000001f0000c300 PUT: 0000001f0000c300 GET: 0000001f0000c300 FETCH: 0000001f0000c300
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00001501 SEMAPHORE 00000000 00000000 00000000 00000000
[22794.632591] 507-gp10b, pid 6588, refs 60:
[22794.632594] channel status: in use pending busy
[22794.632599] RAMFC : TOP: 8000001f00006f20 PUT: 0000001f00006f20 GET: 0000001f00006f20 FETCH: 0000001f00006f20
HEADER: 60400000 COUNT: 80000000
SYNCPOINT 00000000 00001401 SEMAPHORE 0000000d fc001000 05e014e1 01100002
[22794.632604] 508-gp10b, pid 5412, refs 2:
[22794.632607] channel status: in use idle not busy
[22794.632612] RAMFC : TOP: 0000000000000000 PUT: 0000000000000000 GET: 0000000000000000 FETCH: 0000000000000000
HEADER: 60400000 COUNT: 00000000
SYNCPOINT 00000000 00000000 SEMAPHORE 00000000 00000000 00000000 00000000
[22794.632617] 509-gp10b, pid 5412, refs 2:
[22794.632620] channel status: in use idle not busy
[22794.632625] RAMFC : TOP: 0000000000000000 PUT: 0000000000000000 GET: 0000000000000000 FETCH: 0000000000000000
HEADER: 60400000 COUNT: 00000000
SYNCPOINT 00000000 00000000 SEMAPHORE 00000000 00000000 00000000 00000000
[22794.632630] 510-gp10b, pid 5412, refs 2:
[22794.632632] channel status: in use idle not busy
[22794.632637] RAMFC : TOP: 0000000000000000 PUT: 0000000000000000 GET: 0000000000000000 FETCH: 0000000000000000
HEADER: 60400000 COUNT: 00000000
SYNCPOINT 00000000 00000000 SEMAPHORE 00000000 00000000 00000000 00000000
[22794.632642] 511-gp10b, pid 5412, refs 2:
[22794.632644] channel status: in use idle not busy
[22794.632649] RAMFC : TOP: 0000000000000000 PUT: 0000000000000000 GET: 0000000000000000 FETCH: 0000000000000000
HEADER: 60400000 COUNT: 00000000
SYNCPOINT 00000000 00000000 SEMAPHORE 00000000 00000000 00000000 00000000
[22794.632666] nvgpu: 17000000.gp10b gk20a_fifo_handle_mmu_fault_locked:1722 [ERR] mmu fault on engine 0, engine subid 0 (gpc), client 4 (t1 1), addr 0x1e02050000, type 2 (pte), access_type 0x00000000,inst_ptr 0x1fffb3f000
[22794.658385] nvgpu: 17000000.gp10b gk20a_fifo_set_ctx_mmu_error_tsg:1543 [ERR] TSG 8 generated a mmu fault
[22794.668159] nvgpu: 17000000.gp10b gk20a_fifo_set_ctx_mmu_error_ch:1532 [ERR] channel 502 generated a mmu fault
[22794.678568] nvgpu: 17000000.gp10b nvgpu_set_error_notifier_locked:135 [ERR] error notifier set to 31 for ch 502
[22794.689283] nvgpu: 17000000.gp10b fifo_error_isr:2497 [ERR] channel reset initiated from fifo_error_isr; intr=0x10000000
[22799.117457] ---- mlocks ----
What does this error mean and how to fix it?