[OpenAFS] Re: afs.GCPAGs in current releases under Linux (RHEL4/5)
Fri, 5 Mar 2010 12:57:22 -0600
On Fri, 5 Mar 2010 09:22:04 +0000
Simon Wilkinson <firstname.lastname@example.org> 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.