Commit graph

2914 commits

Author SHA1 Message Date
Erik Hallnor
df9a435b8f Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : 733941876ff0967b1e64c7aef11b81beed3fa9e8
2003-12-17 22:55:55 -05:00
Erik Hallnor
27cb54e92d Initial probe checkin. Still need to write the snoopProbe functions for coherence to work properly.
--HG--
extra : convert_revision : 1f4de96fe0339d7707cea42e96e463fbe11812e4
2003-12-17 22:55:45 -05:00
Steve Raasch
888ea0dfd9 Re-add code to handle following multitple chains that got removed when chain stuff moved into dispatch
--HG--
extra : convert_revision : 263ecd450cda5205d368e0041614312e68901666
2003-12-17 15:31:51 -05:00
Steve Raasch
96fddedb9c Add parameters to Segmented IQ
--HG--
extra : convert_revision : 1993882ffafb918b735efb070a82313cfa14f1cc
2003-12-17 15:30:15 -05:00
Steve Raasch
41f38e2646 Be careful what you put inside an assert() !!!
--HG--
extra : convert_revision : 2d7ee1fd37ba0317d6e7cc6b27dcb942f001cc6e
2003-12-17 15:27:23 -05:00
Steve Reinhardt
d5a187dd5a Miscellaneous minor fixes/improvements.
Most notable is that the rundiff trace-output lossage is fixed!

base/pollevent.cc:
    Use SA_RESTART to keep blocked write() calls from failing
    with EINTR when signals happen.
base/trace.hh:
    Make TRACING_ON depend on NDEBUG not being set (instead of
    DEBUG being set) so m5.opt/m5.fast do what we want.
util/rundiff:
    Print header lines showing file/cmd names.

--HG--
extra : convert_revision : 4966814ad65aedb6d62a5a62a6ad3e3f326d61b8
2003-12-17 09:43:03 -08:00
Steve Reinhardt
16021aa436 Fix previously committed call_pal fix... the main problem was in the
makefile, such that decoder.cc was not getting rebuilt.
Also add -fno-strict-aliasing to fix all the bizarre problems
I've been having with g++ 3.3.x.

arch/alpha/isa_desc:
    Fix compilation problems.  AlphaISA is a class now, not a namespace.

--HG--
extra : convert_revision : 1583cebc1258c57cbd286c1955d11648150fa1f4
2003-12-16 11:46:52 -08:00
Steve Reinhardt
f47dcadfd8 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : dd887635c7ce74324b3670744461ffdf92e1dedf
2003-12-15 21:07:04 -08:00
Steve Reinhardt
2cd5e980d2 Fixes for full-system call_pal instruction.
arch/alpha/alpha_memory.cc:
    Rename md_mode_type to mode_type.
arch/alpha/ev5.cc:
    simPalCheck() only gets called on correct path now, so
    there's no need to test misspeculating().
arch/alpha/isa_desc:
    Get privileged call_pall detection right this time (I hope).
    ExecContext::simPalCheck() and Annotate::Callpal() are now
    called only on non-speculative executions... this should fix
    the bogus pal-call stats we've been seeing (since these are
    incremented in simPalCheck()).
    Also check for invalid call_pall function codes.

--HG--
extra : convert_revision : 465d6724884007d3fa066d14cd5e6db0cd3954e1
2003-12-15 21:06:09 -08:00
Steve Reinhardt
d0feece6e0 Minor enhancements to rundiff.
util/rundiff:
    Dump buffered lines on loss of sync so we see where things went wrong.
    Also return proper exit code from checkmatch() function.

--HG--
extra : convert_revision : cd88064ee784a50b675bf3fededbb3901c3c266c
2003-12-15 20:58:18 -08:00
Steve Reinhardt
eb1cfea1aa Another fix for gcc 3.3.x.
base/statistics.hh:
    Make a couple of typedefs public rather than protected.
    g++ 3.3 complains otherwise.

--HG--
extra : convert_revision : 6a8e4edb0c39474c0e0c7bc474ad0f22b9fb8505
2003-12-15 20:56:47 -08:00
Steve Reinhardt
e537fb3fd6 Add #define parameter and corresponding build option to
disable FastAlloc.  Gcc 3.3.x appears to have a bug that
breaks FastAlloc when compiled with optimization.

