|
@@ -128,16 +128,13 @@ static inline void task_group_account_field(struct task_struct *p, int index,
|
|
|
* Account user cpu time to a process.
|
|
|
* @p: the process that the cpu time gets accounted to
|
|
|
* @cputime: the cpu time spent in user space since the last update
|
|
|
- * @cputime_scaled: cputime scaled by cpu frequency
|
|
|
*/
|
|
|
-void account_user_time(struct task_struct *p, cputime_t cputime,
|
|
|
- cputime_t cputime_scaled)
|
|
|
+void account_user_time(struct task_struct *p, cputime_t cputime)
|
|
|
{
|
|
|
int index;
|
|
|
|
|
|
/* Add user time to process. */
|
|
|
p->utime += cputime;
|
|
|
- p->utimescaled += cputime_scaled;
|
|
|
account_group_user_time(p, cputime);
|
|
|
|
|
|
index = (task_nice(p) > 0) ? CPUTIME_NICE : CPUTIME_USER;
|
|
@@ -153,16 +150,13 @@ void account_user_time(struct task_struct *p, cputime_t cputime,
|
|
|
* Account guest cpu time to a process.
|
|
|
* @p: the process that the cpu time gets accounted to
|
|
|
* @cputime: the cpu time spent in virtual machine since the last update
|
|
|
- * @cputime_scaled: cputime scaled by cpu frequency
|
|
|
*/
|
|
|
-static void account_guest_time(struct task_struct *p, cputime_t cputime,
|
|
|
- cputime_t cputime_scaled)
|
|
|
+static void account_guest_time(struct task_struct *p, cputime_t cputime)
|
|
|
{
|
|
|
u64 *cpustat = kcpustat_this_cpu->cpustat;
|
|
|
|
|
|
/* Add guest time to process. */
|
|
|
p->utime += cputime;
|
|
|
- p->utimescaled += cputime_scaled;
|
|
|
account_group_user_time(p, cputime);
|
|
|
p->gtime += cputime;
|
|
|
|
|
@@ -180,16 +174,13 @@ static void account_guest_time(struct task_struct *p, cputime_t cputime,
|
|
|
* Account system cpu time to a process and desired cpustat field
|
|
|
* @p: the process that the cpu time gets accounted to
|
|
|
* @cputime: the cpu time spent in kernel space since the last update
|
|
|
- * @cputime_scaled: cputime scaled by cpu frequency
|
|
|
- * @target_cputime64: pointer to cpustat field that has to be updated
|
|
|
+ * @index: pointer to cpustat field that has to be updated
|
|
|
*/
|
|
|
static inline
|
|
|
-void __account_system_time(struct task_struct *p, cputime_t cputime,
|
|
|
- cputime_t cputime_scaled, int index)
|
|
|
+void __account_system_time(struct task_struct *p, cputime_t cputime, int index)
|
|
|
{
|
|
|
/* Add system time to process. */
|
|
|
p->stime += cputime;
|
|
|
- p->stimescaled += cputime_scaled;
|
|
|
account_group_system_time(p, cputime);
|
|
|
|
|
|
/* Add system time to cpustat. */
|
|
@@ -204,15 +195,14 @@ void __account_system_time(struct task_struct *p, cputime_t cputime,
|
|
|
* @p: the process that the cpu time gets accounted to
|
|
|
* @hardirq_offset: the offset to subtract from hardirq_count()
|
|
|
* @cputime: the cpu time spent in kernel space since the last update
|
|
|
- * @cputime_scaled: cputime scaled by cpu frequency
|
|
|
*/
|
|
|
void account_system_time(struct task_struct *p, int hardirq_offset,
|
|
|
- cputime_t cputime, cputime_t cputime_scaled)
|
|
|
+ cputime_t cputime)
|
|
|
{
|
|
|
int index;
|
|
|
|
|
|
if ((p->flags & PF_VCPU) && (irq_count() - hardirq_offset == 0)) {
|
|
|
- account_guest_time(p, cputime, cputime_scaled);
|
|
|
+ account_guest_time(p, cputime);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -223,7 +213,7 @@ void account_system_time(struct task_struct *p, int hardirq_offset,
|
|
|
else
|
|
|
index = CPUTIME_SYSTEM;
|
|
|
|
|
|
- __account_system_time(p, cputime, cputime_scaled, index);
|
|
|
+ __account_system_time(p, cputime, index);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -410,15 +400,15 @@ static void irqtime_account_process_tick(struct task_struct *p, int user_tick,
|
|
|
* So, we have to handle it separately here.
|
|
|
* Also, p->stime needs to be updated for ksoftirqd.
|
|
|
*/
|
|
|
- __account_system_time(p, cputime, cputime, CPUTIME_SOFTIRQ);
|
|
|
+ __account_system_time(p, cputime, CPUTIME_SOFTIRQ);
|
|
|
} else if (user_tick) {
|
|
|
- account_user_time(p, cputime, cputime);
|
|
|
+ account_user_time(p, cputime);
|
|
|
} else if (p == rq->idle) {
|
|
|
account_idle_time(cputime);
|
|
|
} else if (p->flags & PF_VCPU) { /* System time or guest time */
|
|
|
- account_guest_time(p, cputime, cputime);
|
|
|
+ account_guest_time(p, cputime);
|
|
|
} else {
|
|
|
- __account_system_time(p, cputime, cputime, CPUTIME_SYSTEM);
|
|
|
+ __account_system_time(p, cputime, CPUTIME_SYSTEM);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -521,9 +511,9 @@ void account_process_tick(struct task_struct *p, int user_tick)
|
|
|
cputime -= steal;
|
|
|
|
|
|
if (user_tick)
|
|
|
- account_user_time(p, cputime, cputime);
|
|
|
+ account_user_time(p, cputime);
|
|
|
else if ((p != rq->idle) || (irq_count() != HARDIRQ_OFFSET))
|
|
|
- account_system_time(p, HARDIRQ_OFFSET, cputime, cputime);
|
|
|
+ account_system_time(p, HARDIRQ_OFFSET, cputime);
|
|
|
else
|
|
|
account_idle_time(cputime);
|
|
|
}
|
|
@@ -744,7 +734,7 @@ static void __vtime_account_system(struct task_struct *tsk)
|
|
|
{
|
|
|
cputime_t delta_cpu = get_vtime_delta(tsk);
|
|
|
|
|
|
- account_system_time(tsk, irq_count(), delta_cpu, delta_cpu);
|
|
|
+ account_system_time(tsk, irq_count(), delta_cpu);
|
|
|
}
|
|
|
|
|
|
void vtime_account_system(struct task_struct *tsk)
|
|
@@ -765,7 +755,7 @@ void vtime_account_user(struct task_struct *tsk)
|
|
|
tsk->vtime_snap_whence = VTIME_SYS;
|
|
|
if (vtime_delta(tsk)) {
|
|
|
delta_cpu = get_vtime_delta(tsk);
|
|
|
- account_user_time(tsk, delta_cpu, delta_cpu);
|
|
|
+ account_user_time(tsk, delta_cpu);
|
|
|
}
|
|
|
write_seqcount_end(&tsk->vtime_seqcount);
|
|
|
}
|
|
@@ -921,25 +911,4 @@ void task_cputime(struct task_struct *t, cputime_t *utime, cputime_t *stime)
|
|
|
if (stime)
|
|
|
*stime += sdelta;
|
|
|
}
|
|
|
-
|
|
|
-void task_cputime_scaled(struct task_struct *t,
|
|
|
- cputime_t *utimescaled, cputime_t *stimescaled)
|
|
|
-{
|
|
|
- cputime_t udelta, sdelta;
|
|
|
-
|
|
|
- if (!vtime_accounting_enabled()) {
|
|
|
- if (utimescaled)
|
|
|
- *utimescaled = t->utimescaled;
|
|
|
- if (stimescaled)
|
|
|
- *stimescaled = t->stimescaled;
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- fetch_task_cputime(t, utimescaled, stimescaled,
|
|
|
- &t->utimescaled, &t->stimescaled, &udelta, &sdelta);
|
|
|
- if (utimescaled)
|
|
|
- *utimescaled += udelta;
|
|
|
- if (stimescaled)
|
|
|
- *stimescaled += sdelta;
|
|
|
-}
|
|
|
#endif /* CONFIG_VIRT_CPU_ACCOUNTING_GEN */
|