phoneME Advanced Multicore question(s)
A question about multicores/SMP for you.
phoneME Advanced mr2 is what we use on a linux 2.6/uclibc/x86 environment on a single core cpu. We're now looking at using a dual-core cpu (1 physical CPU) x86.
In mr2 I see it has a CVM_MP_SAFE flag, which looking at the code looks like it makes cvm multiprocessor (and multicore?) safe, and allows cvm to use any/all logical cpus on the system? Is this correct?
Looking at phoneme_advanced_mr2/cdc/src/linux/javavm/runtime/globals_md.c method CVMinitStaticState I see it tries to set affinity to a single CPU if CVM_MP_SAFE not set.
So this to me says that CVM_MP_SAFE=false will still let phoneME work on a multicore/multiprocessor system without issue. Although it will only ever use a specific CPU.
Is what I've said so far correct?
In svn, I see LINUX_ENABLE_SET_AFFINITY=true|false can also be specified, and globals_md.c CVMinitStaticState will thus only set affinity if both CVM_MP_SAFE == false, and LINUX_ENABLE_SET_AFFINITY == true.
I guess this is to support systems that have CVM_MP_SAFE == false, but the underlying system doesn't support cpu affinity? It wasn't put in to solve any SMP issues during runtime?
Is there anything else I need to be aware of when compiling - and running - phoneME for a SMP environment?