diff options
-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 c8349bd..5b3086a 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 07c7d2e..c3cacf5 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 116795f..93b518d 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]); |