Hi George,

For workbegin/workend, they can be called from within applications if you
link to the libm5 library. For instance, in the parsec resource here:
https://resources.gem5.org/resources/parsec we use the m5_workbegin()
function in the ROI hooks. See
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/disk-image/parsec/parsec-benchmark/pkgs/libs/hooks/src/hooks.c#96
for the code.

This works in both SE mode and FS mode. I have no idea why those functions
are not available in the m5 binary. This seems like an oversight, and it
should be a simple fix. If you want to make the fix, we'd appreciate it,
otherwise, we'll put it on the to do list :).

If you require using the m5 binary without any changes, then you can use
`m5 exit` and modify your run script to "understand" that the first exit is
to reset the stats, the second exit means to dump the stats, etc.

Cheers,
Jason

On Wed, Mar 9, 2022 at 4:08 AM Gabe Black via gem5-users <
gem5-users@gem5.org> wrote:

> I don't think we ever transitioned from an assembly based mechanism to a C
> based one, since we have always (as far as I know) used both, assembly to
> actually invoke the call into gem5, and C to provide a friendly
> interface/wrapper around the assembly. That said, yes, it looks like work
> begin and work end are just not in the utility, but they are in the header
> files and are implemented in gem5 itself.
>
> Looking at this again triggered a vague memory where I think these didn't
> make sense being called from the utility for some reason? Maybe they only
> make sense in SE mode, or they should be called from code directly instead
> of from a shell or script? I'm not very familiar with them so I can't say
> for sure, but I vaguely remember there was something like that.
>
> Gabe
>
> On Wed, Mar 9, 2022 at 2:45 AM Giacomo Travaglini <
> giacomo.travagl...@arm.com> wrote:
>
>> Hi George,
>>
>>
>>
>> Thanks for reporting this, I noticed the same issue. When we transitioned
>> from the old m5 subsystem (assembly based) to the new C based one we forgot
>> to provide an implementation for workbegin and workend I suppose. Putting
>> Gabe on CC
>>
>>
>>
>> Kind Regards
>>
>>
>>
>> Giacomo
>>
>>
>>
>> *From: *George Michelogiannakis via gem5-users <gem5-users@gem5.org>
>> *Date: *Wednesday, 9 March 2022 at 06:54
>> *To: *gem5-users@gem5.org <gem5-users@gem5.org>
>> *Cc: *George Michelogiannakis <mixelog...@yahoo.co.uk>
>> *Subject: *[gem5-users] M5 Fs utility workbegin
>>
>> Hello Gem5 community,
>>
>>
>>
>> I'm trying to use the M5 utility meant for full system mode to signal
>> work begin and end. I see in the documentation that the utility supports
>> these parameters:
>>
>>
>>
>>    - workbegin: Cause an exit evet of type, “workbegin”, that could be
>>    used to mark the begining of an ROI.
>>    - workend: Cause an exit event of type, “workend”, that could be used
>>    to mark the termination of an ROI.
>>
>> But when I run the utility in X86 after compiling it for X86 those two
>> options aren't available as commands. There is a "fail" option with a
>> parameter that isn't mentioned in the documentation. Is that the way to
>> simulate workbegin and workend?
>>
>>
>>
>> Thanks in advance,
>>
>>   George M
>>
>>
>>
>>
>> IMPORTANT NOTICE: The contents of this email and any attachments are
>> confidential and may also be privileged. If you are not the intended
>> recipient, please notify the sender immediately and do not disclose the
>> contents to any other person, use it for any purpose, or store or copy the
>> information in any medium. Thank you.
>>
> _______________________________________________
> 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

Reply via email to