base/fast_alloc.cc:
base/fast_alloc.hh:
    #define NO_FAST_ALLOC makes FastAlloc a no-op.

--HG--
extra : convert_revision : bf4bb8e963331c6782f2cfd475a811aa520e31b5
2003-12-15 20:55:10 -08:00
Nathan Binkert
ce4aba3e54 Add support for getting the hostname
--HG--
extra : convert_revision : 498a950e574059eac2e3b1969880ecc04cf53f31
2003-12-15 18:24:02 -05:00
Nathan Binkert
ef659565ff Clean up time handling code
base/str.hh:
    this should really be inline
base/time.cc:
base/time.hh:
    clean up how the time class works.  Export only one, and let
    people calculate their own elapsed times, etc.
sim/main.cc:
    sim/sim_time.X -> base/time.X

--HG--
rename : sim/sim_time.cc => base/time.cc
rename : sim/sim_time.hh => base/time.hh
extra : convert_revision : f3888fe3a1fdd1022084c282b58407c631a6d9a0
2003-12-15 18:23:48 -05:00
Nathan Binkert
3c6fc7c269 - Add a new target m5.fast (or just fast for short)
-  make stuff compile with NDEBUG
-  remove the TRACE setup option since it isn't useful anymore

base/statistics.cc:
    Compile with -DNDEBUG

--HG--
extra : convert_revision : a75b3881be1513abb5915b6463c6cdc1f23a62e1
2003-12-11 19:22:03 -05:00
Steve Reinhardt
1cb7159966 Make memtest compile again.
cpu/memtest/memtest.hh:
    Oops... make memtest compile with new event priorities too.

--HG--
extra : convert_revision : 8143f2e078bb785991d351803fc3a6a50aa31ae5
2003-12-11 08:46:21 -08:00
Steve Reinhardt
45d0a46080 Minor util/find-files fix.
--HG--
extra : convert_revision : d71031993b996cd1a3c2e8749ba7ee7440176287
2003-12-11 08:30:35 -08:00
Steve Reinhardt
7c708c8d1b - Switch events to use a priority enum instead of integers.
This lets us centralize priorities so we can see what's going on.
- Shift serialize & cpu-switch events to happen before CPU ticks (to be
consistent with starting new CPU on same cycle instead of next cycle).
- Get rid of unnecessary bus stats reset callback.

cpu/simple_cpu/simple_cpu.cc:
sim/debug.cc:
sim/eventq.hh:
sim/serialize.cc:
sim/sim_events.cc:
sim/sim_events.hh:
    Switch events to use a priority enum instead of integers.
    This lets us centralize priorities so we can see what's going on.

--HG--
extra : convert_revision : 510d79b43c0a1c97a10eb65916f7335b1de8b956
2003-12-11 08:29:52 -08:00
Steve Reinhardt
777c1ebfab Stats & serialization tweaks & cleanup. Unserializing from
a checkpoint now gives identical results to running from scratch
and doing at switchover at the same cycle!
- CPUs start at cycle 0 again, not cycle 1.
- curTick is now serialized & unserialized.
- Stats get reset in main (before event loop).  Since this is done
after curTick is unserialized, simTicks gets set correctly for
running from a checkpoint.
- Simplify serialization to happen in a single pass.
- s/Serializeable/Serializable/

arch/alpha/isa_traits.hh:
dev/etherlink.hh:
sim/eventq.cc:
sim/eventq.hh:
    s/Serializeable/Serializable/
kern/tru64/tru64_system.cc:
sim/process.cc:
    Make initial CPU activation on cycle 0 again (not 1).
sim/main.cc:
    Reset stats before getting started.
    Make error message on falling out of event loop
    more meaningful.
sim/serialize.cc:
sim/serialize.hh:
    Get rid of now-useless initial pass; serialization is
    done in a single pass now.
    Serialize & unserialize curTick.
    Wrap curTick and mainEventQueue in a "globals" Serializable object.
    s/Serializeable/Serializable/
