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
