Kuk-Hwan,

I have been curious about this problem for a long time, as it would be
useful for me to be able to list the SimObjects. I noticed that this
question was posted back in 2012 also (link
<https://www.mail-archive.com/[email protected]/msg05197.html>), and I
don't see any response to it posted in the archives.

I just now got around to looking into this. When I put in a workaround for
an object that causes this error, I noticed that each new object that
causes the problem (for me, I've seen the problem occur for "dtb" in
"AtomicSimpleCPU", "tracer" in "AtomicSimpleCPU", and "tags" in
"BaseCache"), its default value is set to be a SimObject.

For example, in src/cpu/BaseCPU.py, line 162 shows a Param.X86TLB getting
constructed.

dtb = Param.X86TLB(X86TLB(), "Data TLB")

​You can see ​that the default value (the first parameter of the
constructor) is an X86TLB, which is a subclass of SimObject.

When the line of code (line 853) in src/python/m5/SimObject.py is run and
causes the error, it is trying to print out the "path" of the parent of
X86TLB. It appears that this parent is the MetaClass BaseCPU, rather than
an instance of BaseCPU. I believe this is what is causing the problem, as
the case is similar for the "tracer" and "tags" objects, for which the
problem also occurs.

I am not sure what the correct fix is for this, but I think this
observation at least gets in the direction of the cause of the problem. I
think at this point I need to get more familiar with the "Param" object.

So far, the gem5 wiki page on "Configuration/Simulation Scripts" (link
<http://www.m5sim.org/Configuration_/_Simulation_Scripts>) has been helpful
for me with tracking this down.

I see that there is a section for param types on the wiki page for
SimObjects (link <http://www.m5sim.org/SimObjects#Param_types>), but the
section is empty.

If you have any updates on this problem, I'd be interested in hearing.

Regards,
Patrick

On Mon, Apr 14, 2014 at 7:24 PM, Kuk-Hwan Kim <[email protected]
> wrote:

>
> Dear Gem5 Users,
>
> I ran following commands and it generated some parameters in the beginning
> and ended with errors like this.
>
> ./build/ARM/gem5.opt --list-sim-objects
>
>
>
> SimObjects:
>     A9SCU
>         clk_domain
>             default: Parent.clk_domain
>             desc: Clock domain
>
>         eventq_index
>             default: Parent.eventq_index
>             desc: Event Queue Index
>
>         pio_addr
>             desc: Device Address
>
>         pio_latency
>             default: 100ns
>             desc: Programmed IO latency
>
>         system
>             default: Parent.any
>             desc: System this device is part of
>
>
> .......
> .......
> .......
>
> Traceback (most recent call last):
>   File "<string>", line 1, in <module>
>   File "/mnt/lnx-arch/gem5/src/python/m5/main.py", line 272, in main
>     print "            default: %s" % default
>   File "/mnt/lnx-arch/gem5/src/python/m5/SimObject.py", line 853, in
> __str__
>     return self.path()
>   File "/mnt/lnx-arch/gem5/src/python/m5/SimObject.py", line 847, in path
>     ppath = self._parent.path()
> TypeError: unbound method path() must be called with ArmTLB instance as
> first argument (got nothing instead)
>
>
> Is this error which I introduced by command-line command or gem5 software
> bugs?. I need to know all the available parameters which I can tweak for my
> simulation. Any insight or help will be appreciated. Thank you for your
> help
> in advance.
>
> Regards
> Kuk-Hwan
>
>
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to