I have an application where Jetson AGX Xavier receives a UDP packet every 1 millisecond and must reply to the server within 1millisecond. To allow some variations in performance, I set a threshold of 3 milliseconds. If the server doe not receive a response from the Jetson within 3 milliseconds, the server (an MCU) will timeout. The Jetson is running the real-time kernel (4.9.201-rt-tegra134
)
Extensive profiling shows that the Jetson can only keep up with this 1ms cycle for a few minutes, after which performance starts to get jittery and the server times out after about 15 minutes. My questions:
-
I use taskset to bind the process to a CPU. x86 linux has a utility called
irqbalance
which lets you free a certain CPU from interrup handling tasks. Is there something equivalent for L4T? -
Even after using real time kernel, I have not been able to get the Jetson to handle UDP packets reliably. What other things can I do to make the jetson run as deterministically as possible?