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

Reply via email to