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.

TMS320F28379D: C2000 build time much longer with Windows 11

Part Number: TMS320F28379D
Other Parts Discussed in Thread: CCSTUDIO, C2000WARE

Tool/software:

When upgrading my laptop from Windows 10 to Windows 11, the build speed for my C2000 project increased from about 1 minute to over 3 minutes. I have parallel build enabled with "Use optimal jobs (32)". I am using Code Composer Studio version 10.2.0.00009 and I also tested this using CCS version 20.2.0.00012, but both yield the same longer build times. I've attempted to disable network connection in case there was something related to the network slowing down the build but no luck. My coworkers with Windows 10 laptops can build in 1 minute no problem.

What can I do to speed up the build again?

  • Hello,

    Besides the Windows version, was there any changes to the security software running on the host OS? That would have a greater impact than going from Windows 10 to 11. I did a similar upgrade recently and did not notice a difference in the build speed. It was slow before and just as slow now lol. Our security/antivirus software is the biggest culprit in our case.

    Thanks

    ki

  • After running some tests it seems that build time on average to build one core is 1m50s on my Windows 11 machine, whereas my coworkers take roughly 1m to build (almost double the speed). There are no notable differences in software/antivirus as we are all connected on the same network and using the same corporate IT tools (we compared apps installed on both machines and app settings). One interesting thing I did note, however, is that the more apps I open the more opportunity for the build time to drastically increase and fluctuate (anywhere between 1m45s and 2m18s). The fewer apps I have open the closer I get to the average build time and less chance for any delays (1m50s). This indicates to me that CCS/C2000 compiler struggles to allocate resources properly while other apps are open and is not optimized to build quickly. I've heard from some coworkers that command-line is much faster to build in some instances (a few seconds duration) so I may try that as well but certainly this is not ideal as building from the IDE is preferred. CCS must be bloating the compilation quite drastically if it is true that command-line only takes a few seconds, so the question that comes to my mind is why? Although this is a separate issue.

    Something to note is that my machine is top-of-the-line, intel core i9, 32 cores, 1TB Micron SSD, 64GB RAM. There's no way with my new laptop compared with my previous laptop (which only had 16 cores, old gen processor, 32GB RAM) that resources should be any issue. So this is unexpected to say the least.

  • Ki, my apologies, there seems to be some confusion with the data points we've gathered. I just had my coworker who was on a Windows 10 laptop with worse specs than my laptop re-run the same build with all apps closed and he hit the average build time of 1m50s so it seems that this unfortunately rules out Windows 11 as the primary suspect.

    This tells me that you were correct in your assessment, Windows 10 or Windows 11 should not matter, but rather it is the apps in the background eating up resources, combined with CCS struggling to allocate resources without being starved.

    One oddity is my coworker who has an equivalent laptop as mine but is running Windows 10 is able to build within 1 minute. I will follow-up with him to see if I can re-run some builds on his machine to get some more data points as to why his build is faster.

  • This is a bit of a shot in the dark but could you check your smart app control settings? There was one person in our office that had it enabled and it was crippling their CCS performance.

    If it is set to anything but "off", please try setting it to "off".

  • Yes, smart app control is set to off by our corporate policy by default.

  • Thanks for checking. 

    What security software is running on your machines? Any chance they can be temporarily disabled for a test?

  • Here are the IT applications, although unfortunately they cannot be disabled:

    • BigFix Client
    • Sentinel Agent
    • Snow Inventory Agent
    • Symantec Endpoint Protection
    • Symantec WSS Agent
    • Splunk Universal Forwarder
    • GlobalProtect VPN
  • Thanks,

    At one point we had both SentinelOne Agent and Symantec Endpoint Protection on our (work) machines. It really throttled performance. SEP has since been removed (probably replaced by something else I am not aware of) and things are better but it is still slow. As I mentioned earlier, I have a project that builds in 6 seconds on my home machine (running stock Windows antivirus) that takes 2 minutes on my work machine. Both using Windows 11 and CCS 20.2.0.

  • One final test. Can you call gmake directly from the command line on your project makefiles?

    The CCS project system is makefile based. When you build a project in CCS, it generates makefiles for it and then calls gmake on it under the hood.

    For example, check your build output when you build a project. You will see the exact command:

    Then open a DOS command window and browse to where the makefiles are generated (in the build configuration subfolder of the project folder) and call that exact command:

    Is the build still slow from the DOS command window?

  • I attempted to run the gmake command in elevated CMD but get the following error:

    "C:\\ti\\ccs1020\\ccs\\utils\\bin\\gmake" -k -j 32 all -O
    gmake[1]: *** WaitForMultipleObjects: No error. Stop.
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** WaitForMultipleObjects: No error. Stop.
    makefile:221: recipe for target 'all' failed
    gmake: *** [all] Error 2

    I also attempted to run a full build using the following command but got the same error:

    C:\ti\ccs1020\ccs\eclipse>eclipsec -noSplash -data "C:\Users\<user>\workspace_v10" -application com.ti.ccstudio.apps.projectBuild -ccs.projects <my_project> -ccs.buildType full -ccs.configuration Release

    %%%
    CCS headless build starting...
    %%%

    ===
    Pre processing...
    ===

    Building...

    **** Clean-only build of configuration Release for project <my project> ****

    "C:\\ti\\ccs1020\\ccs\\utils\\bin\\gmake" -k -j 32 clean -O

    // Deleting files (lines omitted for privacy)

    // Could Not Find xxx .bin/.obj/.lst/.d (lines omitted for privacy)
    The system cannot find the path specified.

    Finished clean

    **** Build Finished ****

    **** Build of configuration Release for project <my_project> ****

    "C:\\ti\\ccs1020\\ccs\\utils\\bin\\gmake" -k -j 32 all -O

    // pre-build steps (lines omitted for privacy)

    Invoking: C2000 Compiler
    "C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.2.2.LTS/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff --opt_for_speed=2 --fp_mode=relaxed --fp_reassoc=on --include_path="<repo_path>" --include_path="C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.2.2.LTS/include" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f2837xd/driverlib" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/device_support/f2837xd/headers/include" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/device_support/f2837xd/common/include" --include_path="<repo_path>" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/libraries/dsp/VCU/c28/include/vcu2" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/libraries/dsp/VCU/c28/include/common" --advice:performance=all --define=__STDC_LIMIT_MACROS --define=CPU1 --define=_DUAL_HEADERS --define=_STANDALONE --define=_FLASH -g --printf_support=full --diag_error=225 --diag_remark=10063 --diag_wrap=off --display_error_number --abi=eabi --ramfunc=off -k --asm_listing --c_src_interlist --check_misra="all,-1.1,-2.1,-2.2,-5.6,-5.7,-6.1,-6.3,-6.4,-8.1,-8.5,-8.7,-8.8,-9.1,-9.2,-9.3,-10.1,-10.2,-10.3,-10.4,-10.6,-11.1,-11.3,-11.5,-12.1,-12.2,-12.4,-12.5,-12.6,-12.7,-14.7,-14.9,-16.3,-16.5,-16.7,-16.9,-17.4,-18.4,-19.1,-19.4,-19.7,-19.10,-19.11,-19.13,-19.15,-20.1,-20.5,-20.6,-20.9" --misra_advisory=warning --misra_required=warning --preproc_with_compile --preproc_dependency="<repo_path>" --obj_directory="<repo_path>" "<repo_path>"
    Finished building: "<repo_path"

    // pre-build steps (lines omitted for privacy)

    Building file: "../F2837xD_CodeStartBranch.asm"
    Invoking: C2000 Compiler
    "C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.2.2.LTS/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff --opt_for_speed=2 --fp_mode=relaxed --fp_reassoc=on --include_path="<repo_path>" --include_path="C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_20.2.2.LTS/include" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f2837xd/driverlib" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/device_support/f2837xd/headers/include" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/device_support/f2837xd/common/include" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/libraries/dsp/VCU/c28/include/vcu2" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/libraries/dsp/VCU/c28/include/common" --include_path="<repo_path>" --advice:performance=all --define=__STDC_LIMIT_MACROS --define=CPU1 --define=_DUAL_HEADERS --define=_STANDALONE --define=_FLASH -g --printf_support=full --diag_error=225 --diag_remark=10063 --diag_wrap=off --display_error_number --abi=eabi --ramfunc=off -k --asm_listing --c_src_interlist --preproc_with_compile --preproc_dependency="F2837xD_CodeStartBranch.d_raw" "../F2837xD_CodeStartBranch.asm"
    Finished building: "../F2837xD_CodeStartBranch.asm"

    makefile:221: recipe for target 'all' failed
    gmake[1]: *** WaitForMultipleObjects: No error. Stop.
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** WaitForMultipleObjects: No error. Stop.
    gmake: *** [all] Error 2
    gmake: INTERNAL: Exiting with 29 jobserver tokens available; should be 32!

    **** Build Finished ****

    ===
    CCS headless build complete! 1 out of 1 projects have errors.

    Any idea of what could be causing this?

  • The same project builds fine from the IDE?

  • That shouldn't happen since the command line builds (both directly calling gmake or using the projectBuild CLI command) should mimic what the CCS IDE does. The error is something interfering with gmake being called. Some resourcing conflict. For the direct gmake call, can you try reducing the number of threads allocated (use a number less that 32 for -j)?

  • I think IT pushed an update to my machine that significantly improved network performance. After restarting my computer with an update, all of my applications are performing at a much faster speed. When running the gmake command directly or running the eclipsec command it now builds fine and takes up to 50 seconds for a full build which is a significant improvement. I'm honestly not sure what changed that caused such an enormous performance improvement but it seems to be IT update related (Win11 update or security application updates). For reference I am now running Windows 11 Enterprise version 10.0.26100 Build 26100 if anyone else comes across this. My coworker who was having similar slowdowns also updated his computer and noticed the same performance improvements.

    Will monitor for the time being in case this issue comes back but I think my issue is now resolved.