Closed alorence closed 11 years ago
A small example of a gdb run with the Smarter Scheduler option enabled and a custom mapping (.xcf file below). The used code is the HEVC implementation from orc-apps with the C backend run on the RVC "Top_mpegh_part2_main.xdf" top-level XDF.
OS - Fedora 17 (software up-to-date @ 24/04/13) Processor - Intel Xeon quad-core HT (8 virtual cores) @ 2.40GHz
(gdb) r -i BasketballDrive_1920x1080_50_qp22.bin -m ../src/Top_mpegh_part2_main.xcf
Starting program: /work1/dvanamst/HEVC/orcHEVCcompilation/bin/Top_mpegh_part2_main -i BasketballDrive_1920x1080_50_qp22.bin -m ../src/Top_mpegh_part2_main.xcf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff7fd3700 (LWP 27863)]
[New Thread 0x7ffff77d2700 (LWP 27864)]
[New Thread 0x7ffff6fd1700 (LWP 27865)]
[New Thread 0x7ffff67d0700 (LWP 27866)]
[New Thread 0x7ffff5fcf700 (LWP 27867)]
[New Thread 0x7ffff57ce700 (LWP 27868)]
[New Thread 0x7ffff4fcd700 (LWP 27869)]
[New Thread 0x7fffeffff700 (LWP 27870)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeffff700 (LWP 27870)]
0x000000000040cf10 in sched_add_schedulable ()
(gdb) bt
#0 0x000000000040cf10 in sched_add_schedulable ()
#1 0x000000000040e54b in display_scheduler ()
#2 0x0000000000409aad in scheduler ()
#3 0x0000003afca07d14 in start_thread (arg=0x7fffeffff700) at pthread_create.c:309
#4 0x0000003afbef168d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Partitioning>
<Partition id="1">
<Instance id="HevcDecoder_xIT_IT4x4_IT4x4_1d_0"/>
<Instance id="HevcDecoder_xIT_IT4x4_Transpose4x4_0"/>
<Instance id="HevcDecoder_xIT_IT4x4_IT4x4_1d_1"/>
<Instance id="HevcDecoder_xIT_IT4x4_Transpose4x4_1"/>
<Instance id="HevcDecoder_xIT_IT8x8_IT8x8_1d_0"/>
<Instance id="HevcDecoder_xIT_IT8x8_Transpose8x8_0"/>
<Instance id="HevcDecoder_xIT_IT8x8_IT8x8_1d_1"/>
<Instance id="HevcDecoder_xIT_IT8x8_Transpose8x8_1"/>
<Instance id="HevcDecoder_xIT_IT16x16_IT16x16_1d_0"/>
<Instance id="HevcDecoder_xIT_IT16x16_Transpose16x16_0"/>
<Instance id="HevcDecoder_xIT_IT16x16_IT16x16_1d_1"/>
<Instance id="HevcDecoder_xIT_IT16x16_Transpose16x16_1"/>
<Instance id="HevcDecoder_xIT_IT32x32_IT32x32_1d_0"/>
<Instance id="HevcDecoder_xIT_IT32x32_Transpose32x32_0"/>
<Instance id="HevcDecoder_xIT_IT32x32_IT32x32_1d_1"/>
<Instance id="HevcDecoder_xIT_IT32x32_Transpose32x32_1"/>
</Partition>
<Partition id="2">
<Instance id="HevcDecoder_IntraPrediction"/>
<Instance id="HevcDecoder_InterPrediction"/>
</Partition>
<Partition id="3">
<Instance id="HevcDecoder_LCU_reord"/>
<Instance id="HevcDecoder_LCU_reord2"/>
</Partition>
<Partition id="4">
<Instance id="HevcDecoder_xIT_IT_Splitter"/>
<Instance id="HevcDecoder_xIT_IT_Merger"/>
<Instance id="HevcDecoder_xIT_invDST4x4_1st"/>
<Instance id="HevcDecoder_xIT_invDST4x4_2nd"/>
<Instance id="HevcDecoder_xIT_Block_Merger"/>
</Partition>
<Partition id="5">
<Instance id="HevcDecoder_feeder"/>
<Instance id="HevcDecoder_DecodingPictureBuffer"/>
</Partition>
<Partition id="6">
<Instance id="Source"/>
</Partition>
<Partition id="7">
<Instance id="HevcDecoder_Algo_Parser"/>
<Instance id="HevcDecoder_SelectCU"/>
<Instance id="HevcDecoder_GenerateInterInfo_GenerateRefList"/>
<Instance id="HevcDecoder_GenerateInterInfo_MvComponentPred"/>
</Partition>
<Partition id="8">
<Instance id="display"/>
</Partition>
</Partitioning>
<!-- Other useful informations related to any element of the instanciated model can be printed here -->
</Configuration>
I'm not able to reproduce the bug with the development version of Orcc (Ubuntu 13.04 / Same app / Same xcf). @Helcaraxan I suppose you have tried the stable release, right ?
Yes. I tried the stable release indeed.
I still reproduce this bug. It seems to work with Smarter scheduler / Ring topology, but it segfault when I generate application with Smarter scheduler / Mesh topology. I update issue description.
My initial report also concerned the mesh topology (my mistake that I did not indicate it in my report).
Right, I get the segfault with the mesh...
When an application is built with the C backend and the Smarter Scheduler option enabled (w/ Mesh topology), the binary produced works only on mono-core.
If a valid mapping file (*.xcf) is given as command-line option to the decoder, and if it defines a mapping for more than 1 core, application crash at startup displaying a "Segmentation fault".
This issue has been reproduced with HEVC and AVC (part10 CBP)