No problem, I'd been meaning to do it for a while anyway.
As far as librt, I agree it has its drawbacks and I have no problem
with alternatives. An alternative for clock_nanosleep is nanosleep,
the big difference I think being that you can't tell it to wait until
an absolute time, and you don't need to tell it what clock source to
use. I don't have my book here with me so I'm not 100% sure of that. I
looked briefly for a ns accurate "get time" function, but the one I
used was the only one I found. I think that book said gettimeofday is
now deprecated or even removed in the latest version of some standard,
so it might not be the right choice. ns precision is probably overkill
and you're not actually guaranteed that level of resolution anyway, so
us is probably fine. I'm in new territory here so I'm definitely open
to suggestions. As far as the lib check in the SConstruct, I mean to
put an Exit(1) after the error message to make the build die. I think
if we do stick with something requiring librt, I'd probably change
that to set some flag so that timesyncing was disabled instead of
failing out.
Also, I agree or at least don't disagree with all of the suggestions
so far. I'll spin up a new version when I get a chance, possibly not
changing out functions yet since I don't think we've nailed down what
to change them to.
Gabe
Quoting Steve Reinhardt <ste...@gmail.com>:
On 2011-01-10 15:41:41, Ali Saidi wrote:
> src/sim/root.cc, line 200
> <http://reviews.m5sim.org/r/419/diff/1/?file=9421#file9421line200>
>
> Thanks for taking the time to do this!
Ditto... I meant to say something in my review but forgot... despite
the nitpicking, thanks for whipping up a solution so quickly.
Otherwise we'd have nothing to nitpick :-)
- Steve
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/419/#review709
-----------------------------------------------------------
On 2011-01-10 07:44:05, Gabe Black wrote:
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/419/
-----------------------------------------------------------
(Updated 2011-01-10 07:44:05)
Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt,
and Nathan Binkert.
Summary
-------
Time: Add a mechanism to prevent M5 from running faster than real time.
M5 skips over any simulated time where it doesn't have any work to do. When
the simulation is active, the time skipped is short and the work done at any
point in time is relatively substantial. If the time between events is long
and/or the work to do at each event is small, it's possible for
simulated time
to pass faster than real time. When running a benchmark that can be good
because it means the simulation will finish sooner in real time. When
interacting with the real world through, for instance, a serial terminal or
bridge to a real network, this can be a problem. Human or network
response time
could be greatly exagerated from the perspective of the simulation and make
simulated events happen "too soon" from an external perspective.
This change adds the capability to force the simulation to run no
faster than
real time. It does so by scheduling a periodic event that checks to see if
its simulated period is shorter than its real period. If it is, it
stalls the
simulation until they're equal. This is called time syncing.
A future change could add pseudo instructions which turn time syncing on and
off from within the simulation. That would allow time syncing to be used for
the interactive parts of a session but then turned off when running a
benchmark using the m5 utility program inside a script. Time syncing would
probably not happen anyway while running a benchmark because there would be
plenty of work for M5 to do, but the event overhead could be avoided.
Diffs
-----
SConstruct c06505ff551e
configs/example/fs.py c06505ff551e
src/sim/Root.py c06505ff551e
src/sim/SConscript c06505ff551e
src/sim/root.hh PRE-CREATION
src/sim/root.cc c06505ff551e
Diff: http://reviews.m5sim.org/r/419/diff
Testing
-------
Thanks,
Gabe
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev