]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/tsacct.c
[PATCH] csa: convert CONFIG tag for extended accounting routines
[linux-2.6-omap-h63xx.git] / kernel / tsacct.c
index 410483490cf6c1e7756f3381dbc49090eea3fdaa..47c71daa416f80fd3dea1a1408e6ca60f1fce2fc 100644 (file)
@@ -88,4 +88,34 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
        stats->read_syscalls    = p->syscr;
        stats->write_syscalls   = p->syscw;
 }
+
+
+/**
+ * acct_update_integrals - update mm integral fields in task_struct
+ * @tsk: task_struct for accounting
+ */
+void acct_update_integrals(struct task_struct *tsk)
+{
+       if (likely(tsk->mm)) {
+               long delta =
+                       cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd;
+
+               if (delta == 0)
+                       return;
+               tsk->acct_stimexpd = tsk->stime;
+               tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm);
+               tsk->acct_vm_mem1 += delta * tsk->mm->total_vm;
+       }
+}
+
+/**
+ * acct_clear_integrals - clear the mm integral fields in task_struct
+ * @tsk: task_struct whose accounting fields are cleared
+ */
+void acct_clear_integrals(struct task_struct *tsk)
+{
+       tsk->acct_stimexpd = 0;
+       tsk->acct_rss_mem1 = 0;
+       tsk->acct_vm_mem1 = 0;
+}
 #endif