opnsense-src/sys/arm
Kyle Evans 00bc7bbde5 sched: separate out schedinit_ap()
schedinit_ap() sets up an AP for a later call to sched_throw(NULL).

Currently, ULE sets up some pcpu bits and fixes the idlethread lock with
a call to sched_throw(NULL); this results in a window where curthread is
setup in platforms' init_secondary(), but it has the wrong td_lock.
Typical platform AP startup procedure looks something like:

- Setup curthread
- ... other stuff, including cpu_initclocks_ap()
- Signal smp_started
- sched_throw(NULL) to enter the scheduler

cpu_initclocks_ap() may have callouts to process (e.g., nvme) and
attempt to sched_add() for this AP, but this attempt fails because
of the noted violated assumption leading to locking heartburn in
sched_setpreempt().

Interrupts are still disabled until cpu_throw() so we're not really at
risk of being preempted -- just let the scheduler in on it a little
earlier as part of setting up curthread.

(cherry picked from commit 589aed00e3)
2022-02-10 14:55:29 -06:00
..
allwinner aw_spi: improve I/O stability 2022-01-03 10:47:59 +02:00
altera/socfpga arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
annapurna/alpine Remove the pre-ARMv6 and pre-INTRNG code. 2020-11-29 08:40:12 +00:00
arm sched: separate out schedinit_ap() 2022-02-10 14:55:29 -06:00
broadcom/bcm2835 Add the missing terminator to the bcm_xhci methods 2022-01-10 10:54:20 +00:00
cloudabi32 Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
conf arm64: Spell BeagleBone correctly in config file. 2021-11-18 21:52:21 -07:00
freescale Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2022-02-08 15:00:55 -05:00
include Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2022-02-08 15:00:55 -05:00
linux regen syscall files after 0bd5d81f1e 2021-05-19 20:32:47 -04:00
mv mvebu_gpio: Fix settings of gpio pin direction. 2022-01-20 11:22:30 +01:00
nvidia tegra: Fix a common typo in source code comments 2022-02-09 07:20:05 +01:00
qemu arm: Add kern_clocksource.c directly in files.arm 2019-04-16 20:04:22 +00:00
rockchip Add support for RK3288 SoC. 2020-12-04 16:24:44 +00:00
ti omap4: Fix a few typos in source code comments 2021-12-07 19:52:00 +01:00
versatile Remove the pre-ARMv6 and pre-INTRNG code. 2020-11-29 08:40:12 +00:00
xilinx arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00