sim/sim_object.cc:
    Add static function to serialize all SimObjects.
sim/sim_object.hh:
    Add static function to serialize all SimObjects.
    s/Serializeable/Serializable/

--HG--
extra : convert_revision : 9dcc411d0009b54b8eb61c3a509680b81b9f6f68
2003-12-11 00:16:46 -08:00
Steve Reinhardt
7e6dcd812c Rename RegResetCallback to registerResetCallback().
Add reset callback for bus (to fix idle cycles computation).

base/statistics.cc:
base/statistics.hh:
sim/sim_object.cc:
    Rename RegResetCallback to registerResetCallback().

--HG--
extra : convert_revision : c886c98143d4851f709ef95de3120b4494f8e4d2
2003-12-10 17:49:41 -08:00
Steve Reinhardt
4ce6118fda Factor ExecContext::setStatus(), BaseCPU::execCtxStatusChange(),
and SimpleCPU::setStatus() into separate functions.  For example,
setStatus(Active) is now activate().

--HG--
extra : convert_revision : 4392e07caf6c918db0b535f613175109681686fe
2003-12-10 17:47:28 -08:00
Steve Reinhardt
db6038937d Minor fixes. Somehow do-tests.pl suddenly started failing
on test5 because of a wrong exit code; fixed that.

sim/main.cc:
    No need to ignore SIGPIPE, as far as I know.
sim/sim_events.cc:
    A CountedExitEvent is a normal termination, so
    should have an exit code of 0.

--HG--
extra : convert_revision : 8b5072aca54f3ca08b2815b73ac01c00e4da49b6
2003-12-09 20:25:52 -08:00
Steve Reinhardt
3d8cd20467 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : c8d6f2e6f590b7d1940b889bbec09e0e46f48c86
2003-12-09 16:43:54 -08:00
Nathan Binkert
06aafccce7 Make the simulator compile on an Itanium.
base/hashmap.hh:
    Not all machines need these extra hash functions
    also make Counter int64_t since that's really what is needed

--HG--
extra : convert_revision : b5b5d65db157d01d76adbf4de4882b1516c9f2e7
2003-12-09 17:41:08 -05:00
Steve Reinhardt
a1dcdeb3d8 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : c74b502bf44ac300e44c9aa7d6d6e3c55a511893
2003-12-09 14:21:46 -08:00
Steve Reinhardt
5e360051cf Minor tweaks to make a switchover at tick N match
restarting from a checkpoint at tick N.

cpu/simple_cpu/simple_cpu.cc:
    On a CPU switchover, schedule the new CPU's first tick event
    for curTick+1 instead of curTick.

--HG--
extra : convert_revision : f0757d6f028214d36c1cff992db688fd6e8a6fdc
2003-12-09 14:21:38 -08:00
Steve Reinhardt
f13509e968 Generate a fault when a privileged PAL call is
executed in non-privileged (non-PAL) mode.

--HG--
extra : convert_revision : c8823a1eec27d801a1ed6110ade07354c4dd2a32
2003-12-09 14:19:35 -08:00
Nathan Binkert
368de4109f Sweeping change in the stats package....again...
base/statistics.cc:
    -  Merge the m5 display and simplescalar compatible display functions.
    -  Use functors for the stats printing instead of functions.  This
    gets rid of the very long argument lists and improves clarity.
    -  Fix a bug in binning that caused an invalid allocation to occur.
base/statistics.hh:
    -  Instead of using a compile time variable to choose whether
    to print in ss compat mode, we use a runtime variable.
    This is how we'll choose python output.
    -  There are no more virtual functions in the statistics themselves.
    All virtual functions have been moved into a secondary helper class.
    Every stat has an associated helper class that knows how to access
    certain variables in that stat.
    There is a hash_map from the stat to it's helper class data.  This was
    done because the helper data is only used during setup, stats reset,
    and printing.  All of which happen rarely, and you want to avoid
    any performance hit that you can.
    -  To provide the name(), desc(), etc functions to classes so that the
    user can set various parameters to the stats class, a single class
    containing all of those functions was created.  An odd trick was
    done to actually make this class derive from the stat class because
    a base class with no data actually does end up taking up space.
    -  The detail namespace was removed for now.  I'll put it back when the
    package is not in so much flux.
    -  Standard deviation, and mean were added to all distribution stats.
    -  There are several bugfixes and changes that aren't mentioned
