diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2006-07-27 21:25:50 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2006-07-27 21:25:50 +0000 |
| commit | 0c5d1dbd43050e656d207de7a88a390bdda0f41a (patch) | |
| tree | 1813963b0b82f0b1f12e4f23f585709371fc9598 | |
| parent | 9674cf0e27e79aa5ec1bc8c940cdcc5320ff7d44 (diff) | |
Notes
| -rw-r--r-- | sys/amd64/ia32/ia32_syscall.c | 5 | ||||
| -rw-r--r-- | sys/ia64/ia32/ia32_trap.c | 8 | ||||
| -rw-r--r-- | sys/ia64/ia64/trap.c | 7 |
3 files changed, 20 insertions, 0 deletions
diff --git a/sys/amd64/ia32/ia32_syscall.c b/sys/amd64/ia32/ia32_syscall.c index c8349bd78f09..5b3086a9d4f5 100644 --- a/sys/amd64/ia32/ia32_syscall.c +++ b/sys/amd64/ia32/ia32_syscall.c @@ -172,6 +172,9 @@ ia32_syscall(struct trapframe frame) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(code, narg, args64); #endif + CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); + /* * Try to run the syscall without Giant if the syscall * is MP safe. @@ -245,6 +248,8 @@ ia32_syscall(struct trapframe frame) */ userret(td, &frame); + CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); diff --git a/sys/ia64/ia32/ia32_trap.c b/sys/ia64/ia32/ia32_trap.c index 07c7d2e1c6b0..c3cacf5c6b65 100644 --- a/sys/ia64/ia32/ia32_trap.c +++ b/sys/ia64/ia32/ia32_trap.c @@ -113,6 +113,9 @@ ia32_syscall(struct trapframe *tf) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(code, narg, args64); #endif + CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); + /* * Try to run the syscall without Giant if the syscall * is MP safe. @@ -179,6 +182,11 @@ ia32_syscall(struct trapframe *tf) trapsignal(td, &ksi); } + /* + * End of syscall tracing. + */ + CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c index 116795f69712..93b518d2790e 100644 --- a/sys/ia64/ia64/trap.c +++ b/sys/ia64/ia64/trap.c @@ -1007,6 +1007,8 @@ syscall(struct trapframe *tf) if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(code, (callp->sy_narg & SYF_ARGMASK), args); #endif + CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); td->td_retval[0] = 0; td->td_retval[1] = 0; @@ -1046,8 +1048,13 @@ syscall(struct trapframe *tf) } } + /* + * Handle reschedule and other end-of-syscall issues + */ userret(td, tf); + CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); |
