[OpenAFS] Re: afs.GCPAGs in current releases under Linux (RHEL4/5)

Andrew Deason adeason@sinenomine.net
Fri, 5 Mar 2010 12:57:22 -0600

On Fri, 5 Mar 2010 09:22:04 +0000
Simon Wilkinson <sxw@inf.ed.ac.uk> wrote:

> There's obviously something going awry here. In theory, you don't need  
> to garbage collect keyring PAGs, because the keyrings are reference  
> counted by the kernel, and our destructor is called when the keyring  
> goes away.

We call afs_pag_destroy when the key goes away, but that only
invalidates the credentials; it doesn't remove it from the appropriate
afs_users chain. So, correct me if I'm wrong, but I think until we
afs_GCUserData, afs_users lists can grow very large.
afs_ComputePAGStats traverses the whole list, so that could explain it
taking so much time.

Could we remove the unixuser from the list in afs_PutUser if the
refCount drops to zero (possibly only under the same conditions as the
checks in afs_GCUserData)? I'm not sure I get the rationale for having a
separate occasional GC for the linked list.

Andrew Deason