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