[gem5-users] Re: trigger is not recongnized for MSI protocol withRuby in gem5

2020-09-21 Thread Jason Lowe-Power via gem5-users
Hi Shaikhul,

"trigger" isn't really a function. It's a language statement (like, `if` in
C/C++).

SLICC doesn't always give the most helpful errors. However, I notice that
the eros is actually showing line 124, not line 219. That seems suspicious
to me, and I'd look more into that.

Also, you can find a working and tested version of the MSI protocol in
src/learning_gem5/part3/. You can check yours against that to see if there
are any changes. It's possible that some things in gem5 have changed since
the tutorial was last updated.

Cheers,
Jason

On Sat, Sep 19, 2020 at 11:45 AM Shaikhul Hadi via gem5-users <
gem5-users@gem5.org> wrote:

> I'm trying to implement MSI protocol in gem5 using Ruby SLICC [version
> SHA: 8e9b03b640e1c2074896d1123fd55fd336c37d6c] following this
>  source. When I
> run build, it raises exception and terminates operation.
>
> Exception: MSI-dir.sm:124: Error: Unrecognized function name:
>> 'trigger_Event_Addr'
>>
>
> Exception occurs at line 219 of MSI-dir.sm
>  file.
>
> in_port(memQueue_in, MemoryMsg, responseFromMemory) {
>> if (memQueue_in.isReady(clockEdge())) {
>> peek(memQueue_in, MemoryMsg) {
>> if (in_msg.Type == MemoryRequestType:MEMORY_READ) {
>> trigger(Event:MemData, in_msg.addr); //exception
>> raised here
>> } else if (in_msg.Type == MemoryRequestType:MEMORY_WB) {
>> trigger(Event:MemAck, in_msg.addr);
>> } else {
>> error("Invalid message");
>> }
>> }
>> }
>> }
>>
>
>  I cloud not find any detail documentation of trigger function. According
> to gem5 documatation
>  the number
> of arguments to trigger depend on the machine itself which I presume means
> variable arguments.Also my implementation of trigger is valid(I assume) as
> in ./src/mem/ruby/protocol  also provides sample protocol file
> (Garnet_standalone-dir.sm) that has trigger implementation with two
> argument (trigger(Event:MemData, in_msg.addr);) just like mine. My system
> do not have dma controller.
>
> Why this exception is being raised ? How cloud I solve this issue?
>
> Note: I have also asked this question in stack overflow
> 
>
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Why using guest code with pseudo-instructions has less number of simulated ticks

2020-09-21 Thread Jason Lowe-Power via gem5-users
Hi Aamir,

Slight changes (e.g., less that 1%) wouldn't be too surprising as SE mode
isn't always deterministic. Additionally, you're changing the number of
instructions and the layout of the binary when you add instructions. So,
again, slight changes wouldn't be surprising.

If the changes in simulated time are drastic, then my bet is that one of
the pseudo ops is breaking your code or making it take a significantly
different code path. The easiest thing is printf debugging in your
simulated binary. You can make sure it is successfully executing the code
you think it is by printing at the end on a successful run, for instance.

Cheers,
Jason

On Mon, Sep 21, 2020 at 5:05 AM Muhammad Aamir via gem5-users <
gem5-users@gem5.org> wrote:

> Hi everyone,
>
> I have noticed that when I am using pseudo-instructions such as:
> m5_reset_stats(0,0), m5_dump_stats(0,0) and m5_rpns() i get a less number
> of simulated ticks compared to when I don't use them.
>
> Am particularly interested in m5_rpns() as I am measuring the time
> taken by a certain function, and I did notice quite a difference in the
> simulated ticks when not using them
>
> Would someone explain me why this is so? As I am measuring performance, i
> would not like such discrepancies appearing
> Am running in SE mode and using the X86 architecture.
>
> Thanks,
> Aamir
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Indirect target predictor

2020-09-21 Thread Jason Lowe-Power via gem5-users
Hi Shyam,

I don't think so! However, we'd be happy to accept the contribution of new
indirect predictors!

Cheers,
Jason

On Fri, Sep 18, 2020 at 4:07 PM Shyam Murthy via gem5-users <
gem5-users@gem5.org> wrote:

> Hi All,
>
> Is there any other target predictor for indirect jumps on gem5 apart from
> simple indirect predictor?
>
> Thanks,
> Shyam
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Why using guest code with pseudo-instructions has less number of simulated ticks

2020-09-21 Thread Muhammad Aamir via gem5-users
Hi everyone,

I have noticed that when I am using pseudo-instructions such as:
m5_reset_stats(0,0), m5_dump_stats(0,0) and m5_rpns() i get a less number
of simulated ticks compared to when I don't use them.

Am particularly interested in m5_rpns() as I am measuring the time taken by
a certain function, and I did notice quite a difference in the simulated
ticks when not using them

Would someone explain me why this is so? As I am measuring performance, i
would not like such discrepancies appearing
Am running in SE mode and using the X86 architecture.

Thanks,
Aamir
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s