Index: kernel/generic/include/proc/task.h
===================================================================
--- kernel/generic/include/proc/task.h	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/include/proc/task.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -122,5 +122,4 @@
 	
 	/** Accumulated accounting. */
-	uint64_t cycles;
 	uint64_t ucycles;
 	uint64_t kcycles;
@@ -136,5 +135,5 @@
 extern task_t *task_find_by_id(task_id_t id);
 extern int task_kill(task_id_t id);
-extern uint64_t task_get_accounting(task_t *t, uint64_t *ucycles, uint64_t *kcycles);
+extern void task_get_accounting(task_t *t, uint64_t *ucycles, uint64_t *kcycles);
 extern void task_print_list(void);
 
Index: kernel/generic/include/proc/thread.h
===================================================================
--- kernel/generic/include/proc/thread.h	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/include/proc/thread.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -174,5 +174,4 @@
 	
 	/** Thread accounting. */
-	uint64_t cycles;
 	uint64_t ucycles;
 	uint64_t kcycles;
Index: kernel/generic/include/ps/taskinfo.h
===================================================================
--- kernel/generic/include/ps/taskinfo.h	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/include/ps/taskinfo.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -50,5 +50,4 @@
 	size_t pages;
 	int thread_count;
-	uint64_t cycles;
 	uint64_t ucycles;
 	uint64_t kcycles;
Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/src/console/cmd.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -1027,6 +1027,6 @@
 	ipl_t ipl = interrupts_disable();
 	spinlock_lock(&TASK->lock);
-	uint64_t ucycles, kcycles;
-	uint64_t t0 = task_get_accounting(TASK, &ucycles, &kcycles);
+	uint64_t ucycles0, kcycles0;
+	task_get_accounting(TASK, &ucycles0, &kcycles0);
 	spinlock_unlock(&TASK->lock);
 	interrupts_restore(ipl);
@@ -1037,15 +1037,18 @@
 	
 	/* Update and read thread accounting */
+	uint64_t ucycles1, kcycles1; 
 	ipl = interrupts_disable();
 	spinlock_lock(&TASK->lock);
-	uint64_t dt = task_get_accounting(TASK, &ucycles, &kcycles) - t0;
+	task_get_accounting(TASK, &ucycles1, &kcycles1);
 	spinlock_unlock(&TASK->lock);
 	interrupts_restore(ipl);
 	
-	uint64_t cycles;
-	char suffix;
-	order(dt, &cycles, &suffix);
-		
-	printf("Time: %" PRIu64 "%c cycles\n", cycles, suffix);
+	uint64_t ucycles, kcycles;
+	char usuffix, ksuffix;
+	order(ucycles1 - ucycles0, &ucycles, &usuffix);
+	order(kcycles1 - kcycles0, &kcycles, &ksuffix);
+		
+	printf("Time: %" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles\n",
+			ucycles, usuffix, kcycles, ksuffix);
 	
 	if (ret == NULL) {
@@ -1062,6 +1065,6 @@
 	uint32_t i;
 	bool ret = true;
-	uint64_t cycles;
-	char suffix;
+	uint64_t ucycles, kcycles;
+	char usuffix, ksuffix;
 	
 	if (cnt < 1)
@@ -1081,6 +1084,6 @@
 		ipl_t ipl = interrupts_disable();
 		spinlock_lock(&TASK->lock);
-		uint64_t ucycles, kcycles;
-		uint64_t t0 = task_get_accounting(TASK, &ucycles, &kcycles);
+		uint64_t ucycles0, kcycles0;
+		task_get_accounting(TASK, &ucycles0, &kcycles0);
 		spinlock_unlock(&TASK->lock);
 		interrupts_restore(ipl);
@@ -1093,8 +1096,9 @@
 		ipl = interrupts_disable();
 		spinlock_lock(&TASK->lock);
-		uint64_t dt = task_get_accounting(TASK, &ucycles, &kcycles) - t0;
+		uint64_t ucycles1, kcycles1;
+		task_get_accounting(TASK, &ucycles1, &kcycles1);
 		spinlock_unlock(&TASK->lock);
 		interrupts_restore(ipl);
-		
+
 		if (ret != NULL) {
 			printf("%s\n", ret);
@@ -1103,7 +1107,9 @@
 		}
 		
-		data[i] = dt;
-		order(dt, &cycles, &suffix);
-		printf("OK (%" PRIu64 "%c cycles)\n", cycles, suffix);
+		data[i] = ucycles1 - ucycles0 + kcycles1 - kcycles0;
+		order(ucycles1 - ucycles0, &ucycles, &usuffix);
+		order(kcycles1 - kcycles0, &kcycles, &ksuffix);
+		printf("OK (%" PRIu64 "%c user cycles, %" PRIu64 "%c kernel cycles)\n",
+				ucycles, usuffix, kcycles, ksuffix);
 	}
 	
@@ -1117,6 +1123,6 @@
 		}
 		
