Messages in this thread | | | Date | Wed, 6 Apr 2016 13:08:03 +0200 | From | Peter Zijlstra <> | Subject | Re: [tip:sched/core] sched/cpuacct: Split usage accounting into user_usage and sys_usage |
| |
On Wed, Apr 06, 2016 at 08:32:19PM +1000, Anton Blanchard wrote: > Hi, > > > > > void cpuacct_charge(struct task_struct *tsk, u64 cputime) > > > > { > > > > struct cpuacct *ca; > > > > + int index; > > > > + > > > > + if (user_mode(task_pt_regs(tsk))) > > > > + index = CPUACCT_USAGE_USER; > > > > + else > > > > + index = CPUACCT_USAGE_SYSTEM; > > This is oopsing because PowerPC task_pt_regs() returns NULL for > kernel threads.
Ah, so sometihng like:
struct pt_regs *regs = task_pt_regs(); int index = CPUACCT_USAGE_SYSTEM;
if (regs && user_mode(regs)) index = CPUACCT_USAGE_USER;
should work, right?
| |