diff --git a/repos/base-foc/src/core/include/platform_thread.h b/repos/base-foc/src/core/include/platform_thread.h index 790c0c113a..2ccc03c5ba 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 ccfe7c3494..309c878849 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) {