Many thanks Gabe,

I rebuilt completely gem5 and I was able to run the example contained in
/util/tlm/ correctly.

Michele

Il giorno ven 20 nov 2020 alle ore 23:25 Gabe Black <[email protected]>
ha scritto:

> No, that's no related to USE_SYSTEMC=False. That's disabling the systemc
> kernel, and the error message is that the system port is not connected.
> Even though the names are similar, the system object doesn't have anything
> to do with systemc. The system port itself is a port that the system object
> (a type of gem5 SimObject) provides which is supposed to connect to the
> memory and give components that want to set up memory like kernel loaders,
> etc, direct access. If that port is not connected, gem5 assumes that's a
> mistake and will error out. You need to make sure it's connected to
> something in your configuration.
>
> Gabe
>
> On Fri, Nov 20, 2020 at 5:20 AM Michele Marazzi <
> [email protected]> wrote:
>
>> Dear Gabe,
>>
>> Thanks for your help.
>> It does compile with USE_SYSTEMC=False, but unfortunately I suspect I do
>> need that part in order to use gem5 as planned.
>>
>> Indeed, the case scenario is to interface it to a slave memory
>> controller. After many tries of different configurations, I keep getting as
>> error:
>> > panic: System port on system is not connected.
>>
>> In order to not get out of scope of this ML I guess it's better not to go
>> into details about my implementation, but rather to say that also the
>> example provided with gem5 (/gem5/util/tlm/build/examples/slave_port/
>> gem5.sc) fails.
>>
>> I've followed the README explanation, first generating the config, and
>> then loading it:
>>
>> user@pc-10744:~/gem5/util/tlm$ build/examples/slave_port/gem5.sc
>>> m5out/config.ini -e 1000000 -v
>>>         SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
>>>         Copyright (c) 1996-2014 by all Contributors,
>>>         ALL RIGHTS RESERVED
>>> Global frequency set at 1000000000000 ticks per second
>>> ============================================================
>>> EventQueue Dump  (cycle 0)
>>> ------------------------------------------------------------
>>> <No Events>
>>> ============================================================
>>> panic: System port on system is not connected.
>>> Memory Usage: 175632 KBytes
>>> Program aborted at tick 0
>>> --- BEGIN LIBC BACKTRACE ---
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7fcd6722d390]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7fcd6723e216]
>>> /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7fcd659c3210]
>>> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fcd659c318b]
>>> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fcd659a2859]
>>> build/examples/slave_port/gem5.sc(+0x2c9a0)[0x56522a0e39a0]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7fcd6725ef2b]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7fcd6722daaf]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7fcd67233fa2]
>>> build/examples/slave_port/gem5.sc(+0x2ba9b)[0x56522a0e2a9b]
>>> build/examples/slave_port/gem5.sc(sc_main+0xfa)[0x56522a0cd8f3]
>>> build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7fcd679fcda0]
>>> build/systemc/libsystemc.so(main+0x24)[0x7fcd679fcc4e]
>>> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fcd659a40b3]
>>> build/examples/slave_port/gem5.sc(+0x1673e)[0x56522a0cd73e]
>>> --- END LIBC BACKTRACE ---
>>> Aborted (core dumped)
>>
>>
>> The same happens if I try with a master configuration:
>>
>> user@pc-10744:~/gem5/util/tlm$ ../../build/X86/gem5.opt
>>> conf/tlm_master.py
>>> warn: CheckedInt already exists in allParams. This may be caused by the
>>> Python 2.7 compatibility layer.
>>> warn: Enum already exists in allParams. This may be caused by the Python
>>> 2.7 compatibility layer.
>>> warn: ScopedEnum already exists in allParams. This may be caused by the
>>> Python 2.7 compatibility layer.
>>> gem5 Simulator System.  http://gem5.org
>>> gem5 is copyrighted software; use the --copyright option for details.
>>> gem5 version 20.0.0.3
>>> gem5 compiled Nov 20 2020 00:52:43
>>> gem5 started Nov 20 2020 13:30:19
>>> gem5 executing on pc-10744, pid 20674
>>> command line: ../../build/X86/gem5.opt conf/tlm_master.py
>>> Global frequency set at 1000000000000 ticks per second
>>> warn: No dot file generated. Please install pydot to generate the dot
>>> file and pdf.
>>> fatal: Can't find port handler type 'tlm_master'
>>> Memory Usage: 612264 KBytes
>>
>>
>> user@pc-10744:~/gem5/util/tlm$ build/examples/master_port/gem5.sc
>>> m5out/config.ini -e 1000000 -v
>>>         SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43
>>>         Copyright (c) 1996-2014 by all Contributors,
>>>         ALL RIGHTS RESERVED
>>> Global frequency set at 1000000000000 ticks per second
>>> ============================================================
>>> EventQueue Dump  (cycle 0)
>>> ------------------------------------------------------------
>>> <No Events>
>>> ============================================================
>>> panic: System port on system is not connected.
>>> Memory Usage: 568848 KBytes
>>> Program aborted at tick 0
>>> --- BEGIN LIBC BACKTRACE ---
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7f44410f5390]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7f4441106216]
>>> /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f443f88b210]
>>> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f443f88b18b]
>>> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f443f86a859]
>>> build/examples/master_port/gem5.sc(+0x2e32c)[0x55f33154d32c]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7f4441126f2b]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7f44410f5aaf]
>>>
>>> /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7f44410fbfa2]
>>> build/examples/master_port/gem5.sc(+0x359a1)[0x55f3315549a1]
>>> build/examples/master_port/gem5.sc(sc_main+0xf8)[0x55f331535971]
>>> build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7f44418c4da0]
>>> build/systemc/libsystemc.so(main+0x24)[0x7f44418c4c4e]
>>> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f443f86c0b3]
>>> build/examples/master_port/gem5.sc(+0x167be)[0x55f3315357be]
>>> --- END LIBC BACKTRACE ---
>>> Aborted (core dumped)
>>
>>
>> The generated config file for the slave case is:
>> https://pastebin.com/uNDrQYWr
>>
>> Is there anything I can do? Is this related to the USE_SYSTEMC=False
>> flag?
>>
>> Thanks again
>> Michele
>>
>>
>> Il giorno gio 19 nov 2020 alle ore 13:32 Gabe Black <[email protected]>
>> ha scritto:
>>
>>> If I remember correctly, this is because there is a mistake in the way
>>> the cxx config support handles Param structs and SimObjects that works most
>>> of the time, but fails when it encounters some of the tricks necessary for
>>> gem5's built in systemc kernel. If you disable that (USE_SYSTEMC=False, I
>>> think), then it will leave out that code and should build successfully. If
>>> you plan to use gem5 as a library with other systemc code, for instance as
>>> a black box within a simulation that uses Accellera's systemc kernel, then
>>> you'll want to turn off gem5's built in systemc kernel anyway, since it
>>> would conflict with the other one and wouldn't link properly.
>>>
>>> Gabe
>>>
>>> On Thu, Nov 19, 2020 at 3:09 AM Michele Marazzi via gem5-dev <
>>> [email protected]> wrote:
>>>
>>>> Dear gem5 folks,
>>>>
>>>> I am trying to compile the most updated (master) version of gem5 as a
>>>> library. (note: I've also tried the same with the develop branch,
>>>> hoping it would work).
>>>>
>>>> The architecture I need is x86, so I simply run:
>>>>
>>>> > scons --no-cache --with-cxx-config --without-python
>>>> --without-tcmalloc  build/X86/libgem5_opt.so -j 2
>>>>
>>>> After I have - successfully - compiled gem5 with only
>>>>
>>>> > scons build/X86/gem5.opt -j 2
>>>>
>>>> No matter what different configurations of compilers/python checkout I
>>>> use, if I keep the flag --with-cxx-config, the compilation results in
>>>> the following error:
>>>>
>>>>  [   SHCXX] X86/cxx_config/Gem5ToTlmBridge32.cc -> .os
>>>> build/X86/cxx_config/Gem5ToTlmBridge32.cc: In member function 'virtual
>>>> SimObject* Gem5ToTlmBridge32CxxConfigParams::simObjectCreate()':
>>>> build/X86/cxx_config/Gem5ToTlmBridge32.cc:136:25: error: cannot
>>>> convert 'sc_gem5::Gem5ToTlmBridge<32>*' to 'SimObject*' in return
>>>>      return this->create();
>>>>                          ^
>>>>  [   SHCXX] X86/cxx_config/Gem5ToTlmBridge64.cc -> .os
>>>> scons: *** [build/X86/cxx_config/Gem5ToTlmBridge32.os] Error 1
>>>> build/X86/cxx_config/Gem5ToTlmBridge64.cc: In member function 'virtual
>>>> SimObject* Gem5ToTlmBridge64CxxConfigParams::simObjectCreate()':
>>>> build/X86/cxx_config/Gem5ToTlmBridge64.cc:136:25: error: cannot
>>>> convert 'sc_gem5::Gem5ToTlmBridge<64>*' to 'SimObject*' in return
>>>>      return this->create();
>>>>                          ^
>>>>
>>>> I'm running Ubuntu 18.
>>>>
>>>> user@pc-10744:~/gem5$ uname -a
>>>> Linux pc-10744 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC
>>>> 2020 x86_64 x86_64 x86_64 GNU/Linux
>>>>
>>>> I have tried gcc version 7.5 and 9.3, python is version 3.8.5
>>>>
>>>> Is there any way of fixing this? Do you have any suggestion, or thing
>>>> to try?
>>>>
>>>> Thank you very much for your time
>>>> Michele
>>>> _______________________________________________
>>>> gem5-dev mailing list -- [email protected]
>>>> To unsubscribe send an email to [email protected]
>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>>>
>>>
>>
>> --
>> Michele Marazzi
>>
>

-- 
Michele Marazzi
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to