[OpenAFS-devel] Patch to implement default tuning proposal discussed a while ago

Troy Benjegerdes hozer@hozed.org
Wed, 17 Aug 2005 15:46:46 -0500


On Wed, Aug 17, 2005 at 04:28:29PM -0400, Jim Rees wrote:
> chas williams reported that giant caches didn't work at all with the old
> defaults, but did with the new.  Are you reporting the opposite?  Did your
> 8GB cache work with the old afsd and default parameters?  Did you cold-cache
> before this run?

I did not remove any files. I was using the default parameters set by
the debian package previously.

> You do realize that you still need to set the parameters manually for a
> cache this large, right?  I'm hoping we can get to where this is no longer
> necessary, and I hope the recent commit is a step in the right direction.

What parameters do I need for this?

> Having said all that, your bt doesn't make sense.  The readdir call is at
> line 793, not 778.  Is this with the latest afsd.c from cvs?

I thought so, but apparently you committed the patch between the time I
did a checkout this morning and got it built. After an update, I see
this:

gdb afsd
...
> run -verbose -debug

doSweepAFSCache: Opening cache directory '/var/cache/openafs/D261'
doSweepAFSCache: Current directory entry:
        inode=885058, reclen=16, name='.'
doSweepAFSCache: Current directory entry:
        inode=2, reclen=16, name='..'
doSweepAFSCache: Closing cache directory.

Program received signal SIGSEGV, Segmentation fault.
0x400d2ffb in readdir () from /lib/tls/libc.so.6
(gdb) bt
#0  0x400d2ffb in readdir () from /lib/tls/libc.so.6
#1  0x0804a49e in doSweepAFSCache (vFilesFound=0xbfffb33c,
    directory=0x80711a0 "/var/cache/openafs", dirNum=-2, maxDir=128)
    at afsd.c:793
#2  0x0804ad6e in SweepAFSCache (vFilesFound=0xbfffb33c) at afsd.c:1191
#3  0x0804b7c9 in mainproc (as=0x8072e28, arock=0x0) at afsd.c:1913
#4  0x0804fa72 in cmd_Dispatch (argc=3, argv=0xbfffe854) at cmd.c:882
#5  0x0804d0a6 in main (argc=0, argv=0x0) at afsd.c:2264
(gdb) up
#1  0x0804a49e in doSweepAFSCache (vFilesFound=0xbfffb33c,
    directory=0x80711a0 "/var/cache/openafs", dirNum=-2, maxDir=128)
    at afsd.c:793
793         for (currp = readdir(cdirp); currp; currp = readdir(cdirp))
(gdb) print *cdirp
$1 = <incomplete type>
(gdb) print cdirp
$2 = (DIR *) 0x808dfb0
(gdb) print (DIR *)cdirp
$3 = (struct __dirstream *) 0x808dfb0
(gdb) print (DIR *) *cdirp
$4 = (struct __dirstream *) 0x0