GPUDirect RDMA - Module can not be insert into kernel

So I possibly have a “quick” workaround that may work. I will need to test further.

On the Jetson Orin, I downloaded public_sources.tbz2. I then modified the source for nv-p2p.c & nv-p2p.h located here:

Linux_for_Tegra/source/public/nvidia_kernel_display_driver_source/kernel-open/

I changed all the exported function names.
For example from this:

nvidia_p2p_dma_unmap_pages
nvidia_p2p_get_pages
nvidia_p2p_put_pages
nvidia_p2p_dma_map_pages
nvidia_p2p_free_page_table

To this:

nvidia_p2p_dma_unmap_pages_old
nvidia_p2p_get_pages_old
nvidia_p2p_put_pages_old
nvidia_p2p_dma_map_pages_old
nvidia_p2p_free_page_table_old

I then rebuilt nvidia.ko using make in

Linux_for_Tegra/source/public/nvidia_kernel_display_driver_source/

After a successful build, I replaced the original nvidia.ko located at

/lib/modules/5.10.104-tegra/extra/opensrc-disp/nvidia.ko

With my newly built nvidia.ko module.

Afterwards, I loaded the nv-p2p module:

$ sudo insmod /lib/modules/5.10.104-tegra/kernel/drivers/nv-p2p/nvidia-p2p.ko

and finally I was able to load the picoevb-rdma module

sudo insmod picoevb-rdma.ko

Hopefully this helps.

Regards,
YK

2 Likes