Messages in this thread | | | Date | Tue, 26 Aug 2003 23:54:35 -0700 | From | William Lee Irwin III <> | Subject | Re: [PATCH] 2.6.0-test4 -- add context switch counters |
| |
On Wed, Aug 27, 2003 at 10:57:44AM +1000, Peter Chubb wrote: > Currently, the context switch counters reported by getrusage() are > always zero. The appended patch adds fields to struct task_struct to > count context switches, and adds code to do the counting. > The patch adds 4 longs to struct task struct, and a single addition to > the fast path in schedule().
Thanks, this will be useful. We're still missing a fair number of them:
struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* maximum resident set size */ long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data size */ long ru_isrss; /* integral unshared stack size */ long ru_minflt; /* page reclaims */ long ru_majflt; /* page faults */ long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary " */ };
...
case RUSAGE_SELF: jiffies_to_timeval(p->utime, &r.ru_utime); jiffies_to_timeval(p->stime, &r.ru_stime); r.ru_minflt = p->min_flt; r.ru_majflt = p->maj_flt; r.ru_nswap = p->nswap; break;
and we're worse off yet: "FIXME! Get the fault counts properly!" ... AFAICT literally the only useful number here is utime/stime.
-- wli
P.S.: The stuff in /proc/$PID/statm isn't a big deal; I've got full 2.4.x semantics (modulo the VSZ correction) with fully O(1) algorithmic overhead in some patch originally by bcrl I forward ported somewhere. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |