I tried to rebuild the srpm for nvidia_peer_memory 1.0.0 as instructed by the README, but the build fails with the error
In file included from include/linux/vmstat.h:5, from include/linux/mm.h:688, from /tmp/rpmbuild/BUILD/nvidia_peer_memory-1.0/nv_peer_mem.c:33: include/linux/percpu.h:713: error: 'printk_func_t' undeclared here (not in a function) include/linux/percpu.h:713: warning: type defaults to 'int' in declaration of 'per_cpu__printk_func'
I also get warnings about various versions of printk_* being redefined in the main kernel's printk.h header, included in some dependencies chained from include/linux/mm.h, after being previously defined in the ofa_kernel version of printk.h.
I was able to rebuild the same srpm on CentOS 6.7 with no problems, so I diffed the two versions of percpu.h in kernel 2.6.32-642.3.2 (CentOS 6.8) and kernel 2.6.32-573.26.1 (CentOS 6.7) and found that the 6.8 version added
/* To avoid include hell, as printk can not declare this, we declare it here */ DECLARE_PER_CPU(printk_func_t, printk_func);
This is most likely one of several additional changes to includes and declaration order. I suspect that the alternate kernel headers specified by the NOSTDINC_FLAGS="-I/usr/src/ofa_kernel/default/include/ -I/usr/src/ofa_kernel/default/include/rdma" flag passed to make haven't been updated to work with whatever changes were introduced by the 573->642 transition.
Does anybody know if I can safely either modify the build flags or the ofa_kernel sources to fix the build or use a version of the rpm compiled on 6.7? Failing that, when will a version of nvidia_peer_memory be released that supports 6.8? The main OFED package supported it pretty quickly so I'm surprised this doesn't as well.
Thanks!