tracelogger in ringmode forever

Hi qnx experts,
we are running a qnx6.2 system with about 200 application threads (!).
We already use tracelogger to analyse race conditions etc.
Now I want to enable our testers in the field to create actual kernel trace images whenever they observe slow system responses etc. Each kernel trace log should cover the last 15 MB of events.

But to alloc the necessary kernel buffers with 15MB of contiguous memory I must start tracelogger before the (greedy) application. Stopping the tracelogger and restarting it again in ring mode is not an option since the contiguous memory seems not to be availble any more :neutral_face:

Is there any configuration available where tracelogger (virtually) runs in ring mode on 15MB buffers and (repeatedly) stores the complete buffer on events/signals emitted by applications ?

Thanks for any hint etc. !

regards, L.-V.

I think so. I am not completely clear on what you are asking for, but it sounds like you just want to be able to dump the ring repeatedly.

First thing, tracelogger is just example code. You can write your own “system manager” (using the TraceEvent api) that allocates the memory, then starts and stops the ring as you see fit.

The source code to tracelogger is part of the CoreOS project over at Foundry27. Make sure you are registered first, and then go to … m=exsy1001

Note that you might have to cut out a few newer features to make this compile under 6.2 (that’s pretty old - have you considered upgrading?) but the fundamental interfaces haven’t changed.
There is also a new option to use a persisten kernel tracebuffer - checkout the usemsg.