PERFORCE change 93511 for review

Robert Watson rwatson at FreeBSD.org
Sat Mar 18 17:02:22 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=93511

Change 93511 by rwatson at 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))) {


More information about the trustedbsd-cvs mailing list