Date: Sat, 18 Mar 2006 12:05:03 -0500 (EST) From: "Andrew R. Reiter" <arr@watson.org> To: Robert Watson <rwatson@freebsd.org> Cc: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 93511 for review Message-ID: <20060318120450.C51324@fledge.watson.org> In-Reply-To: <200603181701.k2IH1r5x004312@repoman.freebsd.org> References: <200603181701.k2IH1r5x004312@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Heh; you just read my mind (was about to email) On Sat, 18 Mar 2006, Robert Watson wrote: :http://perforce.freebsd.org/chv.cgi?CH=93511 : :Change 93511 by rwatson@rwatson_peppercorn on 2006/03/18 17:01:32 : : When pulling the global audit queue's contents into a thread-local : queue, generate one low water mark transition signal, rather than : many, and generate it only if actually crossing the transition : point, rather than every time we notice we're below it. : :Affected files ... : :.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 edit : :Differences ... : :==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#21 (text+ko) ==== : :@@ -555,7 +555,7 @@ : struct ucred *audit_cred; : struct thread *audit_td; : struct vnode *audit_vp; :- int error; :+ int error, lowater_signal; : : AUDIT_PRINTF(("audit_worker starting\n")); : :@@ -607,13 +607,16 @@ : * our own clustering, if the lower layers aren't doing it : * automatically enough. : */ :+ lowater_signal = 0; : while ((ar = TAILQ_FIRST(&audit_q))) { : TAILQ_REMOVE(&audit_q, ar, k_q); : audit_q_len--; :- if (audit_q_len <= audit_qctrl.aq_lowater) :- cv_broadcast(&audit_commit_cv); :+ if (audit_q_len == audit_qctrl.aq_lowater) :+ lowater_signal++; : TAILQ_INSERT_TAIL(&ar_worklist, ar, k_q); : } :+ if (lowater_signal) :+ cv_broadcast(&audit_commit_cv); : : mtx_unlock(&audit_mtx); : while ((ar = TAILQ_FIRST(&ar_worklist))) { : : -- arr@watson.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060318120450.C51324>