Hi all,

I'm currently looking into locking issues in some high-frequency paths in osi_vnodeops.c causing major performance drops on multi-way nodes.

What I get confused about is crfree(): it is frequently (almost systematically) called after releasing the AFS global lock, mimicking crref() which obviously is better outside the global lock.

Is this actually correct? The creds are passed to higher level routines. What if any of those increments the reference count and correspondingly cares about a crfree() later which would decrement the reference count? Then we could be faced with a counter being decremented outside a lock - I don't see how this could be guaranteed to happen only sequentially.

Incrementing cr_ref happens BTW: in DARWIN/osi_file.c for example.

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985       Fax: +41 22 767 7155
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to