NvBufferTransformAsync bug

Jetpack 4.5.1/ TX2-NX
If I use NvBufferTransformAsync/NvBufferSyncObjWait in single thread application, is all OK.
but it will be blocked or failed in multi-thread application, kernel will print like this:

[四 5月 11 19:54:51 2023] Illegal syncpoint client access (ch=1, id=22)
[四 5月 11 19:54:51 2023] Illegal syncpoint client access (ch=1, id=22)
[四 5月 11 19:54:51 2023] Illegal syncpoint client access (ch=1, id=22)
[四 5月 11 20:06:15 2023] FAN rising trip_level:1 cur_temp:46100 trip_temps[2]:60000
[四 5月 11 20:07:37 2023] FAN cooling trip_level:0 cur_temp:37700 trip_temps[1]:46000
[四 5月 11 20:11:25 2023] FAN rising trip_level:1 cur_temp:46100 trip_temps[2]:60000
[四 5月 11 20:12:33 2023] FAN cooling trip_level:0 cur_temp:37700 trip_temps[1]:46000
[五 5月 12 08:48:36 2023] Illegal syncpoint client access (ch=8, id=22)
[五 5月 12 08:48:43 2023] host1x 13e10000.host1x: mmsdk_test: syncpoint id 22 (15340000.vic_mmsdk_test_0) stuck waiting 27162, timeout=-1
[五 5月 12 08:48:43 2023] host1x 13e10000.host1x: mmsdk_test: syncpoint id 22 (15340000.vic_mmsdk_test_0) stuck waiting 27156, timeout=-1
[五 5月 12 08:48:43 2023] ---- syncpts ----
[五 5月 12 08:48:43 2023] id 2 (disp_a) min 5 max 5 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 3 (disp_b) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 4 (disp_c) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 8 (vblank0) min -4 max -4 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 20 (gp10b_507) min 10299444 max 10299444 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 21 (gp10b_506) min 4 max 4 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 22 (15340000.vic_mmsdk_test_0) min 27154 max 27172 refs 8 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 24 (154c0000.nvenc_V4L2_EncThread_0) min 28406 max 28408 refs 3 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 25 (15340000.vic_NVMVidEncInputT_0) min 39282 max 39282 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:43 2023] id 28 (15340000.vic_V4L2_EncThread_0) min 3374 max 3374 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 29 (154c0000.nvenc_V4L2_EncThread_0) min 16155 max 16157 refs 3 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 30 (15340000.vic_NVMVidEncInputT_0) min 30320 max 30323 refs 3 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:43 2023] id 31 (15340000.vic_V4L2_EncThread_0) min 700 max 700 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 32 (154c0000.nvenc_V4L2_EncThread_0) min 11013 max 11013 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 33 (15340000.vic_V4L2_EncThread_0) min 2853 max 2853 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 34 (154c0000.nvenc_V4L2_EncThread_0) min 468 max 468 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 35 (15340000.vic_NVMVidEncInputT_0) min 4363 max 4363 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 36 (15340000.vic_NVMVidEncInputT_0) min 5535 max 5535 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)

[五 5月 12 08:48:43 2023] ---- syncpts ----
[五 5月 12 08:48:43 2023] id 2 (disp_a) min 5 max 5 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 3 (disp_b) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 4 (disp_c) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 8 (vblank0) min -4 max -4 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 20 (gp10b_507) min 10299444 max 10299444 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 21 (gp10b_506) min 4 max 4 refs 1 (previous client : )
[五 5月 12 08:48:43 2023] id 22 (15340000.vic_mmsdk_test_0) min 27154 max 27172 refs 8 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 24 (154c0000.nvenc_V4L2_EncThread_0) min 28416 max 28418 refs 3 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 25 (15340000.vic_NVMVidEncInputT_0) min 39297 max 39297 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:43 2023] id 28 (15340000.vic_V4L2_EncThread_0) min 3374 max 3374 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 29 (154c0000.nvenc_V4L2_EncThread_0) min 16163 max 16165 refs 3 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 30 (15340000.vic_NVMVidEncInputT_0) min 30335 max 30335 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:43 2023] id 31 (15340000.vic_V4L2_EncThread_0) min 700 max 700 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 32 (154c0000.nvenc_V4L2_EncThread_0) min 11013 max 11013 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 33 (15340000.vic_V4L2_EncThread_0) min 2853 max 2853 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:43 2023] id 34 (154c0000.nvenc_V4L2_EncThread_0) min 468 max 468 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 35 (15340000.vic_NVMVidEncInputT_0) min 4363 max 4363 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:43 2023] id 36 (15340000.vic_NVMVidEncInputT_0) min 5535 max 5535 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)

