Page MenuHomeFreeBSD

init_main: Switch from SLIST to STAILQ, fix order
ClosedPublic

Authored by cperciva on Sep 5 2023, 11:48 PM.
Tags
None
Referenced Files
F96423909: D41748.id.diff
Tue, Sep 24, 9:57 PM
F96423897: D41748.id126921.diff
Tue, Sep 24, 9:57 PM
F96423894: D41748.id126984.diff
Tue, Sep 24, 9:57 PM
F96420487: D41748.diff
Tue, Sep 24, 9:45 PM
Unknown Object (File)
Mon, Sep 23, 4:29 PM
Unknown Object (File)
Sat, Sep 21, 10:45 PM
Unknown Object (File)
Sat, Sep 21, 1:12 PM
Unknown Object (File)
Fri, Sep 20, 9:23 PM
Subscribers

Details

Summary

Constructing an SLIST of SYSINITs by inserting them one by one at the
head of the list resulted in them being sorted in anti-stable order:
When two SYSINITs tied for (subsystem, order), they were executed in
the reverse order to the order in which they appeared in the linker
set.

Fixes: 9a7add6d01f3 "init_main: Switch from sysinit array to SLIST"

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Thank you; this fixes the weird performance problem that we've yet to fully root cause.

This revision is now accepted and ready to land.Sep 6 2023, 4:46 AM