opnsense-src/sys/arm64
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
..
acpica Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2022-02-08 15:00:55 -05:00
arm64 sched: separate out schedinit_ap() 2022-02-10 14:55:29 -06:00
broadcom genet: pullup minimum header amount for IPv4 2021-07-05 09:39:48 -05:00
cavium Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2022-02-08 15:00:55 -05: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
cloudabi64 Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
conf Per-thread stack canary on arm64 2021-12-20 11:09:27 +00:00
coresight arm64: clean up empty lines in .c and .h files 2020-09-01 21:18:06 +00:00
freescale/imx imx7gpc: Remove unused functions 2020-11-16 11:54:38 +00:00
include Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2022-02-08 15:00:55 -05:00
intel Add support for Intel Stratix 10 platform. 2019-09-13 16:50:57 +00:00
iommu Introduce IOMMU support for arm64 platform. 2020-11-16 21:55:52 +00:00
linux sysent: Add a sv_psstringssz field to struct sysentvec 2022-01-31 09:48:11 -05:00
nvidia/tegra210 tegra: Fix a common typo in source code comments 2022-02-09 07:20:05 +01:00
qoriq arm64: QorIQ: gpio: return BUS_PROBE_DEFAULT 2021-01-06 22:37:38 +01:00
qualcomm Enable Qualcomm Debug Subsystem (QDSS) block on MSM8916 SoC. 2018-04-10 12:53:48 +00:00
rockchip o Fix i2c read operation for large transfers (more than 32 bytes). 2021-12-22 09:30:54 +02:00