test/Makefile:
    Don't test sim_stats foo.
test/stattest.cc:
    Don't test sim_stats foo.
    Fix bin usage so that it corresponds to the current usage.

--HG--
extra : convert_revision : ce8d9a8d485a84d55799f253d851e83650684170
2003-12-09 13:05:43 -05:00
Steve Raasch
f8b78a81b9 Remove mostly-broken binning stuff from "get"
Add parser debugging command-line option

--HG--
extra : convert_revision : 2f8a450f11ed10c3d1a5e8e58232aa8f3e5994c2
2003-12-08 17:34:14 -05:00
Steve Raasch
9511bc025d Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/y/sraasch/m5

--HG--
extra : convert_revision : 4e50e20af73d181de7365c9b77de78d70fcede8d
2003-12-08 17:13:18 -05:00
Steve Raasch
ac51f420c7 Fetch-loss now uses the stats package
--HG--
extra : convert_revision : c930a849e866177ceb67ec5db9444e8cfb4e0694
2003-12-08 17:12:45 -05:00
Nathan Binkert
1d7c11af7d Instead of keeping track of the fraction of time that we're
idle, keep track of the fraction of time we're not idle.  This
works better because the default processor state is idle, and
the default stat value is 0.
Keep the stat as idleFraction which is a formula that is equal
to 1 - notIdleFraction

--HG--
extra : convert_revision : 331c2e46f45ae0abda46988567ac2c4f7c42ccad
2003-12-08 14:01:48 -05:00
Nathan Binkert
0ff2457bfa move setStatus into the .cc file
--HG--
extra : convert_revision : 9ccf885274d72ea3151a0db76b580dd51763edab
2003-12-08 13:15:18 -05:00
Steve Reinhardt
37a718e45e Various cleanup. Mostly forcing initialization of some fields...
I noticed that checkpoints dumped from m5.debug and m5.opt had
differences, which is no longer the case (other than addresses
encoded in names).

cpu/full_cpu/smt.hh:
    Get rid of unused SMT_MAX_CPUS.
sim/debug.cc:
    Use AutoDelete for DebugBreakEvent.
sim/serialize.cc:
sim/serialize.hh:
    Move constructor & destructor to header so they can be inlined.

--HG--
extra : convert_revision : bc68c2c9b053b1de0d655ed555734419fafd0b83
2003-12-06 09:57:59 -08:00
Lisa Hsu
b6c77fe6f8 remote_gdb.cc:
fix remote gdb

base/remote_gdb.cc:
    fix remote gdb

--HG--
extra : convert_revision : 886cad5037e2124e6087be03f2903f07aeed0679
2003-12-04 19:26:31 -05:00
Steve Raasch
a229495400 Minor fixes to the Segmented and Seznec IQ models
--HG--
extra : convert_revision : c8f9dc0465da1b119d6cf7d4eb599f0a16a25c92
2003-12-03 12:48:57 -05:00
Steve Reinhardt
9984b2bd6c Formatting & doxygen docs for new syscall emulation code.
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
    Formatting & doxygen.

--HG--
extra : convert_revision : 4f07dd37e254120800dd0d5c0eb47acc9c00cb3f
2003-12-01 22:39:27 -08:00
Steve Reinhardt
745f0044cd Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : d66ebc598fdcfc9477ea5a1e455b21d7b9e56936
2003-12-01 19:34:51 -08:00
Steve Reinhardt
7976794aad Restructuring of LiveProcess etc. to support multiple emulated OS syscall
interfaces, and specific support for Alpha Linux.  Split syscall emulation
functions into several groups, based on whether they depend on the specific
OS and/or architecture (and all combinations of above), including the use of
template functions to support syscalls with slightly different constants
or interface structs.

arch/alpha/alpha_tru64_process.cc:
    Incorporate full Tru64 object definition here, including structure and constant definitions.
    This way we can wrap all of the functions inside the object, and not worry about namespace
    conflicts because no one outside this file will ever see it.
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
    Add enums to ObjectFile to indicate the object's architecture and operating system.
