[PATCH]: acct_process() locking and exit1()

Roman Divacky rdivacky at freebsd.org
Thu Jun 14 07:58:32 UTC 2007


On Thu, Jun 14, 2007 at 09:54:39AM +0200, Roman Divacky wrote:
> hi
> 
> currently in exit1() we call acct_process() with Giant held.
> I looked at the code and I think this is because of tty need
> for Giant locking. Because of this we have to release process limit 
> in a separate PROC_LOCK()/UNLOCK() block.
> 
> my just-to-look-at patch does this
> 
> 1) moves the acct_process() in exit1() out of Giant locked block (upward)
> 2) acquires Giant in the acct_process() around tty handling
> 3) moves the p->p_limit to a different PROC_LOCK/UNLOCK block (upward)
> 
> the result is saving 2 proc mtx operations in exit1()
> 
> can you look at it and tell me if its correct or wrong or something like that?
> 
> if it's correct is it worth committing? saving two mtx operations is a nice thing :)

erm... two bugs ;) "saving two mtx operations..." in the typical case of accounting
NOT being enabled.

and forgot to show the patch ;) it's here

www.vlakno.cz/~rdivacky/kern_acct.patch


More information about the freebsd-hackers mailing list