Hello Jason and everyone,
I'll add the fix to my todo list :)
But before then, I'm confused by something. Thanks for the link to hooks and
indeed I "m5_work_begin(0,0);. I recompiled the benchmarks I had with work
begin and end. It's just adding "m5_work_begin(0,0)" and "m5_work_end(0,0)" at
the right spots, without anything else fancy. It compiles and links fine. When
I try to run natively as expected they terminate due to an illegal instruction
("./run: line 1: 1161 Illegal instruction"). However, the exact same error
happens if I run the same binary in FS mode. Note that I'm running first in KVM
mode on a x86 host hoping to switch CPUs once the work start event happens. Are
magic ops unsupported in KVM mode?
Thanks!
On Wednesday, March 9, 2022, 09:14:24 AM PST, Jason Lowe-Power via
gem5-users <[email protected]> wrote:
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date: Wednesday, 9 March 2022 at 06:54
To: [email protected] <[email protected]>
Cc: George Michelogiannakis <[email protected]>
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 -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s _______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s