zephyr/include
Andy Ross ab46b1b3c5 kernel/sched: CPU mask affinity/pinning API
This adds a simple implementation of SMP CPU affinity to Zephyr.  The
API is simple and doesn't try to invent abstractions like "cpu sets".
Each thread has an enable/disable flag associated with each CPU in the
system, and the bits can be turned on and off (for threads that are
not currently runnable, of course) using an easy three-function API.

Because the implementation picked requires enumerating runnable
threads in priority order looking for one that match the current CPU,
this is not a good fit for the SCALABLE or MULTIQ scheduler backends,
so it currently can be enabled only for SCHED_DUMB (which is the
default anyway).  Fancier algorithms do exist, but even the best of
them scale as O(N_CPUS), so aren't quite constant time and often
require significant memory overhead to keep separate lists for
different cpus/sets.

The intended use here is for apps that want to "pin" threads to
specific CPUs for latency control, or conversely to prevent certain
threads from taking time on specific CPUs to leave them free for fast
response.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-02-01 21:37:24 -05:00
..
app_memory app_shmem: auto-initialize partitions 2019-01-30 23:15:51 -05:00
arch boards: remove pulpino board 2019-01-31 22:47:18 -05:00
audio
bluetooth Bluetooth: Add identifiers for Bluetooth 5.1 2019-01-29 16:00:57 +02:00
cmsis_rtos_v1
cmsis_rtos_v2 CMSIS RTOS V2: Introduce CMSIS RTOS V2 API header file 2018-12-20 12:23:22 +01:00
crypto
debug include: remove unused header file gdb_server.h 2019-01-22 07:45:22 -05:00
dfu
display doc: add missing cfb API 2019-01-03 12:38:28 -05:00
drivers display: Remove stale ILI9340 header file 2019-01-20 07:51:03 -05:00
dt-bindings interrupt_controller: RV32M1: add intmux driver / DT bindings 2019-01-25 11:59:46 -05:00
fs
linker app_shmem: auto-initialize partitions 2019-01-30 23:15:51 -05:00
logging logging: Extend log_output to support raw data 2019-01-29 17:24:37 +01:00
mgmt smp: shell: Add support for SMP in new shell. 2019-01-15 17:19:20 -05:00
misc misc/dlist: Swap insertion API for a faster one 2019-02-01 15:57:21 -05:00
net net/context: Make recv_cb providing the ip and protocol headers 2019-02-01 14:34:38 +02:00
nvs doc: group file system/storage APIs 2018-12-10 20:38:09 -05:00
posix lib: posix: fs: Convert to use generic fdtable 2018-11-04 22:04:11 +01:00
random
settings doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
shell shell: safe print from different threads 2019-01-30 13:05:56 +01:00
toolchain arch/x86_64: New architecture added 2019-01-11 15:18:52 -05:00
usb usb: Add instance parameter to descriptors definitions 2019-02-01 19:11:32 -05:00
zephyr
adc.h include: adc: Fix async ADC API documentation 2018-12-04 15:52:18 -05:00
aio_comparator.h
atomic.h atomic: Add atomic_set_bit_to() API 2019-01-25 17:35:44 -05:00
base64.h
cache.h
can.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
clock_control.h
console.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
counter.h
crc8.h crc: deprecate old headers and issue warning when used 2018-12-04 08:52:46 -06:00
crc16.h crc: move all crc APIs into one header 2018-12-04 08:52:46 -06:00
crc32.h crc: deprecate old headers and issue warning when used 2018-12-04 08:52:46 -06:00
crc.h crc: Move crc7 into CRC single header 2018-12-30 16:24:10 -05:00
device.h drivers: Modify drivers to use DEVICE_AND_API_INIT() 2019-01-15 10:39:34 -08:00
disk_access.h
display.h display: Added double buffer screen info to display API 2019-01-07 16:05:35 -05:00
dma.h doc: add peripherals reference 2019-01-30 18:38:48 -05:00
entropy.h drivers: entropy: Use likely()/unlikely() macros to speed up the API 2018-10-30 11:16:34 +01:00
exc_handle.h kernel: Fix type of Z_EXC_HANDLE 2018-11-16 09:18:27 -08:00
fcb.h
flash_map.h
flash.h
fs.h doc: group file system/storage APIs 2018-12-10 20:38:09 -05:00
generated_dts_board.h cmake: Fix the generation of fixup files 2019-01-28 12:18:38 -05:00
gna.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
gpio.h api: gpio: deprecate all gpio_port_ functions 2019-02-01 08:57:58 -05:00
i2c.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
i2s.h i2s: add i2s_configure() as a system call 2018-11-15 16:20:36 -05:00
init.h drivers: Modify drivers to use DEVICE_AND_API_INIT() 2019-01-15 10:39:34 -08:00
ipm.h
irq_nextlevel.h
irq_offload.h
irq.h kernel: add dynamic interrupt API 2018-11-10 11:01:22 -05:00
json.h
kernel_includes.h kernel.h: Header hygine, move clock/timer handling 2018-10-16 15:03:10 -04:00
kernel_version.h doc: add kernel version API to doxygen 2018-12-08 17:24:53 -05:00
kernel.h kernel/sched: CPU mask affinity/pinning API 2019-02-01 21:37:24 -05:00
led_strip.h
led.h
pinmux.h
power.h power: rename api sys_soc -> sys_ 2018-12-28 16:16:28 -05:00
ptp_clock.h
pwm.h
ring_buffer.h lib: ring_buffer: add raw byte access mode 2018-10-09 13:58:44 -04:00
rtc.h
sched_priq.h
sensor.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
shared_irq.h
spi.h docs: spi.h: removed dev doxygen comment from struct spi_config 2018-12-17 08:19:21 -06:00
spinlock.h kernel/spinlock: Force inlining 2019-02-01 15:57:21 -05:00
stats.h include: stats.h: Packed attribute was incorrect. 2018-12-07 10:32:41 -05:00
sw_isr_table.h arch: common: add function for updating IRQ table 2018-11-10 11:01:22 -05:00
sys_clock.h sys_clock: Change function signature 2018-12-11 14:37:10 -08:00
sys_io.h
syscall.h syscall: Return bool in a boolean function 2018-11-30 08:05:11 -08:00
toolchain.h
tracing.h debug: CTF Tracing with POSIX backend 2019-02-01 08:56:02 -05:00
tty.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
uart.h api: uart: Add new asynchronous UART API. 2019-01-22 18:54:12 +01:00
watchdog.h drivers: watchdog: remove deprecated apis 2019-02-01 10:37:49 -06:00
zephyr.h