Date: Fri, 22 Apr 2016 12:33:49 -0700 From: John Baldwin <jhb@freebsd.org> To: freebsd-arch@freebsd.org Subject: Re: Starting APs earlier during boot Message-ID: <1797307.a21JNIcVnp@ralph.baldwin.cx> In-Reply-To: <1730061.8Ii36ORVKt@ralph.baldwin.cx> References: <1730061.8Ii36ORVKt@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, February 16, 2016 12:50:22 PM John Baldwin wrote: > Currently the kernel bootstraps the non-boot processors fairly early in the > SI_SUB_CPU SYSINIT. The APs then spin waiting to be "released". We currently > release the APs as one of the last steps at SI_SUB_SMP. On the one hand this > removes much of the need for synchronization while SYSINITs are running since > SYSINITs basically assume they are single-threaded. However, it also enforces > some odd quirks. Several places that deal with per-CPU resources have to > split initialization up so that the BSP init happens in one SYSINIT and the > initialization of the APs happens in a second SYSINIT at SI_SUB_SMP. I've posted a review of the final set of changes here: https://reviews.freebsd.org/D6069 To permit a smoother transition, the earlier startup is temporarily controlled by a kernel option (EARLY_AP_STARTUP) so that it can be easily disabled if there are regressions and to allow individual platforms to have time to port over. My plan is to enablet his by default on x86 once it is in the tree. I would like to have all platforms cut over for 11.0. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1797307.a21JNIcVnp>