Changeset aae2869 in mainline for kernel/generic/src/time/clock.c


Ignore:
Timestamp:
2023-02-04T16:19:21Z (2 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
011c79a
Parents:
8addb24a
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2022-08-16 11:03:29)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-02-04 16:19:21)
Message:

Replace THREAD→ticks with CPU→preempt_deadline

This removes a bit of unnecessary locking in clock().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/time/clock.c

    r8addb24a raae2869  
    184184
    185185        if (THREAD) {
    186                 uint64_t ticks;
    187 
    188186                irq_spinlock_lock(&CPU->lock, false);
    189187                CPU->needs_relink += 1 + missed_clock_ticks;
    190188                irq_spinlock_unlock(&CPU->lock, false);
    191189
    192                 irq_spinlock_lock(&THREAD->lock, false);
    193                 if ((ticks = THREAD->ticks)) {
    194                         if (ticks >= 1 + missed_clock_ticks)
    195                                 THREAD->ticks -= 1 + missed_clock_ticks;
    196                         else
    197                                 THREAD->ticks = 0;
    198                 }
    199                 irq_spinlock_unlock(&THREAD->lock, false);
    200 
    201                 if (ticks == 0 && PREEMPTION_ENABLED) {
     190                if (current_clock_tick >= CPU->preempt_deadline && PREEMPTION_ENABLED) {
    202191                        scheduler();
    203192#ifdef CONFIG_UDEBUG
Note: See TracChangeset for help on using the changeset viewer.