[mvapich-discuss] Limic2 on RHEL4 AS
Constantinos Evangelinos
ce107 at MIT.EDU
Thu Jun 18 17:41:34 EDT 2009
Hi - I'm trying to build and test MVAPICH2 1.4rc1 on a small cluster of RHEL4
boxes with Infiniband (using Intel compilers 10.1). Unfortunately it appears
that Limic2 has been written assuming a kernel version > 2.6.9 or 2.6.10 when
the transition from the old ioctl happened.
[root at bowditch limic]# gmake
gmake -C /lib/modules/2.6.9-55.0.9.ELsmp/build
SUBDIRS=/root/build/mvapich2-1.4rc1/limic modules
gmake[1]: Entering directory `/usr/src/kernels/2.6.9-55.0.9.EL-smp-x86_64'
CC [M] /root/build/mvapich2-1.4rc1/limic/limic.o
In file included from /root/build/mvapich2-1.4rc1/limic/limic.c:17:
include/linux/cdev.h:24: warning: "struct inode" declared inside parameter
list
include/linux/cdev.h:24: warning: its scope is only this definition or
declaration, which is probably not what you want
/root/build/mvapich2-1.4rc1/limic/limic.c:103: error: unknown field
`unlocked_ioctl' specified in initializer
/root/build/mvapich2-1.4rc1/limic/limic.c:103: warning: initialization from
incompatible pointer type
gmake[2]: *** [/root/build/mvapich2-1.4rc1/limic/limic.o] Error 1
gmake[1]: *** [_module_/root/build/mvapich2-1.4rc1/limic] Error 2
gmake[1]: Leaving directory `/usr/src/kernels/2.6.9-55.0.9.EL-smp-x86_64'
gmake: *** [all] Error 2
I was able to build the limic kernel module by making the following changes:
*** limic.c 2009-06-18 17:32:44.000000000 -0400
--- limic.c.new 2009-06-18 17:35:45.000000000 -0400
***************
*** 14,23 ****
#include <linux/init.h>
#include <linux/module.h>
#include <linux/cdev.h>
#include <linux/types.h>
#include <linux/kdev_t.h>
- #include <linux/fs.h>
#include "limic_internal.h"
--- 14,23 ----
#include <linux/init.h>
#include <linux/module.h>
+ #include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/types.h>
#include <linux/kdev_t.h>
#include "limic_internal.h"
***************
*** 32,37 ****
--- 32,38 ----
int limic_ioctl(
+ struct inode *inode,
struct file *fp,
unsigned int op_code,
unsigned long arg)
***************
*** 100,106 ****
static struct file_operations limic_fops={
! unlocked_ioctl: limic_ioctl,
open: limic_open,
release: limic_release
};
--- 101,107 ----
static struct file_operations limic_fops={
! ioctl: limic_ioctl,
open: limic_open,
release: limic_release
};
The kernel module then builds fine but when I proceed to build the rest of the
MVAPICH2 code I get in trouble with the instances of use of ioctl in
limic_lib.h - the old ioctl has an extra inode argument.
So the question becomes - is Limic2 restricted to more recent kernel versions
(despite the popularity of RHEL4) or can a fix be put in 1.4 in time for the
final release?
Also - there is nothing that claims it cannot be done but maybe it's an
oversight - can CR work in conjunction with Limic2?
Constantinos
--
Dr. Constantinos Evangelinos Room 54-1518, EAPS/MIT
Earth, Atmospheric and Planetary Sciences 77 Massachusetts Avenue
Massachusetts Institute of Technology Cambridge, MA 02139
+1-617-324-3386/+1-617-253-4464 (fax) USA
More information about the mvapich-discuss
mailing list