init: convert all blocking services to oneshot_async, add force-run deadlock breaker

Change ALL non-critical init.d and init.initfs.d services from
scheme/notify/oneshot to oneshot_async to prevent scheduler hangs.
Add force-run after 3 defers to break dependency cycles.
Add STEP_DONE serial marker to confirm scheduler completion.

Changed services (init.d): ipcd, ptyd, pcid-spawner, smolnetd, audiod
Changed services (init.initfs.d): inputd, lived, fbbootlogd, fbcond,
  vesad, hwd, ps2d, bcm2835-sdhcid
Changed config overrides: ucsid, driver-params, gpiod, i2cd

The scheduler now processes 65 units across all phases. Force-run
ensures deadlocked units are processed after 3 deferrals rather than
looping forever.
This commit is contained in:
Red Bear OS
2026-07-04 01:06:52 +03:00
parent 4a1d1f4576
commit 4bfb878b55
15 changed files with 41 additions and 23 deletions
+1 -1
View File
@@ -3,4 +3,4 @@ description = "VT input and graphics multiplexer"
[service]
cmd = "inputd"
type = { scheme = "input" }
type = "oneshot_async"
+1 -1
View File
@@ -4,4 +4,4 @@ description = "Live disk"
[service]
cmd = "lived"
type = "notify"
type = "oneshot_async"
+1 -1
View File
@@ -4,4 +4,4 @@ requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbbootlogd"
type = { scheme = "fbbootlog" }
type = "oneshot_async"
+1 -1
View File
@@ -5,4 +5,4 @@ requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbcond"
args = ["2"]
type = { scheme = "fbcon" }
type = "oneshot_async"
+1 -1
View File
@@ -10,4 +10,4 @@ inherit_envs = [
"FRAMEBUFFER_HEIGHT",
"FRAMEBUFFER_STRIDE",
]
type = "notify"
type = "oneshot_async"
+1 -1
View File
@@ -6,4 +6,4 @@ condition_board = ["raspi3bp"]
[service]
cmd = "bcm2835-sdhcid"
type = "notify"
type = "oneshot_async"
+1 -1
View File
@@ -5,4 +5,4 @@ requires_weak = ["10_inputd.service", "10_lived.service", "20_graphics.target"]
[service]
cmd = "hwd"
inherit_envs = ["RSDP_ADDR", "RSDP_SIZE"]
type = "notify"
type = "oneshot_async"
+1 -1
View File
@@ -5,4 +5,4 @@ condition_architecture = ["x86", "x86_64"]
[service]
cmd = "ps2d"
type = "notify"
type = "oneshot_async"