scheduler: little bit of cleanup

This commit is contained in:
Matheus
2025-08-20 22:15:09 -03:00
parent 136c86354c
commit c024e1abb7
5 changed files with 5 additions and 7 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ typedef struct {
int bitmap_init(bitmap_t *bitmap, size_t size);
void bitmap_set(bitmap_t *bitmap, long idx, int v);
long bitmap_find_first_set(bitmap_t *bitmap, long start_offset);
long bitmap_find_first_set(bitmap_t *bitmap);
#endif
-1
View File
@@ -55,7 +55,6 @@ typedef struct cpu_t {
sched_run_queue_t idle_queue;
spinlock_t sched_lock;
long calendar_ticks;
timerentry_t calendar_tick_timer_entry;
// architecture specific, does not need to be exposed
+2 -3
View File
@@ -22,13 +22,12 @@ void bitmap_set(bitmap_t *bitmap, long idx, int v) {
bitmap->data[idx / sizeof(*bitmap->data)] &= ~bit;
}
// TODO fix start offset search
long bitmap_find_first_set(bitmap_t *bitmap, long start_offset) {
long bitmap_find_first_set(bitmap_t *bitmap) {
size_t loop_size = ROUND_UP(bitmap->size, sizeof(*bitmap->data)) / sizeof(*bitmap->data);
long offset = -1;
for (size_t i = start_offset; i < loop_size; ++i) {
for (size_t i = 0; i < loop_size; ++i) {
if (bitmap->data[i] == 0)
continue;
+1 -1
View File
@@ -32,7 +32,7 @@ static void insert_in_run_queue(sched_run_queue_t *run_queue, thread_t *thread)
}
static thread_t *pop_from_run_queue(sched_run_queue_t *run_queue) {
long idx = bitmap_find_first_set(&run_queue->thread_bitmap, 0);
long idx = bitmap_find_first_set(&run_queue->thread_bitmap);
if (idx == -1)
return NULL;
+1 -1
View File
@@ -363,7 +363,7 @@ void sched_ap_entry() {
__assert(current_cpu()->reschedule_isr);
timer_insert(current_cpu()->timer, &current_cpu()->schedtimerentry, reschedule_timer_dpc, NULL, QUANTUM_US, true);
timer_insert(current_cpu()->timer, &current_cpu()->calendar_tick_timer_entry, sched_calendar_tick, NULL, 1000, true);
timer_insert(current_cpu()->timer, &current_cpu()->calendar_tick_timer_entry, sched_calendar_tick, NULL, 10000, true);
timer_resume(current_cpu()->timer);
sched_stop_current_thread();
}