HomeFreeBSD

Do not sleep in vm_wait() if pagedaemon did not yet started. Panic instead.

Description

Do not sleep in vm_wait() if pagedaemon did not yet started. Panic instead.

Requests which cannot be satisfied by allocators at boot time often
have unrealizable parameters. Waiting for the pagedaemon' start would
hang the boot if done in the thread0 context and just never succeed if
executed from another thread. In fact, for very early stages, sleep
attempt panics with obscure diagnostic about the scheduler state, and
explicit panic in vm_wait() makes the investigation much shorter by
cut off the examination of the thread and scheduler.

Theoretically, some subsystem might grab a resource to exhaustion, and
free it later in the boot process. If this unlikely scenario does
appear for real, the way to diagnose the trouble can be revisited.

Reported by: emaste
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D8421

Details

Provenance
kibAuthored on
Reviewer
markj
Differential Revision
D8421: Do not sleep in vm_wait() if pagedaemon is not yet started.
Parents
rS308287: TEGRA: Fix numerous issues in clock code.
Branches
Unknown
Tags
Unknown