[Pvfs2-users] building kmod on linux-2.6.22
ryuta
suzu0037 at aem.umn.edu
Fri Dec 7 13:30:49 EST 2007
Hi, Murali,
My bad. The file permission issue was due to my mistake.
After following the steps in the documentation I was able to
manipulate files through Linux VFS aio.
Now I have another question. I've looked through the mailing list
but I wasn't able to find the relevant question (maybe I just
neglected).
I understand that we have to follow the steps to properly configure
kernel interface:
* Create a mount point on the local filesystem
* Load the Kernel Module into the running kernel
* Start the PVFS2 Server application
* Start the PVFS2 Client application
* Mount your existing PVFS2 volume on the local filesystem
* Issue VFS commands
I have managed to automate first 3 steps and the following 2 steps
were performed manually, which successfully allowed me to issue VFS
commands. Now I wonder how I automate pvfs2-client start-up.
I'm guessing that mounting pvfs2 volume can be done through fstab.
The documentation describes the manual pvfs2-client startup but not
automated one.
Thanks,
Ryuta
p.s. I'll post another thread for kernel 2.6.23-ARCH kmod build workaround.
Murali Vilayannur wrote:
> Great to hear that!!
> THe permission issue that you are seeing has been problematic..
> I thought we fixed it by making the root directory sticky.
> Alternatively, you can create a directory, chown it to your uid and then create
> files under that as the regular uid..
> Hope that helps!
> thanks,
> Murali
>
> PS: I think you should share this on the user mailing list so that
> others can benefit as well!
> On Dec 6, 2007 1:06 PM, ryuta <suzu0037 at aem.umn.edu> wrote:
>
>> Hi Murali,
>>
>> I (finally) managed to build kmod on my linux-2.6.23-ARCH of Archlinux
>> kernel.
>> Basically, all I had to do fix kernel header definition in pvfs2-config.h.
>>
>> 1. Add -I/usr/lib/gcc/i686-pc-linux-gnu/4.2.2/include to
>> src/kernel/linux-2.6/Makefile
>>
>> ...
>> EXTRA_CFLAGS = -I/usr/lib/gcc/i686-pc-linux-gnu/4.2.2/include \
>> -$(aboslute_sr_dir)/ \
>> ...
>>
>> In pvfs2-config.h
>>
>> 2. set #define HAVE_KZALLOC 1
>> 3. set #define HAVE_XATTR 1
>> 4. set #define HAVE_STRUCT_KMEM_CACHE 1
>> 5. set #define HAVE_AIO_VFS_SUPPORT 1
>> 6. set #define HAVE_VFSMOUNT_GETSB 1
>> 7. set #define HAVE_POSIX_ACL_H 1, instead of HAVE_LINUX_POSIX_ACL_H (bug?)
>> 8. set #define HAVE_LINUX_POSIX_ACL_XATTR_H 1
>> 9. set #define HAVE_PROC_HANDLER_SIX_ARG 1
>>
>> Lastly, we need to set CPATH=/usr/lib/gcc/i686-pc-linux-gnu/4.2.2/include
>> since it seems to be a deficiency on either pvfs2 or archlinux kernel module
>> build script.
>>
>> Actually, from step 2-9 (except for 7) the definitions are missing because
>> configure script fails due to missing stdarg.h which, strangely enough,
>> is not
>> included by gcc. So, I would say if I fix stdarg.h issue and build from
>> scratch
>> again, most failures would be automatically fixed, though I haven't
>> tried, yet.
>>
>>
>> As I pointed out above, HAVE_LINUX_POSIX_ACL_H is only defined by
>> pvfs2-config.h
>> (and hence pvfs2-config.h.in). The closest one is apparently
>> HAVE_POSIX_ACL_H.
>> This definition is relevant to
>>
>> ./src/kernel/linux-2.6/acl.c:23:#ifdef HAVE_POSIX_ACL_H
>> ./src/kernel/linux-2.6/pvfs2-kernel.h:72:#ifdef HAVE_POSIX_ACL_H
>>
>> I almost forgot to mention.
>> I'm building pvfs2 from CVS repository, "2.7.1pre1-2007-12-05-203448".
>>
>>
>> At last, I'd like to ask a simple (dumb) question:
>> Well, I've managed to mount pvfs2 file system and I can do
>> pvfs2-ping, pvfs2-cp, pvfs2-ls, etc. without problem.
>> Now that I loaded kernel module, I can access to /mnt/pvfs2 through
>> VFS command. Since I the mount point is made by root,
>>
>> drwxr-xr-x 2 root root 4096 2007-12-06 14:18 pvfs2
>>
>> when I tried to cp or create a new file through vim the permission is
>> denied. I wonder if I should chmod 777 or is there other alternative method?
>> I was thinking to modify /etc/fstab from
>>
>> tcp://oroppas:3334/pvfs2-fs /mnt/pvfs2 pvfs2 default,noauto 0 0
>>
>> to
>>
>> tcp://oroppas:3334/pvfs2-fs /mnt/pvfs2 pvfs2 default,user,noauto 0 0
>>
>> but I'm not sure if this will do a trick.
>>
>>
>> Thanks,
>> Ryuta
>>
>>
>>
>>
>>
>>
>>
>> Murali Vilayannur wrote:
>>
>>> Hmm.. This might be a fallout of some new linux kernel API changes..
>>> I will get to that sometime this weekend unless you want to send a
>>> patch fixing the build error :)
>>> thanks,
>>> Murali
>>>
>>> On 8/10/07, ryuta <suzu0037 at aem.umn.edu> wrote:
>>>
>>>
>>>> I've managed to force gcc to include the path. I've gotten another error:
>>>>
>>>> CC [M] /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.o
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:266: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:269: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:272: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:276: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:282: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:285: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:288: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:292: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:299: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:301: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:307: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:307: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:311: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:311: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:315: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:318: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:321: warning:
>>>> initialization from incompatible pointer type
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c: In function
>>>> 'pvfs2_proc_initialize':
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.c:340: error: too
>>>> many arguments to function 'register_sysctl_table'
>>>> make[3]: *** [/usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-proc.o]
>>>> Error 1
>>>> make[2]: *** [_module_/usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6] Error
>>>> 2
>>>> make[1]: *** [default] Error 2
>>>> make: *** [just_kmod] Error 2
>>>>
>>>> I also attached configure kernel check. It produces some error though I
>>>> have no idea if those errors are fatal or not.
>>>>
>>>>
>>>> Murali Vilayannur wrote:
>>>> Hi Ryuta,
>>>> hmm.. that is weird. It is probably because gcc does not pick up
>>>> stdarg.h from its location.
>>>> Do you want to try and force gcc to include its default path which may
>>>> be omitted while building the kmods for some reason (perhaps due to
>>>> -nostdinc or -isystem?)
>>>> export CFLAGS=/usr/lib/gcc/i686-pc-linux-gnu/4.2.1/include
>>>> and then redoing the configure and make kmod?
>>>> I don't know..
>>>> thanks,
>>>> Murali
>>>>
>>>> On 8/10/07, ryuta <suzu0037 at aem.umn.edu> wrote:
>>>>
>>>>
>>>> Hi,
>>>>
>>>> I've successfully built and installed pvfs-2.3.6 on Arch Linux with kernel
>>>> linux-2.6.22-ARCH, however, I encountered a problem building kernel
>>>> interface.
>>>>
>>>> My configure option is
>>>>
>>>> ./configure --enable-shared --with-kernel=/usr/src/linux-2.6.22-ARCH
>>>>
>>>> If you see the attached config.log you can find most of kernel-related
>>>> checking complains on the failure of including one header file "stdarg.h".
>>>>
>>>> Nonetheless, the PVFS2 Configuration Information displays 2.6.x kernel
>>>> module as configured, and sure enough, "make kmod" simply fails due to
>>>> compilation error as gcc cannot find "stdarg.h"
>>>>
>>>> [root at oroppas pvfs-2.6.3]# make kmod
>>>> CC [M] /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.o
>>>> In file included from ./include/linux/moduleparam.h:6,
>>>> from
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-kernel.h:45,
>>>> from
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:7:
>>>> ./include/linux/kernel.h:10:20: error: stdarg.h: No such file or directory
>>>> In file included from ./include/linux/moduleparam.h:6,
>>>> from
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-kernel.h:45,
>>>> from
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:7:
>>>> ./include/linux/kernel.h:123: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> ./include/linux/kernel.h:127: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> ./include/linux/kernel.h:131: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> ./include/linux/kernel.h:135: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> ./include/linux/kernel.h:139: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> ./include/linux/kernel.h:155: error: expected declaration specifiers or
>>>> '...' before 'va_list'
>>>> In file included from
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:7:
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-kernel.h:1267: error:
>>>> conflicting types for 'kzalloc'
>>>> ./include/linux/slab_def.h:55: error: previous definition of 'kzalloc' was
>>>> here
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c: In function
>>>> 'pvfs2_inode_removexattr':
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:1007: error:
>>>> 'XATTR_REPLACE' undeclared (first use in this function)
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:1007: error:
>>>> (Each undeclared identifier is reported only once
>>>> /usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.c:1007: error:
>>>> for each function it appears in.)
>>>> make[3]: *** [/usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6/pvfs2-utils.o]
>>>> Error 1
>>>> make[2]: *** [_module_/usr/local/src/pvfs-2.6.3/src/kernel/linux-2.6] Error
>>>> 2
>>>> make[1]: *** [default] Error 2
>>>> make: *** [just_kmod] Error 2
>>>>
>>>>
>>>>
>>>> On my installation, there are several "stdarg.h" just like most
>>>> installation
>>>>
>>>> /usr/include/c++/4.2.1/tr1/stdarg.h
>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.2.1/include/stdarg.h
>>>>
>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.2.1/install-tools/include/stdarg.h
>>>> /usr/lib/klibc/include/stdarg.h
>>>>
>>>> and gcc by default includes the path
>>>>
>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.2.1/include
>>>>
>>>> as most gcc does on typical configuration.
>>>>
>>>> I'm not quite sure if this issue caused by Arch Linux, GCC, or PVFS.
>>>>
>>>> Any help will be greatly appreciated.
>>>>
>>>> Thank you,
>>>> Ryuta
>>>>
>>>> _______________________________________________
>>>> 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