cpu/exec_context.cc:
    prog.hh is now process.hh
cpu/exec_context.hh:
    prog.hh is now process.hh
    move architecture-specific syscall arg accessors into ExecContext
cpu/simple_cpu/simple_cpu.cc:
    No need to include prog.hh (which has been renamed)
sim/process.cc:
sim/process.hh:
    LiveProcess is now effectively an abstract base class.
    New LiveProcess::create() function takes an object file and dynamically picks the
    appropriate subclass of LiveProcess to handle the syscall interface that file expects
    (currently Tru64 or Linux).

--HG--
rename : arch/alpha/fake_syscall.cc => arch/alpha/alpha_tru64_process.cc
rename : sim/prog.cc => sim/process.cc
rename : sim/prog.hh => sim/process.hh
extra : convert_revision : 4a03ca7d94a34177cb672931f8aae83a6bad179a
2003-12-01 19:34:38 -08:00
Erik Hallnor
5b24b5a5c5 Change the way writebacks are handled to make probing easier. Minor fixes to get coherence-test to work again.
--HG--
extra : convert_revision : 86915c6651e72ca4cbf85111599e451237f74a71
2003-11-25 18:11:48 -05:00
Erik Hallnor
6f1fa02f51 Extract documentation for all classes.
--HG--
extra : convert_revision : 17428b19a2230199a8ac79b7d8f727d58d3428ac
2003-11-24 15:46:39 -05:00
Lisa Hsu
c02fc7e99f get rid of the errors from simple-test1 and test1-6
base/statistics.cc:
    fix how some stats are printed to get rid of some of those pesky regression errors.  this does not fix all of them, just the unimportant ones.

--HG--
extra : convert_revision : 247675fd5bbb47e29c8c077a8d2b2996be1b7072
2003-11-23 12:57:16 -05:00
Nathan Binkert
55a7490a11 Go Blue!!!!
base/statistics.hh:
    Simple formatting fixes

--HG--
extra : convert_revision : 608fe1c37f58426d65cb5ec172764a6b610be6c8
2003-11-22 15:12:56 -05:00
Nathan Binkert
713e2b12e4 Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/stats

--HG--
extra : convert_revision : cc1611895ad790cdaff75f752f10c048a5bff323
2003-11-22 15:09:30 -05:00
Nathan Binkert
d1e12b57ce We only need to choose that we do want binning, or we don't.
no need for multiple bin classes.  If multiple bins are needed, we
can always do it with ini type config instead.

kern/tru64/tru64_events.hh:
sim/system.cc:
sim/system.hh:
    No more GenBin always use MainBin

--HG--
extra : convert_revision : 8c466f302324c33b59d47d0da04583b2517fc72c
2003-11-22 15:07:53 -05:00
Erik Hallnor
d760ca18ab Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : 184533b3ec794bdff49cd1a6b8f2814f7af4237c
2003-11-20 23:03:42 -05:00
Lisa Hsu
e5eb961274 full_cpu.cc:
change name of numTicks to "numTicks" instead of "number of ticks" (which screws up scripts).

--HG--
extra : convert_revision : 9f68c5586743ea4c284609b405d5d9f23bd7cd49
2003-11-20 08:06:33 -05:00
Erik Hallnor
3e57b99ad6 Pass all the related information (the memreq) to the findBlock call. Working towards not caring about block addresses anymore.
--HG--
extra : convert_revision : 5700b8e843cd97c9bf1793d81615e65f1cf1e1aa
2003-11-19 16:41:41 -05:00
Erik Hallnor
24061d5bff Pass MemReqPtr by reference.
--HG--
extra : convert_revision : 141d50bb0bb010cee38231ec7b7289fa834b37d5
2003-11-19 16:40:05 -05:00
Erik Hallnor
65ea19b6f5 Move some MSHR typedefs into the class, transition from MSHRblah to MSHR::blah.
--HG--
extra : convert_revision : 4deb260e4374ca05f965cfc27169e838971d5e0f
2003-11-19 15:26:14 -05:00