Changes between Version 2 and Version 3 of multicoreprocessing


Ignore:
Timestamp:
06/13/2019 09:41:38 PM (4 months ago)
Author:
Cale Collins
Comment:

refactored single core

Legend:

Unmodified
Added
Removed
Modified
  • multicoreprocessing

    v2 v3  
    188188= Single Core Processing =
    189189
    190 There may be times when a developer needs to only use one CPU because of driver issues, etc. We have found in many instances, especially with wireless application, that they are interrupt intensive and thus the CPU will be running at very low utilization but the interrupt controller is saturated. Since the wireless drivers can only operate on a single core any reduction in overall interrupt traffic helps with performance. When in dual core mode, we use FIQs for inter-processor communication so by running in single core mode we actually reduce the load on the interrupt controller which we’ve seen in some cases provide 5-10% performance improvement. If you are running a lot of user applications then the dual core can definitely provide a benefit it really just depends on your application.  '''NOTE: This mainly applies to the Laguna Family line of ARM11 processors. The ARM9 Ventana has better interrupt capabilities'''
     190There may be times when a developer needs to only use one CPU because of driver issues, etc. We have found in many instances, especially with wireless application, that they are interrupt intensive and thus the CPU will be running at very low utilization but the interrupt controller is saturated. Since the wireless drivers can only operate on a single core any reduction in overall interrupt traffic helps with performance. When in dual core mode, we use FIQs for inter-processor communication so by running in single core mode we actually reduce the load on the interrupt controller which we’ve seen in some cases provide 5-10% performance improvement. If you are running a lot of user applications then the dual core can definitely provide a benefit it really just depends on your application.  '''NOTE: This mainly applies to the Laguna Family line of ARM11 processors. Newer processors have better interrupt capabilities'''
    191191
    192192To do this, we will modify the bootargs in the bootloader.
    193193
    194 For CNS3xxx Laguna boards, break into the bootloader by pressing a key at bootup:
     194Break into the bootloader by pressing a key at bootup:
    195195
    196196Modify the variable bootargs to include maxcpus=1 at the end of the line as shown below:
    197197{{{
    198 Laguna > setenv bootargs console=ttyS0,115200 root=/dev/mtdblock3 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit maxcpus=1
    199 }}}
    200 
    201 Then save the bootargs with:
    202 {{{
    203 Laguna > saveenv
    204 }}}
     198setenv bootargs ${bootargs} maxcpus=1; saveenv
     199}}}
     200
    205201
    206202Note /proc/interrupts at 2 cores: