zephyr/subsys
Peter Mitsis 87ca079e49 tests: z_test_1cpu_start() makes only CPU0 active
When z_test_1cpu_start() is called to ensure that only a single CPU
on an SMP system is available for use in a test, this commit will
ensure that that CPU is the primary CPU--CPU0. This is done because
some timer drivers only have the timer interrupt processed by one CPU.

A bit of a song and dance is performed to achieve this without enabling
the CPU mask/affinity pinning API. If the cpuhold thread is found to
be executing on CPU0, then a new copy of cpuhold thread is created. Once
the new copy is executing (incidentally guaranteed to be on another CPU)
then it informs the original copy and busy waits until it the original
copy is switched out of CPU0. At this point, we can create the next
cpuhold thread to occupy another CPU if needed.

During this song and dance, it is critical that the 'copy' not pend. If
it pends, we can not guarantee which CPU it will execute on when it
unpends. As the cpuhold threads have the highest priority, nothing is
going to cause them to execute on another CPU for as long as they do
not pend.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-03-26 18:07:41 -05:00
..
bindesc
bluetooth Bluetooth: Move bt_hci_evt_get_flags out of hci_driver.h 2024-03-26 11:17:29 -05:00
canbus drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
console
debug gdbstub: Add custom backend choice 2024-03-11 10:38:18 -04:00
demand_paging
dfu subsys/dfu/boot: Fix image confirm for Direct XIP 2024-02-06 21:00:36 +01:00
disk
dsp
emul emul: Add support for non-bus emulators 2024-01-12 09:59:31 +01:00
fb
fs nvs: improve nvs_flash_cmp_const() 2024-03-05 10:55:40 +01:00
input input: rename the internal callback struct to input_callback 2024-03-19 14:30:39 +01:00
ipc ipc: Add thread name to mbox work queues 2024-03-19 15:01:16 +01:00
jwt
llext llext: add STT_OBJECT relocation 2024-03-15 08:37:13 +00:00
logging syscall: Export all emitted syscalls, enabling them for extensions 2024-03-20 16:26:54 +00:00
lorawan lorawan: services: clock_sync: apply changed periodicity immediately 2024-03-01 17:35:04 +01:00
mem_mgmt
mgmt mgmt: hawkbit: remove hb_context.status_buffer_size 2024-03-22 12:42:24 +00:00
modbus modbus: Remove mode reset in modbus_disable function 2024-01-25 16:00:38 +00:00
modem modem: cmux: make work buffer size configurable 2024-03-26 09:29:55 +00:00
net net: wifi: shell: Support BSSID configuration 2024-03-26 11:13:21 -05:00
pm pm: Fix a corner case when policy returns NULL 2024-03-20 07:38:56 -05:00
portability kernel: remove cmsis-rtos layering violation 2024-03-06 19:27:28 -05:00
random
retention
rtio
sd sd: sdmmc: fix formatting 2024-03-20 10:27:02 -05:00
sensing sensing: add rtio implement for sensing subsys 2024-01-24 10:32:10 +01:00
settings settings: nvs: Fix first write issue with cache 2024-02-26 11:55:33 +00:00
shell drivers: serial: uart_async_rx: Add return value to consume function 2024-03-26 10:46:02 -04:00
sip_svc
stats
storage subsys/storage/flash_map: Inline flash_area_layout 2024-03-22 08:58:48 +01:00
task_wdt task_wdt: add shell 2024-03-22 10:24:55 +01:00
testsuite tests: z_test_1cpu_start() makes only CPU0 active 2024-03-26 18:07:41 -05:00
timing
tracing tracing: add intel ADSP memory window backend 2024-03-25 09:33:41 +01:00
usb usb: device_next: use USB notification in CDC ACM implementation 2024-03-22 10:10:42 +01:00
zbus
CMakeLists.txt
Kconfig llext: enable tristate Kconfig options 2024-01-11 10:26:04 -05:00