-		order(sum / (uint64_t) cnt, &cycles, &suffix);
-		printf("Average\t\t%" PRIu64 "%c\n", cycles, suffix);
+		order(sum / (uint64_t) cnt, &ucycles, &usuffix);
+		printf("Average\t\t%" PRIu64 "%c\n", ucycles, usuffix);
 	}
 	
Index: kernel/generic/src/proc/scheduler.c
===================================================================
--- kernel/generic/src/proc/scheduler.c	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/src/proc/scheduler.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -316,6 +316,5 @@
 		spinlock_lock(&THREAD->lock);
 		
-		/* Update thread accounting */
-		THREAD->cycles += get_cycle() - THREAD->last_cycle;
+		/* Update thread kernel accounting */
 		THREAD->kcycles += get_cycle() - THREAD->last_cycle;
 		
Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/src/proc/task.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -184,5 +184,4 @@
 	ta->context = CONTEXT;
 	ta->capabilities = 0;
-	ta->cycles = 0;
 	ta->ucycles = 0;
 	ta->kcycles = 0;
@@ -322,8 +321,7 @@
  * @param kcycles	Out pointer to sum of all kernel cycles.
  */
-uint64_t task_get_accounting(task_t *t, uint64_t *ucycles, uint64_t *kcycles)
+void task_get_accounting(task_t *t, uint64_t *ucycles, uint64_t *kcycles)
 {
 	/* Accumulated values of task */
-	uint64_t ret = t->cycles;
 	uint64_t uret = t->ucycles;
 	uint64_t kret = t->kcycles;
@@ -343,5 +341,4 @@
 			uret += thr->ucycles;
 			kret += thr->kcycles;
-			ret += thr->cycles;
 		}
 		spinlock_unlock(&thr->lock);
@@ -350,6 +347,4 @@
 	*ucycles = uret;
 	*kcycles = kret;
-
-	return ret;
 }
 
@@ -417,10 +412,8 @@
 	spinlock_lock(&t->lock);
 			
-	uint64_t cycles;
 	uint64_t ucycles;
 	uint64_t kcycles;
-	char suffix, usuffix, ksuffix;
-	cycles = task_get_accounting(t, &ucycles, &kcycles);
-	order(cycles, &cycles, &suffix);
+	char usuffix, ksuffix;
+	task_get_accounting(t, &ucycles, &kcycles);
 	order(ucycles, &ucycles, &usuffix);
 	order(kcycles, &kcycles, &ksuffix);
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/src/proc/thread.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -133,6 +133,4 @@
 	if (!THREAD->uncounted) {
 		thread_update_accounting(true);
-		uint64_t cycles = THREAD->cycles;
-		THREAD->cycles = 0;
 		uint64_t ucycles = THREAD->ucycles;
 		THREAD->ucycles = 0;
@@ -143,5 +141,4 @@
 		
 		spinlock_lock(&TASK->lock);
-		TASK->cycles += cycles;
 		TASK->ucycles += ucycles;
 		TASK->kcycles += kcycles;
@@ -330,5 +327,4 @@
 	t->thread_arg = arg;
 	t->ticks = -1;
-	t->cycles = 0;
 	t->ucycles = 0;
 	t->kcycles = 0;
@@ -623,7 +619,6 @@
 	thread_t *t = avltree_get_instance(node, thread_t, threads_tree_node);
 	
-	uint64_t cycles, ucycles, kcycles;
-	char suffix, usuffix, ksuffix;
-	order(t->cycles, &cycles, &suffix);
+	uint64_t ucycles, kcycles;
+	char usuffix, ksuffix;
 	order(t->ucycles, &ucycles, &usuffix);
 	order(t->kcycles, &kcycles, &ksuffix);
@@ -724,5 +719,4 @@
 {
 	uint64_t time = get_cycle();
-	THREAD->cycles += time - THREAD->last_cycle;
 	if (user) {
 		THREAD->ucycles += time - THREAD->last_cycle;
Index: kernel/generic/src/ps/ps.c
===================================================================
--- kernel/generic/src/ps/ps.c	(revision 6ec34bb5fad629f5f7a35c83be3989039bb8fba4)
+++ kernel/generic/src/ps/ps.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
@@ -140,8 +140,7 @@
 	uint64_t ucycles;
 	uint64_t kcycles;
-	uint64_t cycles = task_get_accounting(t, &ucycles, &kcycles);
-	copy_to_uspace(&uspace_info->cycles, &cycles, sizeof(cycles));
-	copy_to_uspace(&uspace_info->ucycles, &ucycles, sizeof(cycles));
-	copy_to_uspace(&uspace_info->kcycles, &kcycles, sizeof(cycles));
+	task_get_accounting(t, &ucycles, &kcycles);
+	copy_to_uspace(&uspace_info->ucycles, &ucycles, sizeof(uint64_t));
+	copy_to_uspace(&uspace_info->kcycles, &kcycles, sizeof(uint64_t));
 
 	size_t pages = get_pages_count(t->as);
@@ -178,5 +177,4 @@
 	result.state = t->state;
 	result.priority = t->priority;
-	result.cycles = t->cycles;
 	result.ucycles = t->ucycles;
 	result.kcycles = t->kcycles;
