[Pvfs2-users] compiling kernel module of pvfs2.7.1pre and RHEL4
kernel 2.6.9-55 - red hat
Michael Will
mwill at penguincomputing.com
Tue Jan 29 16:41:27 EST 2008
I checked pvfs 2.7.1pre out again from
:pserver:anonymous at cvs.parl.clemson.edu:/anoncvs
this morning and did a ./prepare, then a 'make kmod' which failed with:
CC [M] /root/x/pvfs2/src/kernel/linux-2.6/dir.o
/root/x/pvfs2/src/kernel/linux-2.6/dir.c: In function `pvfs2_dir_llseek':
/root/x/pvfs2/src/kernel/linux-2.6/dir.c:890: error: `SEEK_SET'
undeclared (first use in this function)
/root/x/pvfs2/src/kernel/linux-2.6/dir.c:890: error: (Each undeclared
identifier is reported only once
/root/x/pvfs2/src/kernel/linux-2.6/dir.c:890: error: for each function
it appears in.)
make[3]: *** [/root/x/pvfs2/src/kernel/linux-2.6/dir.o] Error 1
make[2]: *** [_module_/root/x/pvfs2/src/kernel/linux-2.6] Error 2
make[1]: *** [default] Error 2
make: *** [just_kmod] Error 2
after defining SEEK_SET 0 in dir.c, I get past that:
LD [M] /root/x/pvfs2/src/kernel/linux-2.6/pvfs2.o
Building modules, stage 2.
MODPOST
*** Warning: "class_device_destroy"
[/root/x/pvfs2/src/kernel/linux-2.6/pvfs2.ko] undefined!
CC /root/x/pvfs2/src/kernel/linux-2.6/pvfs2.mod.o
LD [M] /root/x/pvfs2/src/kernel/linux-2.6/pvfs2.ko
...
apart from that I don' t see any more warnings for 'make kmod'. 'make
all' gives some more:
src/io/trove/trove-dbpf/dbpf-dspace.c: In function
`dbpf_dspace_iterate_handles_op_svc':
src/io/trove/trove-dbpf/dbpf-dspace.c:533: warning: 'tmp_ptr' might be
used uninitialized in this function
CC src/io/trove/trove-dbpf/dbpf-context-server.o
...
CC [M] /root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.o
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c: In function
`pvfs2_dev_init':
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c:1039: warning:
passing arg 2 of `class_device_create' makes integer from pointer
without a cast
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c:1039: warning:
passing arg 3 of `class_device_create' makes pointer from integer
without a cast
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c:1039: warning:
too many arguments for format
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c: In function
`pvfs2_dev_cleanup':
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/devpvfs2-req.c:1052: warning:
implicit declaration of function `class_device_destroy'
CC [M] /root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/pvfs2-cache.o
CC [M] /root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/dcache.o
CC [M] /root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.o
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c: In function
`check_mapping_tree':
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:802: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:822: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c: In function
`locate_file_pages':
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:894: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:915: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:918: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:938: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c: In function
`do_readv_writev':
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:1133: warning:
'total_actual_io' might be used uninitialized in this function
modprobe pvfs2 fails since class_device_destroy is not defined
FATAL: Error inserting pvfs2
(/lib/modules/2.6.9-55.ELsmp/kernel/fs/pvfs2/pvfs2.ko): Unknown symbol
in module, or unknown parameter (see dmesg)
Note that doing a ./configure --with-kernel=/usr/src/kernels/linux-2.6/
--disable-kernel-aio --disable-aio-threaded-callbacks does not change that,
the issues is that pvfs2-config.h defines #define
HAVE_KERNEL_DEVICE_CLASSES 1 but since redhats 2.6.9-55 kernel does not
have that, I have to undefine
it. After recompiling without it, the only warnings I see seem to be:
rc/io/trove/trove-dbpf/dbpf-dspace.c:533: warning: 'tmp_ptr' might be
used uninitialized in this function
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:802: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:822: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:894: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:915: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:918: warning: passing
arg 1 of `_read_lock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:938: warning: passing
arg 1 of `_read_unlock' from incompatible pointer type
/root/cvs-pvfs/pvfs2/src/kernel/linux-2.6/file.c:1133: warning:
'total_actual_io' might be used uninitialized in this function
The module loads fine then as pvfs2 module version
2.7.1pre1-2008-01-29-171800.
So far so good...
Michael
Murali Vilayannur wrote:
> Michael,
> Pete and I checked in a bunch of fixes to get pvfs2 kmod to work
> on recent kernels.. I am not sure if they were checked into pete's osd trunk
> or to the main CVS head.. Pete?
> If you are able to build pvfs2 kmod from HEAD without any compile time warnings
> it should work just fine after loading..there have been a few dcache
> related bugs that Phil and Sam have nailed down and hence it is
> probably a good idea to try CVS head anyways.
> thanks,
> Murali
>
>
>> Since pvfs2.7.0.tar.gz as downloadable from
>> ftp://ftp.parl.clemson.edu/pub/pvfs2/pvfs-2.7.0.tar.gz does not compile
>> on redhat enterprise 4
>> systems, make: *** No rule to make target
>> `/usr/include/bits/syslog-path.h', needed by `src/server/unexpected.d'.
>> Stop.
>> I checked out the more recent 2.7.1pre sourcetree from CVS.
>>
>> It does seem to compile just fine, however when I attempt to compile the
>> kernel-module, it complains because of the missing
>> function src/kernel/linux-2.6/devpvfs2-req.c:
>> class_device_destroy(pvfs2_dev_class, MKDEV(pvfs2_dev_major, 0)) and
>> in consequence the module created does not load.
>>
>> My workaround is to edit pvfs2-config.h and take out the following
>> definition:
>>
>> /* Define if kernel lacks device classes */
>> #define HAVE_KERNEL_DEVICE_CLASSES 1
>>
>> After this and recompiling, the module works.
>>
>> Note the following warnings:
>> CC [M] /root/pvfs2/src/kernel/linux-2.6/file.o
>> /root/pvfs2/src/kernel/linux-2.6/file.c: In function `check_mapping_tree':
>> /root/pvfs2/src/kernel/linux-2.6/file.c:802: warning: passing arg 1 of
>> `_read_lock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c:822: warning: passing arg 1 of
>> `_read_unlock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c: In function `locate_file_pages':
>> /root/pvfs2/src/kernel/linux-2.6/file.c:894: warning: passing arg 1 of
>> `_read_lock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c:915: warning: passing arg 1 of
>> `_read_unlock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c:918: warning: passing arg 1 of
>> `_read_lock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c:938: warning: passing arg 1 of
>> `_read_unlock' from incompatible pointer type
>> /root/pvfs2/src/kernel/linux-2.6/file.c: In function `do_readv_writev':
>> /root/pvfs2/src/kernel/linux-2.6/file.c:1133: warning: 'total_actual_io'
>> might be used uninitialized in this function
>> CC [M] /root/pvfs2/src/kernel/linux-2.6/inode.o
>>
>> On a machine with the stock 2.6.9-55smp kernel, it seems to function in
>> spite of the compile time warnings,
>> however another more patched kernel crashes (still need to connect
>> serial console to it to capture the detail on that one)
>>
>> Is this a known issue?
>>
>> Which version of PVFS is best suited for running on RHEL4 - and what
>> level of confidence do the developers have with the outcome?
>>
>> Michael
>> _______________________________________________
>> Pvfs2-users mailing list
>> Pvfs2-users at beowulf-underground.org
>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
>>
>>
More information about the Pvfs2-users
mailing list