From efad33c3c5f71feb7fada149807583f812eb87d9 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Fri, 6 Jul 2018 14:05:54 +0200 Subject: [PATCH] base-foc: implement Platform_thread execution_time The return value is given in microseconds. Issue #2908 --- repos/base-foc/src/core/include/platform_thread.h | 2 +- repos/base-foc/src/core/platform_thread.cc | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/base-foc/src/core/include/platform_thread.h b/repos/base-foc/src/core/include/platform_thread.h index 790c0c113..2ccc03c5b 100644 --- a/repos/base-foc/src/core/include/platform_thread.h +++ b/repos/base-foc/src/core/include/platform_thread.h @@ -179,7 +179,7 @@ namespace Genode { /** * Return execution time consumed by the thread */ - unsigned long long execution_time() const { return 0; } + unsigned long long execution_time() const; /******************************* diff --git a/repos/base-foc/src/core/platform_thread.cc b/repos/base-foc/src/core/platform_thread.cc index ccfe7c349..309c87884 100644 --- a/repos/base-foc/src/core/platform_thread.cc +++ b/repos/base-foc/src/core/platform_thread.cc @@ -35,6 +35,13 @@ namespace Fiasco { using namespace Genode; using namespace Fiasco; +unsigned long long Platform_thread::execution_time() const +{ + Fiasco::l4_kernel_clock_t us = 0; + l4_thread_stats_time(_thread.local.data()->kcap(), &us); + return (unsigned long long)us; +} + int Platform_thread::start(void *ip, void *sp) {