cputime: Use accessors to read task cputime stats
This is in preparation for the full dynticks feature. While remotely reading the cputime of a task running in a full dynticks CPU, we'll need to do some extra-computation. This way we can account the time it spent tickless in userspace since its last cputime snapshot. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Li Zhong <zhong@linux.vnet.ibm.com> Cc: Namhyung Kim <namhyung.kim@lge.com> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Paul Gortmaker <paul.gortmaker@windriver.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de>
Bu işleme şunda yer alıyor:
@@ -18,6 +18,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mISDNif.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/sched.h>
|
||||
#include "core.h"
|
||||
|
||||
static u_int *debug;
|
||||
@@ -202,6 +203,9 @@ static int
|
||||
mISDNStackd(void *data)
|
||||
{
|
||||
struct mISDNstack *st = data;
|
||||
#ifdef MISDN_MSG_STATS
|
||||
cputime_t utime, stime;
|
||||
#endif
|
||||
int err = 0;
|
||||
|
||||
sigfillset(¤t->blocked);
|
||||
@@ -303,9 +307,10 @@ mISDNStackd(void *data)
|
||||
"msg %d sleep %d stopped\n",
|
||||
dev_name(&st->dev->dev), st->msg_cnt, st->sleep_cnt,
|
||||
st->stopped_cnt);
|
||||
task_cputime(st->thread, &utime, &stime);
|
||||
printk(KERN_DEBUG
|
||||
"mISDNStackd daemon for %s utime(%ld) stime(%ld)\n",
|
||||
dev_name(&st->dev->dev), st->thread->utime, st->thread->stime);
|
||||
dev_name(&st->dev->dev), utime, stime);
|
||||
printk(KERN_DEBUG
|
||||
"mISDNStackd daemon for %s nvcsw(%ld) nivcsw(%ld)\n",
|
||||
dev_name(&st->dev->dev), st->thread->nvcsw, st->thread->nivcsw);
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle