From 0c5d1dbd43050e656d207de7a88a390bdda0f41a Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Thu, 27 Jul 2006 21:25:50 +0000 Subject: [PATCH] Add KTR_SYSC tracing to the syscall() implementations that didn't have it yet. MFC after: 1 week --- sys/amd64/ia32/ia32_syscall.c | 5 +++++ sys/ia64/ia32/ia32_trap.c | 8 ++++++++ sys/ia64/ia64/trap.c | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/sys/amd64/ia32/ia32_syscall.c b/sys/amd64/ia32/ia32_syscall.c index c8349bd78f0..5b3086a9d4f 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 07c7d2e1c6b..c3cacf5c6b6 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 116795f6971..93b518d2790 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]);