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