我有两个双服务器,具有相同的硬件(Infiniband和Nvidia Tesla)和相同的操作系统(CentOS6.6,内核和驱动程序)。
在host1上,一切正常,但是 在host2上我不能再运行这个服务了,因为我收到了这个错误:
[root@vega2 nvidia_peer_memory-1.0-0]# service nv_peer_mem start
starting... FATAL: Error inserting nv_peer_mem (/lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko): Invalid module format
Failed to load nv_peer_mem
和dmesg说:
nv_p2p_dummy: exports duplicate symbol nvidia_p2p_free_page_table (owned by nvidia)
请注意,host2已经工作了2个月,直到夏天圣日之后重新启动它。 :-( 导致此错误的原因是什么?主要软件组件没有改变(内核,Nvidia驱动程序,Mellanox驱动程序)和硬件是可以的。我也尝试重复安装程序,但是我遇到了模块加载点:
[root@vega2 nvidia_peer_memory-1.0-0]# rpm -ivh /root/rpmbuild/RPMS/x86_64/nvidia_peer_memory-1.0-0.x86_64.rpm
Preparing... ########################################### [100%]
1:nvidia_peer_memory ########################################### [100%]
FATAL: Error inserting nv_peer_mem (/lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko): Invalid module format
我发现this post关于导出相同符号的两个内核模块,但是为什么在host2上这个第二个模块令人不安nv_peer_mem,而在host1上却没有? 以下是两个主机的nm命令输出完全相同。
[root@vega2 nvidia_peer_memory-1.0-0]# nm /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/video/nvidia.ko |grep nvidia_p2p_free_ page_table
0000000088765bb5 A __crc_nvidia_p2p_free_page_table
0000000000000028 r __kcrctab_nvidia_p2p_free_page_table
000000000000007e r __kstrtab_nvidia_p2p_free_page_table
0000000000000050 r __ksymtab_nvidia_p2p_free_page_table
00000000004bcb10 T nvidia_p2p_free_page_table
[root@vega2 nvidia_peer_memory-1.0-0]# nm /lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko |grep nvidia_p2p_free_page_table
U nvidia_p2p_free_page_table
提前感谢您的帮助。 STE。