[riot-notifications] [RIOT-OS/RIOT] core/thread: Allow for inline thread_yield_higher (#15788)

Koen Zandberg notifications at github.com
Mon Jan 18 17:17:42 CET 2021


### Contribution description

This PR modifies `core/include/thread.h` to allow for inlining the `thread_yield_higher` function similar to the irq api. Patches for the relevant CPUs have been included to either add the `thread_arch.h` header with the inlined function or as dummy header.

Initial benchmarks show that this shaves of 13 cycles from the `bench_thread_yield_pingpong` test on the nrf52dk board.

TODO: add headers for arm7, esp8266 and msp430.

### Testing procedure

- Benchmarks: TODO
- The threading tests must still work on all affected platforms.

I can run the tests for the cortex-m and the RISC-V platform myself, but I could use some help with the mips32r2 (pic32-wifire or similar) platform.

### Issues/PRs references

None
You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/15788

-- Commit Summary --

  * core/thread: Allow for inline thread_yield_higher
  * cpu/avr8_common: Add dummy thread_arch.h header
  * cpu/cortexm_common: Inline thread_yield_higher function
  * cpu/fe310: Inline thread_yield_higher function
  * cpu/mips32r2_common: Inline thread_yield_higher function

-- File Changes --

    M core/include/thread.h (11)
    A cpu/avr8_common/include/thread_arch.h (33)
    A cpu/cortexm_common/include/thread_arch.h (49)
    M cpu/cortexm_common/thread_arch.c (10)
    A cpu/fe310/include/thread_arch.h (57)
    M cpu/fe310/thread_arch.c (18)
    A cpu/mips32r2_common/include/thread_arch.h (51)
    M cpu/mips32r2_common/thread_arch.c (12)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/15788.patch
https://github.com/RIOT-OS/RIOT/pull/15788.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/15788
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210118/d2806662/attachment.htm>


More information about the notifications mailing list