On Wed, Nov 30, 2005 at 02:34:43PM -0600, Ti Leggett wrote:
> We're trying to build PVFS2 on SLES9 ia64 to test and prepare moving  
> the TG to SLES9. It *seems* to build fine, with the exception of the  
> below "Warnings".
>   LD [M]  /usr/src/packages/BUILD/pvfs2-1.3.1/src/kernel/linux-2.6/ 
> pvfs2.o
>   Building modules, stage 2.
>   MODPOST
> *** Warning: "mmgrab" [/usr/src/packages/BUILD/pvfs2-1.3.1/src/kernel/ 
> linux-2.6/pvfs2.ko] undefined!
> *** Warning: "flush_icache_range" [/usr/src/packages/BUILD/ 
> pvfs2-1.3.1/src/kernel/linux-2.6/pvfs2.ko] undefined!
>   CC      /usr/src/packages/BUILD/pvfs2-1.3.1/src/kernel/linux-2.6/ 
> pvfs2.mod.o

On Thu, Dec 01, 2005 at 02:01:34PM -0500, Andrew Pochinsky wrote:
> Hi,
>       I'm trying to install version 1.3.1 on ppc64 running SLES9 (the 
>       front end machine) as a client-only machine
>  The problem is loading the kernel module. modprobe (after building and 
> installing pvfs2) says:
> # modprobe pvfs2
> FATAL: Error inserting pvsf2 
> (/lib/modules/2.6.5-7.191-pseries64/kernel/fs/pvfs2/pvfs2.ko): Unknown 
> symbol in module, or unknown parameter (see dmesg)
> # dmesg
> ....
> pvfs2: module not supported by Novell, setting U taint flag.
> pvfs2: Unknown symbol mmgrab, st_info == 0x1
> load_module: err 0xfffffffffffe (dont worry)

The PVFS2-1.3.1 kernel module as shipped does not work with SLES 9,
since the SLES 9 headers bring in internal-only symbols (mmgrab and on
some platforms flush_icache_range).

The attached patch introduces a new configure option: 
--disable-kernel-aio 

This option should create a working pvfs2.ko kernel module on SLES9.
Let me know if it does not do the trick.  

==rob

-- 
Rob Latham
Mathematics and Computer Science Division    A215 0178 EA2D B059 8CDF
Argonne National Labs, IL USA                B29D F333 664A 4280 315B
Index: configure
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/configure,v
retrieving revision 1.258.2.6
diff -u -w -p -r1.258.2.6 configure
--- configure   21 Nov 2005 16:38:23 -0000      1.258.2.6
+++ configure   1 Dec 2005 19:39:01 -0000
@@ -855,6 +855,7 @@ Optional Features:
   --enable-redhat24       Enable workaround for RedHat 2.4 kernel
   --enable-nptl-workaround Enable workaround for buggy NPTL/Pthread libraries
   --disable-aio-threaded-callbacks  Disable use of AIO threaded callbacks
+  --disable-kernel-aio    Forcibly disable kernel aio
   --enable-fast           Disable optional debugging, enable optimizations.
   --enable-strict         Turn on strict debugging with gcc
   --enable-verbose-build  Enables full output during build process
@@ -6550,7 +6551,18 @@ echo "${ECHO_T}no" >&6
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-if test "x$have_aio" = "xyes"; then
+
+
+# Check whether --enable-kernel-aio or --disable-kernel-aio was given.
+if test "${enable_kernel_aio+set}" = set; then
+  enableval="$enable_kernel_aio"
+   enable_kernel_aio=$enableval
+else
+   enable_kernel_aio=yes
+
+fi;
+
+if test "x$have_aio" = "xyes" -a "x$enable_kernel_aio" = "xyes"; then
        echo "$as_me:$LINENO: checking for ki_dtor in kiocb structure of 
kernel" >&5
 echo $ECHO_N "checking for ki_dtor in kiocb structure of kernel... $ECHO_C" >&6
                        cat >conftest.$ac_ext <<_ACEOF
Index: configure.in
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/configure.in,v
retrieving revision 1.261.2.3
diff -u -w -p -r1.261.2.3 configure.in
--- configure.in        10 Nov 2005 20:46:01 -0000      1.261.2.3
+++ configure.in        1 Dec 2005 19:39:01 -0000
@@ -554,7 +554,22 @@ AC_TRY_COMPILE([
        have_aio=no
 )
 
-if test "x$have_aio" = "xyes"; then
+dnl
+dnl some kernels (SLES9 2.6.5-7.191, for one) will pass the test for ki_dtor
+dnl below, but the resulting pvfs2.ko module will be built with internal
+dnl symbols (mmgrab and flush_icache_range).  
+dnl 
+dnl if option not given, carry out the test.  Only certain kernels (like SLES
+dnl 9) will need --disable-kernel-aio
+
+
+AC_ARG_ENABLE(kernel-aio,
+  [  --disable-kernel-aio    Forcibly disable kernel aio],
+  [ enable_kernel_aio=$enableval ],
+  [ enable_kernel_aio=yes ]
+  )
+
+if test "x$have_aio" = "xyes" -a "x$enable_kernel_aio" = "xyes"; then
        AC_MSG_CHECKING(for ki_dtor in kiocb structure of kernel)
        dnl if this test passes, the kernel does have it and we enable support 
for AIO
        dnl if this test fails, the kernel does not have this member and we 
disable support for AIO
_______________________________________________
PVFS2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users

Reply via email to