diff options
author | bms <bms@FreeBSD.org> | 2009-03-12 10:34:16 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2009-03-12 10:34:16 +0000 |
commit | 6049578f97c4464098b12bc2c2f404fe103989a9 (patch) | |
tree | f8a4fc712e1466ccf7847f931a7492fa79547922 /sys/kern/uipc_sem.c | |
parent | a1d0ffa537c33971126860366bb8e8c74bed99ed (diff) | |
download | FreeBSD-src-6049578f97c4464098b12bc2c2f404fe103989a9.zip FreeBSD-src-6049578f97c4464098b12bc2c2f404fe103989a9.tar.gz |
Make semaphore debugging output more useful.
PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545
MFC after: 5 days
Submitted by: Philip Semanchuk
Diffstat (limited to 'sys/kern/uipc_sem.c')
-rw-r--r-- | sys/kern/uipc_sem.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/uipc_sem.c b/sys/kern/uipc_sem.c index 47b711a..cd78f5b 100644 --- a/sys/kern/uipc_sem.c +++ b/sys/kern/uipc_sem.c @@ -548,6 +548,8 @@ int ksem_open(struct thread *td, struct ksem_open_args *uap) { + DP((">>> ksem_open start, pid=%d\n", (int)td->td_proc->p_pid)); + if ((uap->oflag & ~(O_CREAT | O_EXCL)) != 0) return (EINVAL); return (ksem_create(td, uap->name, uap->idp, uap->mode, uap->value, @@ -708,12 +710,14 @@ kern_sem_wait(struct thread *td, semid_t id, int tryflag, struct ksem *ks; int error; - DP((">>> kern_sem_wait entered!\n")); + DP((">>> kern_sem_wait entered! pid=%d\n", (int)td->td_proc->p_pid)); error = ksem_get(td, id, &fp); if (error) return (error); ks = fp->f_data; mtx_lock(&sem_lock); + DP((">>> kern_sem_wait critical section entered! pid=%d\n", + (int)td->td_proc->p_pid)); #ifdef MAC error = mac_posixsem_check_wait(td->td_ucred, fp->f_cred, ks); if (error) { @@ -750,11 +754,13 @@ kern_sem_wait(struct thread *td, semid_t id, int tryflag, goto err; } ks->ks_value--; + DP(("kern_sem_wait value post-decrement = %d\n", ks->ks_value)); error = 0; err: mtx_unlock(&sem_lock); fdrop(fp, td); - DP(("<<< kern_sem_wait leaving, error = %d\n", error)); + DP(("<<< kern_sem_wait leaving, pid=%d, error = %d\n", + (int)td->td_proc->p_pid, error)); return (error); } |