From e60b760e7463bcf66b7c1da3dd6d70e2f19f30db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Wed, 18 Sep 2024 18:11:14 +0000 Subject: [PATCH] start netd earlier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In this change we're moving the asynchronous netd startup ahead of the async statd and *synchronous* update_verifier. This is desirable as we want a netd failure (which could happen due to some mainline incompatibility wrt. bpf or mainline shipped shared libs: resolver or netd updatable) to be considered a signal for a bad boot. It's still asynchronous though, so it's not ideal. Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: Ib3e252f085f569864feddaf20ac80858a3bb969d --- init/README.md | 7 ++++--- rootdir/init.rc | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/init/README.md b/init/README.md index de57208e8..560c5280f 100644 --- a/init/README.md +++ b/init/README.md @@ -501,9 +501,10 @@ have been omitted. reformatted here if it couldn't mount in first-stage init. 6. `post-fs-data-checkpointed` - Triggered when vold has completed committing a checkpoint after an OTA update. Not triggered if checkpointing is not needed or supported. - 7. `zygote-start` - Start the zygote. - 8. `early-boot` - After zygote has started. - 9. `boot` - After `early-boot` actions have completed. + 7. `bpf-progs-loaded` - Starts things that want to start ASAP but need eBPF (incl. netd) + 8. `zygote-start` - Start the zygote. + 9. `early-boot` - After zygote has started. + 10. `boot` - After `early-boot` actions have completed. Commands -------- diff --git a/rootdir/init.rc b/rootdir/init.rc index 63e3d0646..41b94515b 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -560,6 +560,7 @@ on late-init # Should be before netd, but after apex, properties and logging is available. trigger load_bpf_programs + trigger bpf-progs-loaded # Now we can start zygote. trigger zygote-start @@ -1109,6 +1110,9 @@ on post-fs-data on property:vold.checkpoint_committed=1 trigger post-fs-data-checkpointed +on bpf-progs-loaded + start netd + # It is recommended to put unnecessary data/ initialization from post-fs-data # to start-zygote in device's init.rc to unblock zygote start. on zygote-start @@ -1116,7 +1120,6 @@ on zygote-start # A/B update verifier that marks a successful boot. exec_start update_verifier start statsd - start netd start zygote start zygote_secondary