[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