I am interested in the communication between the CPU and the GPU on the Jetson nano and am trying to investigate this.
I have two questions.
What driver is used for the communication between CPU and GPU in Jetson nano?
Are the drivers open source? If so, where can I find it?
In Jetson nano, when a userland process requests the GPU to perform a calculation and the GPU finishes the calculation, the CPU should receive an interrupt.
Is it the closed driver called nvgpu that is output when the command “lsmod” is executed?
Or is it a driver called host_syncpt[1] described in the source “/proc/interrupts”?
Or is it something else?
[1]nvidia/drivers/video/tegra/host/host1x_instr.c
Environment
Hardware: Jetson nano
Kernel: linux kernel-4.9
Then I try to change the priority of interrupts(Bottom Half) by GPU to CPU , and add features that allows CPU to identify if the interrupt is by the GPU or not.
I understood that gk20a_stall is used to copy data etc., and checked that it is used many times using the command “watch”.
But, gk20a_nonstall is rarely used, when is it executed?
I am not able to reply your question since I don’t directly work on the nvgpu driver If you need help, I can share this to internal team. What is the exact question here?
BTW, generally we don’t suggest customer to customize the nvgpu driver. If there is any error created after this customization, we may not able to support it.
Whenever a stall interrupt is in progress, the GPU engines are stalled from progressing further till the interrupt is handled. However, for nonstall interrupts, the engines are not stalled. There could be a few more components alongwith the engines, e.g. FECS etc.