[riot-commits] [RIOT-OS/RIOT] 0eb66a: cortexm_common: Clear PendSV request after idle sleep

Martine Lenders noreply at github.com
Tue Jul 28 22:11:41 CEST 2020


  Branch: refs/heads/master
  Home:   https://github.com/RIOT-OS/RIOT
  Commit: 0eb66a429fddc63b42fe602d0fc74c16eef23d6e
      https://github.com/RIOT-OS/RIOT/commit/0eb66a429fddc63b42fe602d0fc74c16eef23d6e
  Author: Koen Zandberg <koen at bergzand.net>
  Date:   2020-07-21 (Tue, 21 Jul 2020)

  Changed paths:
    M cpu/cortexm_common/thread_arch.c

  Log Message:
  -----------
  cortexm_common: Clear PendSV request after idle sleep

The PendSV interrupt is used to request a scheduling operation. An
interrupt during the idle sleep can re-request the PendSV interrupt,
while the PendSV is still busy scheduling the next thread. This clears
the request after sleep to prevent triggering an extra PendSV interrupt
after the current PendSV handler finished.


  Commit: 2d746512376fa94e8a0de47c5fb8b40bbef0f7be
      https://github.com/RIOT-OS/RIOT/commit/2d746512376fa94e8a0de47c5fb8b40bbef0f7be
  Author: Koen Zandberg <koen at bergzand.net>
  Date:   2020-07-21 (Tue, 21 Jul 2020)

  Changed paths:
    M core/sched.c

  Log Message:
  -----------
  sched: Clear context_switch_request after potential idle sleep

An interrupt serviced during the idle sleep can re-request a context
switch while the scheduler is already going to switch contexts after the
idle sleep. Thi sched_context_switch_request should thus be cleared
after the idle sleep and not before where it could be modified during
the idle sleep and get out of sync.


  Commit: b1bf8ab9817cbec9904f5396fd70b96fb461b11c
      https://github.com/RIOT-OS/RIOT/commit/b1bf8ab9817cbec9904f5396fd70b96fb461b11c
  Author: Martine Lenders <m.lenders at fu-berlin.de>
  Date:   2020-07-28 (Tue, 28 Jul 2020)

  Changed paths:
    M core/sched.c
    M cpu/cortexm_common/thread_arch.c

  Log Message:
  -----------
  Merge pull request #14565 from bergzand/pr/sched/fix_retrigger

sched: Prevent retriggering the scheduler interrupt during idle sleep


Compare: https://github.com/RIOT-OS/RIOT/compare/6e8006240b8c...b1bf8ab9817c


More information about the commits mailing list