だんなさんんが調べてくださったRHEL6.4でOFED-3.5.2をビルドしてもうまく動作しない問題
私も少し調べたので情報共有のため投稿いたします。
もう少し詳しいことを知りたいという方はtwitterなりメールなりで御問い合わせください。
だんなさんいろいろ調べていただきありがとうございました。
概要:
RHEL6.4 (Scientific Linux, CentOS)で、OFEDを動作させることができない。
不具合
service openibd startをすると[FAIL]となり、dmesgで以下のようなメッセージが
出力される。
compat: exports duplicate symbol __pskb_copy (owned by kernel)
compat: exports duplicate symbol __pskb_copy (owned by kernel)
compat: exports duplicate symbol __pskb_copy (owned by kernel)
compat: exports duplicate symbol __pskb_copy (owned by kernel)
原因
2.6.32-358.10.1.el6の修正点
- [net] tcp: take care of misalignments (Thomas Graf) [954298 896233]
で、__pskb_copyという関数が追加され、OFED-3.5.2の
compat-rdmaで、定義されている__pskb_copyと競合してしまうため
対処方法
以下のパッチのようにcompat-rdma内の__pbkb_copyを定義している箇所を
コメントアウトしてしまえば良い模様
コンパイルはcompat-rdma.specを以下のようパッチをあてるように修正してビルドした。
%build
rm -rf $RPM_BUILD_ROOT
cd $RPM_BUILD_DIR/%{_name}-%{_version}
patch -p1 < /tmp/patch_file
--- compat-rdma-3.5/compat/
compat-3.3.c.org 2013-08-16
19:20:02.447724492 +0900
+++ compat-rdma-3.5/compat/compat-3.3.c 2013-08-16 19:19:47.834773493 +0900
@@ -101,6 +101,7 @@
}
+#ifndef CONFIG_COMPAT_RHEL_6_4
/**
* __pskb_copy - create copy of an sk_buff with private head.
* @skb: buffer to copy
@@ -171,3 +172,4 @@
return n;
}
EXPORT_SYMBOL_GPL(__pskb_copy);
+#endif
--- compat-rdma-3.5/include/linux/
compat-3.3.h.org 2013-08-16
19:10:40.905367206 +0900
+++ compat-rdma-3.5/include/linux/compat-3.3.h 2013-08-16
19:23:17.159129795 +0900
@@ -26,8 +26,10 @@
#endif
#endif
+#ifndef CONFIG_COMPAT_RHEL_6_4
extern struct sk_buff *__pskb_copy(struct sk_buff *skb,
int headroom, gfp_t gfp_mask);
+#endif
#ifndef CONFIG_COMPAT_RHEL_6_4
static inline void skb_complete_wifi_ack(struct sk_buff *skb, bool acked)
rmpbuild
rpmbuild -bb --define '_topdir /var/tmp//OFED_topdir' --define
'__find_provides %{nil}' --nodeps --define '_dist .rhel6u4' --define
'configure_options --with-core-mod --with-user_mad-mod
--with-user_access-mod --with-addr_trans-mod --with-mthca-mod
--with-mlx4-mod --with-mlx4_en-mod --with-cxgb3-mod --with-cxgb4-mod
--with-nes-mod --with-qib-mod --with-ipoib-mod' --define
'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' --define
'KVERSION 2.6.32-358.14.1.el6.x86_64' --define 'K_SRC
/lib/modules/2.6.32-358.14.1.el6.x86_64/build' --define '_release
2.6.32_358.14.1.el6.x86_64' --define 'network_dir
/etc/sysconfig/network-scripts' --define '_prefix /usr' --define
'__arch_install_post %{nil}' ./compat-rdma.spec
参考サイト
http://community.mellanox.com/thread/1228
http://community.mellanox.com/servlet/JiveServlet/download/2333-1858/mlnx-ofed-pskb-copy.diff.zip
--
Hiroyuki Sato