return 0;
}
-static inline u64 prof_ticks(struct task_struct *p)
-{
- u64 utime, stime;
-
- task_cputime(p, &utime, &stime);
-
- return utime + stime;
-}
-static inline u64 virt_ticks(struct task_struct *p)
-{
- u64 utime, stime;
-
- task_cputime(p, &utime, &stime);
-
- return utime;
-}
-
static int
posix_cpu_clock_getres(const clockid_t which_clock, struct timespec64 *tp)
{
*/
static u64 cpu_clock_sample(const clockid_t clkid, struct task_struct *p)
{
+ u64 utime, stime;
+
+ if (clkid == CPUCLOCK_SCHED)
+ return task_sched_runtime(p);
+
+ task_cputime(p, &utime, &stime);
+
switch (clkid) {
case CPUCLOCK_PROF:
- return prof_ticks(p);
+ return utime + stime;
case CPUCLOCK_VIRT:
- return virt_ticks(p);
- case CPUCLOCK_SCHED:
- return task_sched_runtime(p);
+ return utime;
default:
WARN_ON_ONCE(1);
}