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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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"

 [EMAIL PROTECTED] 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
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users







_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users

Reply via email to