From 81e04d7b9734081a6c3190b9b8bdab304dc0fe3e Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Fri, 3 Jan 2014 19:38:05 +0100 Subject: [PATCH] kernel: Remove cpu_info::load This field forces kernel to track each CPU load all the time. It is not a problem with the current scheduler on a multicore systems, but on single core machnies or with any other future scheduler this field may become just an unnecessary burden. It isn't difficult for an application to compute CPU load by itself when it needs it. --- headers/os/kernel/OS.h | 1 - headers/private/kernel/kscheduler.h | 2 -- src/system/kernel/scheduler/scheduler.cpp | 7 ------- src/system/kernel/system_info.cpp | 1 - 4 files changed, 11 deletions(-) diff --git a/headers/os/kernel/OS.h b/headers/os/kernel/OS.h index 66131ee825..dce55f051e 100644 --- a/headers/os/kernel/OS.h +++ b/headers/os/kernel/OS.h @@ -422,7 +422,6 @@ extern void ktrace_vprintf(const char *format, va_list args); typedef struct { bigtime_t active_time; /* usec of doing useful work since boot */ - int32 load; bool enabled; } cpu_info; diff --git a/headers/private/kernel/kscheduler.h b/headers/private/kernel/kscheduler.h index b3328a6329..bfc6e0203d 100644 --- a/headers/private/kernel/kscheduler.h +++ b/headers/private/kernel/kscheduler.h @@ -81,8 +81,6 @@ void scheduler_new_thread_entry(Thread* thread); void scheduler_set_cpu_enabled(int32 cpu, bool enabled); -int scheduler_get_cpu_load(int32 cpu); - void scheduler_add_listener(struct SchedulerListener* listener); void scheduler_remove_listener(struct SchedulerListener* listener); diff --git a/src/system/kernel/scheduler/scheduler.cpp b/src/system/kernel/scheduler/scheduler.cpp index bb3caa8034..04827d8216 100644 --- a/src/system/kernel/scheduler/scheduler.cpp +++ b/src/system/kernel/scheduler/scheduler.cpp @@ -723,13 +723,6 @@ scheduler_set_cpu_enabled(int32 cpuID, bool enabled) } -int -scheduler_get_cpu_load(int32 cpu) -{ - return CPUEntry::GetCPU(cpu)->GetLoad() / 10; -} - - static void traverse_topology_tree(const cpu_topology_node* node, int packageID, int coreID) { diff --git a/src/system/kernel/system_info.cpp b/src/system/kernel/system_info.cpp index 9f22a905f4..5fa166436e 100644 --- a/src/system/kernel/system_info.cpp +++ b/src/system/kernel/system_info.cpp @@ -452,7 +452,6 @@ get_cpu_info(uint32 firstCPU, uint32 cpuCount, cpu_info* info) memset(info, 0, sizeof(cpu_info) * count); for (uint32 i = 0; i < count; i++) { info[i].active_time = cpu_get_active_time(firstCPU + i); - info[i].load = scheduler_get_cpu_load(firstCPU + i); info[i].enabled = !gCPU[firstCPU + i].disabled; }