Hi!

I finally found some time to test openafs 1.3 on AIX 5.1, and the results indicates that there are some issues with stack size...

My test machine is a single CPU AIX5.1 machine running the 32bit kernel. Harald Barths AIX 5.2 test machine was running the 64bit kernel I think.

On the first try (compiling plain openafs-1.3.78), the machine dumped as soon I obtained an AFS token.

The next approach was to make openafs handle AIX 5.1 the same way as AIX 5.2 (ie. a modification of the patch Harald did). This means a 128kB stack instead of 48kB. This way, I could log in and obtain an AFS token, but 'find /afs/some/where -type f >/dev/null' fails on random files with messages like:
find: 0652-019 The status on ./a2273475.pdf is not valid.


Suspecting more stack smashage, I increased the stack to 512kB. Now it works better, but it only takes more users with tokens to make the above "find"-test fail.

The result is a bit better than dying-upon-login though, so I have attached the resulting patch. Since Harald only tested hist patch on the 64bit kernel I assume that my results are valid for AIX 5.2 on 32bit too, I don't have a chrp test machine handy to verify that though.

Someone with more Clue<tm> on the openafs innards might want to look into this, since 512kB stack in kernel space really should be enough. I really have no idea where to look, and finding that the issue was seemingly stack related was more luck than skill on my part ;)

Ideas?

/Nikke
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se     |    [EMAIL PROTECTED]
---------------------------------------------------------------------------
 A penny saved is a penny.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
diff -wru ../openafs-1.3.78.orig/src/lwp/lwp.h ./src/lwp/lwp.h
--- ../openafs-1.3.78.orig/src/lwp/lwp.h        Tue Dec  7 17:48:43 2004
+++ ./src/lwp/lwp.h     Thu Feb 17 14:05:41 2005
@@ -302,8 +302,8 @@
 #if defined(AFS_LINUX22_ENV)
 #define AFS_LWP_MINSTACKSIZE   (192 * 1024)
 #else
-#if defined(AFS_AIX52_ENV)
-#define AFS_LWP_MINSTACKSIZE   (128 * 1024)
+#if defined(AFS_AIX51_ENV) || defined(AFS_AIX52_ENV)
+#define AFS_LWP_MINSTACKSIZE   (512 * 1024)
 #else
 #define AFS_LWP_MINSTACKSIZE   (48 * 1024)
 #endif
diff -wru ../openafs-1.3.78.orig/src/rxkad/rxkad.p.h ./src/rxkad/rxkad.p.h
--- ../openafs-1.3.78.orig/src/rxkad/rxkad.p.h  Tue Dec  7 17:48:43 2004
+++ ./src/rxkad/rxkad.p.h       Thu Feb 17 13:26:49 2005
@@ -17,7 +17,7 @@
 #define MAXKTCTICKETLIFETIME (30*24*3600)
 #define MINKTCTICKETLEN              32
 
-#if defined(AFS_AIX52_ENV)
+#if defined(AFS_AIX51_ENV) || defined(AFS_AIX52_ENV)
 #ifdef __XCOFF64__
 #define        MAXKTCTICKETLEN       12000     /* was 344 */
 #else

Reply via email to