Bootstrapping: Parse MALLOC_CONF before using slab sizes.
I.e., parse before booting the bin module or sz module. This lets us tweak size class settings before committing to them by letting them leak into other modules. This commit does not actually do any tweaking of the size classes; it *just* chanchanges bootstrapping order; this may help bisecting any bootstrapping failures on poorly-tested architectures.
This commit is contained in:
parent
a7f68aed3e
commit
4610ffa942
@ -1295,14 +1295,21 @@ static bool
|
|||||||
malloc_init_hard_a0_locked() {
|
malloc_init_hard_a0_locked() {
|
||||||
malloc_initializer = INITIALIZER;
|
malloc_initializer = INITIALIZER;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ordering here is somewhat tricky; we need sc_boot() first, since that
|
||||||
|
* determines what the size classes will be, and then
|
||||||
|
* malloc_conf_init(), since any slab size tweaking will need to be done
|
||||||
|
* before sz_boot and bin_boot, which assume that the values they read
|
||||||
|
* out of sc_data_global are final.
|
||||||
|
*/
|
||||||
sc_boot();
|
sc_boot();
|
||||||
|
malloc_conf_init();
|
||||||
sz_boot(&sc_data_global);
|
sz_boot(&sc_data_global);
|
||||||
bin_boot(&sc_data_global);
|
bin_boot(&sc_data_global);
|
||||||
|
|
||||||
if (config_prof) {
|
if (config_prof) {
|
||||||
prof_boot0();
|
prof_boot0();
|
||||||
}
|
}
|
||||||
malloc_conf_init();
|
|
||||||
if (opt_stats_print) {
|
if (opt_stats_print) {
|
||||||
/* Print statistics at exit. */
|
/* Print statistics at exit. */
|
||||||
if (atexit(stats_print_atexit) != 0) {
|
if (atexit(stats_print_atexit) != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user