]> granicus.if.org Git - strace/blobdiff - count.c
syscall: track syscall system time a bit more explicitly
[strace] / count.c
diff --git a/count.c b/count.c
index e66b85e530322535a6d2cfae99cc92be838e78d2..3adde7a3623eb0fb511000ff693aaf26319cc82e 100644 (file)
--- a/count.c
+++ b/count.c
@@ -48,12 +48,12 @@ count_syscall(struct tcb *tcp, const struct timespec *syscall_exiting_ts)
        if (count_wallclock) {
                /* wall clock time spent while in syscall */
                ts_sub(&wts, syscall_exiting_ts, &tcp->etime);
-               ts_sub(&wts, &wts, &overhead);
        } else {
                /* system CPU time spent while in syscall */
-               ts_sub(&wts, &tcp->dtime, &overhead);
+               ts_sub(&wts, &tcp->stime, &tcp->ltime);
        }
 
+       ts_sub(&wts, &wts, &overhead);
        ts_add(&cc->time, &cc->time, ts_max(&wts, &zero_ts));
 }