tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Enabling built-in modules earlier in init
On Wed Jun 16 2010 at 15:36:30 -0700, Paul Goyette wrote:
> The attached diffs add one more routine, module_init3() which gets
> called from init_main() right after module_class_init(MODULE_CLASS_ANY).
> module_init3() walks the list of builtin modules that have not already
> been init'd and marks them disabled.
>
> Tested briefly on my home systems and appears to work.
>
> Any objections to committing this?
I'd still hook it to the end of module_class_init(MODULE_CLASS_ANY)
instead of adding more randomly numbered module_init<n>() calls.
The other benefit from doing so is that you get it done atomically,
which is always worthwhile, and doubly so when it's a low hanging fruit
like here.
> @@ -416,6 +434,7 @@ module_init_class(modclass_t class)
> * init.
> */
> if (module_do_builtin(mi->mi_name, NULL) != 0) {
> + mod->mod_disabled = true;
> TAILQ_REMOVE(&module_builtins, mod, mod_chain);
> TAILQ_INSERT_TAIL(&bi_fail, mod, mod_chain);
> }
Why do you mark it as disabled? Doesn't this conflict with the "it
might succeed in a later module_init_class()" idea you presented earlier?
module_disabled = true/false in multiple places looks a little
error-prone. Now that struct module is growing more and more members,
maybe we can just have an object allocator which initializes the value and
afterwards the only acceptable mutation for module_disabled is setting
it to true (might make sense to rename the variable to something like
module_virgin and flip the polarity, though).
Home |
Main Index |
Thread Index |
Old Index