Changeset 4760793 in mainline for kernel/generic/src/proc/scheduler.c


Ignore:
Timestamp:
2024-01-14T18:23:40Z (4 months ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master
Children:
5663872, c7ceacf
Parents:
3b68542
Message:

Add CPU_LOCAL alongside CPU and segregate fields that are only used locally

This makes it more clear which fields can be used without synchronization
and which need more care.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/proc/scheduler.c

    r3b68542 r4760793  
    216216
    217217                /* This is safe because interrupts are disabled. */
    218                 CPU->preempt_deadline = CPU->current_clock_tick + us2ticks(time_to_run);
     218                CPU_LOCAL->preempt_deadline =
     219                    CPU_LOCAL->current_clock_tick + us2ticks(time_to_run);
    219220
    220221                /*
     
    257258                 * This improves energy saving and hyperthreading.
    258259                 */
    259                 CPU->idle = true;
     260                CPU_LOCAL->idle = true;
    260261
    261262                /*
     
    305306static void relink_rq(int start)
    306307{
    307         if (CPU->current_clock_tick < CPU->relink_deadline)
     308        if (CPU_LOCAL->current_clock_tick < CPU_LOCAL->relink_deadline)
    308309                return;
    309310
    310         CPU->relink_deadline = CPU->current_clock_tick + NEEDS_RELINK_MAX;
     311        CPU_LOCAL->relink_deadline = CPU_LOCAL->current_clock_tick + NEEDS_RELINK_MAX;
    311312
    312313        /* Temporary cache for lists we are moving. */
     
    401402         *
    402403         */
    403         current_copy(CURRENT, (current_t *) CPU->stack);
     404        current_copy(CURRENT, (current_t *) CPU_LOCAL->stack);
    404405
    405406        /*
     
    419420        context_save(&ctx);
    420421        context_set(&ctx, FADDR(scheduler_separated_stack),
    421             (uintptr_t) CPU->stack, STACK_SIZE);
     422            (uintptr_t) CPU_LOCAL->stack, STACK_SIZE);
    422423        context_restore(&ctx);
    423424
Note: See TracChangeset for help on using the changeset viewer.