[五 5月 12 08:48:47 2023] host1x 13e10000.host1x: cdma_handle_timeout: timeout: 22 (15340000.vic_mmsdk_test_0) clientid 228, HW thresh 27154, done 27157
[五 5月 12 08:48:47 2023] ---- mlocks ----
[五 5月 12 08:48:47 2023] 17: locked by channel 8
[五 5月 12 08:48:47 2023] 18: locked by channel 6

[五 5月 12 08:48:47 2023] ---- syncpts ----
[五 5月 12 08:48:47 2023] ---- channels ----
[五 5月 12 08:48:47 2023] 
                            channel 1 - 15340000.vic

[五 5月 12 08:48:47 2023] NvHost basic channel registers:
[五 5月 12 08:48:47 2023] CMDFIFO_STAT_0:  00000000
[五 5月 12 08:48:47 2023] CMDFIFO_RDATA_0: 00000041
[五 5月 12 08:48:47 2023] CMDP_OFFSET_0:   00000050
[五 5月 12 08:48:47 2023] CMDP_CLASS_0:    00000001
[五 5月 12 08:48:47 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:47 2023] 
                            ffffffc0df63b600: JOB, syncpt_id=22, syncpt_val=27157, first_get=00000670, timeout=10000, num_slots=5

[五 5月 12 08:48:47 2023] 
                            channel 5 - 154c0000.nvenc

[五 5月 12 08:48:47 2023] NvHost basic channel registers:
[五 5月 12 08:48:47 2023] CMDFIFO_STAT_0:  00000000
[五 5月 12 08:48:47 2023] CMDFIFO_RDATA_0: 00000840
[五 5月 12 08:48:47 2023] CMDP_OFFSET_0:   00000000
[五 5月 12 08:48:47 2023] CMDP_CLASS_0:    00000021
[五 5月 12 08:48:47 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:47 2023] 
                            ffffffc0d3b49800: JOB, syncpt_id=24, syncpt_val=30038, first_get=00000198, timeout=10000, num_slots=10
