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.

C6x DSP boot image creation taking higher time on Ubuntu 14.04 compare to Ubuntu 10.04

Hi,

I was migrating the build server for DSP image compilation to Ubuntu 14.04 LTS from Ubuntu 10.04. Both servers have same versions of Sourcery G++ Lite arm-none-linux-gnueabi tool-chain and CCS5.1.1.00033/ccsv5/tools/compiler/c6000 C/C++ Compiler.

$ ./CCS5.1.1.00033/ccsv5/tools/compiler/c6000/bin/cl6x -version

TMS320C6x C/C++ Compiler                v7.3.1

$ ./CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc --version

arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q1-203) 4.3.3

It is observed that DSP boot image (lm_dsp_hw1.coff.c) generation taking more than 5 minutes on Ubuntu 14.04 server compared to 20 seconds earlier on Ubuntu 10.04.

Logs:

---------------------------------------------------------------------------------------------------------------------------------------
Server: Ubuntu 10.04
user@ubuntu:~$ time make lm_dsp_hw1
.......
create boot image (lm_dsp_hw1.coff.c/lm_dsp_hw1.coff.h)           <== approx. 20 seconds
.......
real    9m14.031s
user    9m0.394s
sys     0m19.013s

---------------------------------------------------------------------------------------------------------------------------------------
Server: Ubuntu 14.04
user@ubuntu:~$ time make lm_dsp_hw1

.......
create boot image (lm_dsp_hw1.coff.c/lm_dsp_hw1.coff.h)          <== more than 5 minutes
.......
real    15m35.368s
user    11m4.476s
sys     3m52.808s

---------------------------------------------------------------------------------------------------------------------------------------

Can anyone please help me finding the real issue here or provide some pointers?

regards,

Rahul

  • We compiler experts are not familiar with how DSP image compilation is done.  I presume those make commands invoke the ARM compiler and the C6000 compiler.  You need to work out which one is taking more time.  If it is the ARM compiler, then we cannot help you.  In this forum we support the compilers released with Code Composer Studio, and the Codesourcery ARM compiler is not among them.  If the problem is the C6000 compiler, then we will need a test case.  Before getting into the details of that test case, please determine which compiler takes the additional time.

    Thanks and regards,

    -George

  • Hi George,
    Thanks for replying my query.
    I have narrowed down my problem. XML parsing is taking more time on new server.
    XML output created using OFD utility ofd6x v7.3.1 of TMS320C6x C/C++ compiler is getting parsed using XMLin() API of XML::Simple in 6 mins 13 secs on Ubuntu 14.04 LTS server having Linux 3.13, but same takes only 1-2 secs only on Ubuntu 10.04 LTS having Linux 2.6. As a result, overall creation of DSP boot image increases by more than 6 minutes. Why is the XML parsing using XMLin() API taking higher time with Ubuntu 14.04 server? Any idea?

    Thanks and regards,
    Rahul Tripathi
  • You must be using some Perl script from the cg_xml package.  Which one?  Are you executing Perl directly?  Or one of the standalone executables?  

    I'm not sure what is going on.  My guess is that the old system has the Expat library for parsing XML, and the new one doesn't.  If Expat is not available, then XML::Simple uses an XML::SAX parser.  This parser is probably implemented all in Perl, and is slow.  

    Thanks and regards,

    -George

  • Thanks George!!

    Issue is resolved. I installed "libxml-sax-expatxs-perl" on Ubuntu 14.04 server using the following command:

    apt-get install libxml-sax-expatxs-perl

    Also, updated bootimage.pl perl script by adding following line before calling XMLin() API of XML::Simple:

    $XML::Simple::PREFERRED_PARSER = 'XML::SAX::ExpatXS';

    Then compilation time of DSP boot image decreased to 14 seconds from earlier 6 minutes 13 seconds.

    regards,

    Rahul