Hi,

I suppose, that's what happens.

__xeno_sys_init() (./ksrc/nucleus/module.c) which is module_init() and
when compiled in -> initcall()

calls xnarch_init() (./include/asm-i386/bits/init.h)

This one amongst other things does

...
#ifdef CONFIG_SMP
       /* Make sure the init sequence is kept on the same CPU when
          running as a module. */
       set_cpus_allowed(current, cpumask_of_cpu(0));
#endif /* CONFIG_SMP */

In fact, "running as a module" seems to be a bit
misleading here.  Then another macro should be used in addition,
MODULE or how it's called.

Now guess who is a "current" here? It's "init" (pid 0).

init() -> do_basic_setup() -> do_initcalls() -> ... ->
__xeno_sys_init() -> xnarch_init()

"init" is a first process to run and all the rest will inherit its
"cpus_allowed" field.

That's it.

--
Best regards,
Dmitry Adamushko

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to