This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to move threads onto CPU1 through 7

I can see from my /proc/stat output that I only have a single CPU enabled

/proc # cat /proc/stat
cpu 31808 0 20740 953893 2 1 8 0 0 0
cpu0 31808 0 20740 953893 2 1 8 0 0 0
intr 822793 80 94362 316912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53214 41153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 316912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0
ctxt 1214351
btime 943920000
processes 217814
procs_running 1
procs_blocked 0
softirq 780914 0 298002 61279 53214 0 0 55 0 0 368364

I also know that the C6678 has 8 CPUs.  How can I get a thread or function to run on a CPU other than core 0?  I know that Linux will run on Core0, but I need to push work to the other CPUs in order to meet the timelines.

Thanks

  • Hi, David,

    The Linux-c6x does not support SMP if that is what you try to use. You may want to use mcoreloader to start a SYS/BIOS application to offload data processing to the DSP cores. You can refer to the Syslink for C6x under the Software Ecosystem features in linux-c6x.org to see how sample applications get started in DSP cores.

    Rex

  • Thanks, I appreciate the help. I do know that C6 Linux does not do SMP; the info about mcoreloader is what I was looking for. I have been searching for documentation on how to use the mcoreloader and cannot seem to find any. I am sure it is there, but I am not what to search on to get Google to find it. Can I ask you to be a little more specific and send a link that is close to where you are referring to. (As with all documentation, you have to know what you are looking for before you can find it!)

    THANKS!

  • Hi, David,

    I tried to see if there is any document for this, but was told there isn't one. You may get the idea how mcoreloader works by looking at the messageq_app_test_8_core.sh script file in which it loads the syslink application to other DSP cores. The snippet is shown below:

    LOADER=/usr/bin/mcoreloader

    for i in $CORES
    do
    echo "Loading and running slave core $i"
    ${LOADER} $i /opt/syslink_evmc6678.el/messageq_c6678_core${i}.xe66
    done

    Hope this helps.

    Rex