[五 5月 12 08:48:47 2023]     GATHER at ffcb8000+6078, 59 words
[五 5月 12 08:48:47 2023] 100b0001 
[五 5月 12 08:48:47 2023] 00000000 
[五 5月 12 08:48:47 2023] 10100002 
[五 5月 12 08:48:47 2023] 000001c0 
[五 5月 12 08:48:47 2023] 11001903 
[五 5月 12 08:48:47 2023] 10100002 
[五 5月 12 08:48:47 2023] 000001c1 
[五 5月 12 08:48:47 2023] 0000092d 
[五 5月 12 08:48:47 2023] 10100002 
...
[五 5月 12 08:48:57 2023] ---- syncpts ----
[五 5月 12 08:48:57 2023] id 2 (disp_a) min 5 max 5 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 3 (disp_b) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 4 (disp_c) min 3 max 3 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 8 (vblank0) min -4 max -4 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 20 (gp10b_507) min 10299444 max 10299444 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 21 (gp10b_506) min 4 max 4 refs 1 (previous client : )
[五 5月 12 08:48:57 2023] id 22 (15340000.vic_mmsdk_test_0) min 27301 max 27319 refs 8 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:57 2023] id 24 (154c0000.nvenc_V4L2_EncThread_0) min 31992 max 31992 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 25 (15340000.vic_NVMVidEncInputT_0) min 44655 max 44655 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:57 2023] id 28 (15340000.vic_V4L2_EncThread_0) min 3374 max 3374 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 29 (154c0000.nvenc_V4L2_EncThread_0) min 19707 max 19707 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 30 (15340000.vic_NVMVidEncInputT_0) min 35645 max 35645 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)
[五 5月 12 08:48:57 2023] id 31 (15340000.vic_V4L2_EncThread_0) min 700 max 700 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:57 2023] id 32 (154c0000.nvenc_V4L2_EncThread_0) min 11051 max 11051 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 33 (15340000.vic_V4L2_EncThread_0) min 2853 max 2853 refs 1 (previous client : 15340000.vic_mmsdk_test_0)
[五 5月 12 08:48:57 2023] id 34 (154c0000.nvenc_V4L2_EncThread_0) min 528 max 528 refs 1 (previous client : 15340000.vic_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 35 (15340000.vic_NVMVidEncInputT_0) min 4420 max 4420 refs 1 (previous client : 154c0000.nvenc_V4L2_EncThread_0)
[五 5月 12 08:48:57 2023] id 36 (15340000.vic_NVMVidEncInputT_0) min 5625 max 5625 refs 1 (previous client : 15340000.vic_NVMVidEncInputT_0)

[五 5月 12 08:48:57 2023] ---- channels ----
[五 5月 12 08:48:57 2023] 
                            channel 1 - 15340000.vic

[五 5月 12 08:48:57 2023] NvHost basic channel registers:
[五 5月 12 08:48:57 2023] CMDFIFO_STAT_0:  00000000
[五 5月 12 08:48:57 2023] CMDFIFO_RDATA_0: 00000041
[五 5月 12 08:48:57 2023] CMDP_OFFSET_0:   00000050
[五 5月 12 08:48:57 2023] CMDP_CLASS_0:    00000001
[五 5月 12 08:48:57 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:57 2023] 
                            ffffffc083722100: JOB, syncpt_id=22, syncpt_val=27304, first_get=000000d8, timeout=10000, num_slots=5

[五 5月 12 08:48:57 2023] 
                            channel 2 - 15820000.se

[五 5月 12 08:48:57 2023] NvHost basic channel registers:
[五 5月 12 08:48:57 2023] CMDFIFO_STAT_0:  00002040
[五 5月 12 08:48:57 2023] CMDFIFO_RDATA_0: 02018000
[五 5月 12 08:48:57 2023] CMDP_OFFSET_0:   00000000
[五 5月 12 08:48:57 2023] CMDP_CLASS_0:    00000000
[五 5月 12 08:48:57 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:57 2023] The CDMA sync queue is empty.

[五 5月 12 08:48:57 2023] 
                            channel 3 - 15830000.se

[五 5月 12 08:48:57 2023] NvHost basic channel registers:
[五 5月 12 08:48:57 2023] CMDFIFO_STAT_0:  00002040
[五 5月 12 08:48:57 2023] CMDFIFO_RDATA_0: 008300a0
[五 5月 12 08:48:57 2023] CMDP_OFFSET_0:   00000000
[五 5月 12 08:48:57 2023] CMDP_CLASS_0:    00000000
[五 5月 12 08:48:57 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:57 2023] The CDMA sync queue is empty.

[五 5月 12 08:48:57 2023] 
                            channel 4 - 15840000.se

[五 5月 12 08:48:57 2023] NvHost basic channel registers:
[五 5月 12 08:48:57 2023] CMDFIFO_STAT_0:  00002040
[五 5月 12 08:48:57 2023] CMDFIFO_RDATA_0: 44002c44
[五 5月 12 08:48:57 2023] CMDP_OFFSET_0:   00000000
[五 5月 12 08:48:57 2023] CMDP_CLASS_0:    00000000
[五 5月 12 08:48:57 2023] CHANNELSTAT_0:   00000000
[五 5月 12 08:48:57 2023] The CDMA sync queue is empty.

[五 5月 12 08:48:57 2023] 
                            ---- host general irq ----

[五 5月 12 08:48:57 2023] sync_intc0mask = 0x00000001
[五 5月 12 08:48:57 2023] sync_intmask = 0x5000000b
[五 5月 12 08:48:57 2023] 
                            ---- host syncpt irq mask ----

[五 5月 12 08:48:57 2023] 
                            ---- host syncpt irq status ----

[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[五 5月 12 08:48:57 2023] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27304
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0xd8
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   5
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES 0
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27307
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0x100
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   17
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES 5
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27310
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0x188
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   17
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES 5
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27313
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0x210
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   17
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES 5
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27316
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0x298
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   17
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES 5
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_ID   22
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     SYNCPT_VAL  27319
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     FIRST_GET   0x320
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     TIMEOUT     10000
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_SLOTS   17
[五 5月 12 08:48:57 2023] falcon 15340000.vic:     NUM_HANDLES  5

Hi,

Have you created a session for each thread with NvBufferSessionCreate?
If not, the multiple threads need to use the same session and might be blocked.

You can find an example in the below topic:

Thanks.

1 Like