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


Ignore:
Timestamp:
2018-11-09T22:03:24Z (7 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
abf6c01
Parents:
4f3aa76
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-11-08 17:08:07)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-11-09 22:03:24)
Message:

Always allocate FPU context ahead of time, even when switching is lazy

File:
1 edited

Legend:

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

    r4f3aa76 rba9a150  
    134134void scheduler_fpu_lazy_request(void)
    135135{
    136 restart:
    137136        fpu_enable();
    138137        irq_spinlock_lock(&CPU->lock, false);
     
    153152                fpu_context_restore(THREAD->saved_fpu_context);
    154153        } else {
    155                 /* Allocate FPU context */
    156                 if (!THREAD->saved_fpu_context) {
    157                         /* Might sleep */
    158                         irq_spinlock_unlock(&THREAD->lock, false);
    159                         irq_spinlock_unlock(&CPU->lock, false);
    160                         THREAD->saved_fpu_context =
    161                             (fpu_context_t *) slab_alloc(fpu_context_cache, 0);
    162 
    163                         /* We may have switched CPUs during slab_alloc */
    164                         goto restart;
    165                 }
    166154                fpu_init();
    167155                THREAD->fpu_context_exists = true;
Note: See TracChangeset for help on using the changeset viewer.