Hi, all!
I've found one strange thing. May be someone here can help me. If I try to build an l4Linux with no-SMP config, it results in a fail. And here, I think, the reason:
In l4lx lib we have file l4lx_irq.cc (ports-foc/src/lib/l4lx/l4lx_irq.cc). Here we have a function l4lx_irq_dev_set_affinity() that uses non-lib (regular l4linux) function l4x_cpumask_copy(). This function declared in arch/l4/kernel/main.c In it's turn this function makes the following call:
cpumask_copy(data->affinity, dest);
as you can see, it uses an affinity member of irq_data struct. And this member is under l4linux config control:
#ifdef CONFIG_SMP cpumask_var_t affinity; #endif
So, as a result, if l4linux config doesn't provide this option - build fails. We can't use the same l4linux config directive in a lib l4lx_irq.cc to "turn off" this chain, because it is not available there.
I have to change from SMP version to SMP from time to time, so as a solution I can wrap cpumask_copy(data->affinity, dest); in the same directive, but I don't think it's a good solutions.
Have you any ideas?
Best regards, Nikolay