Queue delay in trace

I’m trying to understand this trace (tracealyzer). The ControlQueue size is 128, I don’t quite follow why the symetrix actor blocks for 408 ms here when the queue isn’t full (according to the trace numbers) and unblocks before an xQueueReceive happens.

trace.zip (21.0 KB)

Any direction someone can point me here?
The device is an STM32F7

Are any other tasks or interrupts using the queue? Or is this showing all accesses to the queue?

Well, perhaps you should define “Using”.

Only one task consumes the queue, in this case it was blocked in vTaskDelay. No interrupts are doing anything with this. All stacks are showing valid. I think this trace is showing all accesses, although snapshots can be a bit tricky.

Unless I’m missing something, all tasks using and consuming are the same priority.

If the trace is showing the task blocking because the queue is full then this seems to be the source of the trace message: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/queue.c#L977 - but immediately above there it is determined that the queue isn’t full (presumably) because it only contains 119 items - so it is indeed curious. Put a break point on that line then inspect the queue in the debugger to see how many items it thinks it is containing.

Clutching at straws - Is the queue part of a queue set?

Its not part of a queue set.

I suspect something funny with the trace. Reading the spaces directly before using uxQueueSpacesAvailable returns 0 where the trace shows 120, so something is amiss there.

Hi Erik. Are you recording in streaming mode? In that case, check that the trace is complete and doesn’t have Missed Events in the Live Stream window. Otherwise, have you been in contact with our support about this? If not, I recommend contacting support@percepio.com.

I’m out of support. I’m on version 4.3.4 with trace version 4.1.5, so maybe thats the problem.

I don’t think there are any missed events, this is a snapshot.

About Live Streaming, there is something funny about the libs, I could only get it to work about 1 of 10 tries, with lots of jlink errors.

Using CrossStudio for Arm.