Commit graph

6131 commits

Author SHA1 Message Date
Steve Reinhardt
71c11d0631 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/ser/m5
--HG--
extra : convert_revision : abe99bd7f4632eea51fba97273ac024f81b0ddae
2003-10-29 13:35:18 -08:00
Steve Reinhardt
af5277a678 Serialization support for Alpha TLBs, PhysicalMemory, and SimpleCPU.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
    Serialize TLB contents.
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
    Complete serialization of SimpleCPU (including owned events).
sim/eventq.cc:
sim/eventq.hh:
    Basic serialization for events.
    Still need to handle dynamic events (not owned by a SimObject).
sim/serialize.cc:
sim/serialize.hh:
    Export serialization filename so PhysicalMemory can
    derive its filename from that.

--HG--
extra : convert_revision : 4db851c5880f73f576ca092d5e5ad4256048eb51
2003-10-29 13:35:07 -08:00
Erik Hallnor
b45a0808aa Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : 9497a4015940e7fb7151e09f70e84134458ee877
2003-10-29 16:25:23 -05:00
Erik Hallnor
5c8423b5dd Clear up doxygen warnings and serialize ScsiCtrl. We probably shouldn't decfine functions using type defs ala "RegFile" instead of "AlphaISA::RegFile".
base/inifile.hh:
    Document findAppend

--HG--
extra : convert_revision : ab5047590b3ca2a9126b75351e4902d300b5b5ad
2003-10-29 16:25:08 -05:00
Andrew Schultz
31342830ff Checkpointing support for all the tlaser_* files and Turbolaser
--HG--
extra : convert_revision : a7c6cba25713ff334fb9a402817566bfb5eb6679
2003-10-29 14:37:34 -05:00
Nathan Binkert
034babf0fa Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : 97a3b844f3b2f5dcb1e9add4080d5dffebba22c0
2003-10-29 13:06:34 -05:00
Nathan Binkert
33cccccc98 Make the ethernet device use only 32bit and 64bit accesses
This change requires an update of the es device driver in
the kernel as well.

--HG--
extra : convert_revision : 83b83570b8c487869c7bfc550dceb3672d19da10
2003-10-29 12:46:31 -05:00
Steve Reinhardt
8da9fcdd75 Flesh out ExecContext serialize/unserialize (including RegFile).
Add support for serializing enums.

arch/alpha/isa_traits.hh:
    Add serialize/unserialize functions for RegFile
    (defined in new isa_traits.cc).
cpu/exec_context.cc:
    Flesh out serialize/unserialize.
sim/serialize.hh:
    Add {UN}SERIALIZE_ENUM().

--HG--
extra : convert_revision : 9e30c7e7b3b290dc8ea0888ba3636fc93ee89052
2003-10-29 08:50:25 -08:00
Steve Reinhardt
aa12cac9fd Rename SERIALIZE_MEMBER to SERIALIZE_SCALAR.
--HG--
extra : convert_revision : 848cfcf3323d224cdb2ff14df6f6996607a5c27f
2003-10-29 00:46:26 -08:00
Steve Reinhardt
1511370d09 More progress on checkpointing... we can now write out a checkpoint and read it back in,
though most objects don't actually serialize any data.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/isa_traits.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
    Change unserialize param from IniFile& to const IniFile*.
cpu/simple_cpu/simple_cpu.cc:
    Change unserialize param from IniFile& to const IniFile*.
    Make unserialize call ExecContext::unserialize.
sim/eventq.cc:
    Rename MainEventQueue (no spaces) for easier parsing in checkpoints.
    Disable event serialization for now, so we can focus on the easy stuff.
sim/serialize.cc:
    Change paramIn and arrayParamIn param from IniFile& to const IniFile*.
sim/serialize.hh:
    Change unserialize, paramIn, and arrayParamIn params from IniFile& to const IniFile*.

--HG--
extra : convert_revision : 6e8853ed375eddec0e140c95a01dd51bd225f7b9
2003-10-29 00:41:24 -08:00
Steve Reinhardt
a0f3ee7e17 Add a few configuration DPRINTFs.
Fix handling of chars (uint8_ts) in serialization.
Minor cleanup.

sim/param.cc:
    Add specialization of showParam for char: output as ints, not as characters.
    Clean up comments a bit.

--HG--
extra : convert_revision : 96349382447d892679dda9f83c028eec64252dc0
2003-10-28 23:24:40 -08:00
Steve Reinhardt
3761bcf076 Get new serialization code to link.
sim/param.cc:
    Convert parseParam() and showParam() to templates,
    andd explicitly instantiate them for common types.
sim/param.hh:
    Add declarations for parseParam() and showParam() function templates,
    so serialize.cc can use them.
sim/serialize.cc:
    Don't need declarations for parseParam() and showParam() since
    we put them in param.hh.
    Also instantiate paramOut() etc. for bool.

--HG--
extra : convert_revision : 1d84d0fbec64481996cbfa8b84c67c13c6244385
2003-10-28 17:48:10 -08:00
Steve Reinhardt
e12e64a071 Merge zizzer:bk/m5 into isabel.reinhardt.house:/z/stever/ser/m5
--HG--
extra : convert_revision : 50aa3791d27a17c4ea2fb4aee1a67011bd2abec1
2003-10-28 12:56:17 -08:00
Steve Reinhardt
b90f810575 Revamp serialization to make it easier.
--HG--
extra : convert_revision : c57a538d7cf606dbdf5fa244f92da46bd830e335
2003-10-28 12:55:12 -08:00
Steve Reinhardt
1820520697 Clean up a few spots where we weren't handling of misspeculation correctly.
arch/alpha/ev5.cc:
    Don't call kernelStats.hwrei() or system->breakpoint() on misspeculated paths.
arch/alpha/isa_desc:
    Don't write reegs.intrflag, do Annotate::Callpal, or call xc->syscall
    on misspeculated paths.

--HG--
extra : convert_revision : e73b96fbe4ac5be85fb20aa218fd05fd56d5b2f3
2003-10-28 09:09:45 -08:00
Nathan Binkert
cec7f73abf emulate callpal halt for non FULL_SYSTEM
in the process make m5_exit more generic

arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
    There's no reason that this needs to be in an arch specific file
arch/alpha/isa_desc:
    m5_exit -> SimExit
    Emulate callpal halt and cause the simulator to exit
    while we're at it, sort #includes
sim/sim_events.cc:
sim/sim_events.hh:
    move the m5_exit function here, renaming it to SimExit.
    Also Allow the caller to pass in the termination message.

--HG--
extra : convert_revision : 54b43b17a412ab387b8672c27ef0b04fce10ee15
2003-10-28 10:05:58 -05:00
Nathan Binkert
5cf0b0541b Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : df464a46539df4d4870e1e1118bd1a566efe19a0
2003-10-27 19:58:37 -05:00
Andrew Schultz
a3260cbd21 Added init_param line to specweb.ini
--HG--
extra : convert_revision : 1453fae160867ed3e111561eeb71fe0ac2dd6a82
2003-10-27 14:43:05 -05:00
Erik Hallnor
3cad93b5cf Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : 782be2a26c1d0a416ff75bbc80cca5760b467fab
2003-10-27 14:29:42 -05:00
Erik Hallnor
bdf1110c02 Add an exit condition for a set number of misses in any cache. Add writebacks into the overall cache statistics.
--HG--
extra : convert_revision : 76f460f5b7729fc6b85d465d8e21a7a249239a81
2003-10-27 14:29:09 -05:00
Nathan Binkert
57c1cc9e6e Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : 6b53813ed7ee4266ad716df5844070a72977341b
2003-10-27 13:01:25 -05:00
Nathan Binkert
d5766946a0 Add a strip target that will create m5.strip (a stripped
version of m5.opt)

--HG--
extra : convert_revision : 48a1542fb1b62804c59e68b7fed083c4eff03a20
2003-10-27 12:58:47 -05:00
Steve Reinhardt
1c2930b1e1 Merge stever@zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : 25f6c41b709b4dabe1a2e0a180508db05aa4263f
2003-10-26 23:03:51 -08:00
Nathan Binkert
1164494a58 specweb.ini:
fix system name

--HG--
extra : convert_revision : ce7438e314a829c102409c6164006712456c3b2b
2003-10-27 02:02:37 -05:00
Steve Reinhardt
167928f12b Minor serialization tweaks.
cpu/simple_cpu/simple_cpu.cc:
    Serialize FP regs as integers (so we get exact bit representation).
sim/serialize.cc:
    Don't panic on object rename... events come up named "event"
    and need to get renamed.  Also fix some DPRINTFs.

--HG--
extra : convert_revision : 62ad527a7aaf78ae623b70febc1331cf91cbad05
2003-10-26 22:38:53 -08:00
Steve Reinhardt
ced22d81a6 Fix some problems with stats reset & floss counters.
arch/alpha/isa_desc:
    Keep m5 pseudo-instructions (like resetstats) from taking effect
    on misspeculated paths.

--HG--
extra : convert_revision : 7f0b0490164bca377ff2b14abc35a6c26bac9e6d
2003-10-26 22:37:14 -08:00
Nathan Binkert
bac3f9a1aa Clean up kernel .ini files. Factor out common stuff and use
#include to do stuff.

--HG--
extra : convert_revision : 65f2ad04f756cf3fdfe24620a13b04143bf660e0
2003-10-26 23:04:17 -05:00
Nathan Binkert
13bcf233f1 Add an append= keyword that works in a somewhat similar way to
default=.  In the append= case, when looking up an entry, it also
looks in the section named by the append= for something to append
to the entry

--HG--
extra : convert_revision : b51915094ad3ca151d7f241c29e19b6b29d3a3c0
2003-10-26 22:42:45 -05:00
Nathan Binkert
91293e02d2 Make the tap work work again
util/tap/Makefile:
    Make this stuff compile again
util/tap/tap.cc:
    clean up some of the error messages

--HG--
extra : convert_revision : 4543d946b48c9e07bf19b812db6466f80ed6b851
2003-10-26 22:40:03 -05:00
Nathan Binkert
34adf92749 only send data to a peer if the peer exists
dev/etherint.hh:
    only send data to the peer if there is a peer

--HG--
extra : convert_revision : 33d90679ed91a2b2842ce4155ac4e58ec3defc22
2003-10-26 22:38:26 -05:00
Steve Reinhardt
5e0b617283 More tweaking of find-files script. FYI, I now have this hard-wired
into my 'grc' command under emacs.

--HG--
extra : convert_revision : dad50adde069a2218059e628a986fced39b2123e
2003-10-26 08:21:11 -08:00
Steve Reinhardt
54643598f6 Initialize startTick to 1 instead of 0. Fixes floss-check failure
in debug mode.

--HG--
extra : convert_revision : b37d057e3fdb4d8556b7aa61126fb47a5a3d9edf
2003-10-26 08:18:59 -08:00
Steve Reinhardt
b27009fcbe Merge stever@zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : b5f54dc24f6219426317c9d5cac3351de6b1a1bf
2003-10-25 21:19:54 -07:00
Steve Reinhardt
3ab5b35fbb Merge isabel.reinhardt.house:/z/stever/bk/m5
into isabel.reinhardt.house:/z/stever/bk2/m5

--HG--
extra : convert_revision : 84e69c15047423e683478dde1171a2c6348143fa
2003-10-25 21:19:14 -07:00
Steve Reinhardt
a08271f955 New rundiff script.
util/rundiff:
    Completely rewritten from scratch.  Can work standalone (with simple built-in
    diff algorithm) or use Algorithm::Diff package for better (but slower) diffs.

--HG--
extra : convert_revision : bb66d937e92bfd1904bd259589bacb5eff404c02
2003-10-25 20:49:08 -07:00
Nathan Binkert
d4343f91d5 Fix packet buffer management for receive packets
dev/etherlink.cc:
    DPRINTF before the packet is sent to the other interface to
    make the output a little more understandable

--HG--
extra : convert_revision : 9c7dd5dd6dbbbc416db70a52228e918af2e76d96
2003-10-25 18:23:19 -04:00
Nathan Binkert
ff7b6892bc Add the directory where the ini file was found into the #include
search path

--HG--
extra : convert_revision : 9a6bceb931613b718bf5a561b354ba9ccb847a78
2003-10-25 18:19:32 -04:00
Steve Reinhardt
2eec285391 Don't schedule tickEvent if it's already been scheduled.
--HG--
extra : convert_revision : 9cdfeb4df661b25fc000e35c1f34ee11cec6a668
2003-10-25 00:47:51 -07:00
Steve Reinhardt
9508bf0a87 Merge stever@zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : 921d26b6fe29870fa532394b388bc0fe6cac183e
2003-10-24 23:37:28 -07:00
Steve Reinhardt
2622601b83 Make util/find-files work from anywhere in the source tree (assuming you
name the root of your tree 'm5').

--HG--
extra : convert_revision : 1315c2864cbed941576d20e2fe895551992570a0
2003-10-24 23:22:35 -07:00
Steve Reinhardt
02d80c96b7 Move some common full-system CPU initialization from the
SimpleCPU & FullCPU constructors to AlphaISA::initCPU().

cpu/simple_cpu/simple_cpu.cc:
    Move some common full-system CPU initialization from the
    SimpleCPU & FullCPU constructors to AlphaISA::initCPU().
    Make 'fault' local to SimpleCPU::tick.
cpu/simple_cpu/simple_cpu.hh:
    Make 'fault' local to SimpleCPU::tick (not an object member).

--HG--
extra : convert_revision : e878dedfff06aac0548aca8b14d66c18b8916895
2003-10-24 23:20:27 -07:00
Steve Reinhardt
91cb532f9f Make FullCPU schedule its TickEvent when one of its contexts becomes active.
This fixes detailed-mpboot, which was broken as of my last change.
Also clean up some of the ExecContext status initialization.

cpu/base_cpu.hh:
    CPU::execCtxStatusChg() now takes thread_num as an arg so the CPU knows
    which execContext had the status change.
    BaseCPU::registerExecContexts() no longer needs to be virtual.
cpu/exec_context.cc:
    Initialize _status directly... don't use setStatus() as this will notify the CPU
    of the change before it is ready.
    CPU::execCtxStatusChg() now takes thread_num as an arg so the CPU knows
    which execContext had the status change.
cpu/exec_context.hh:
    Don't need initStatus() any more.
cpu/simple_cpu/simple_cpu.cc:
    Move execCtxStatusChg() from header to .cc file.
    No longer need specialized version of registerExecContexts to schedule TickEvent.
cpu/simple_cpu/simple_cpu.hh:
    Move execCtxStatusChg() from header to .cc file.
    CPU::execCtxStatusChg() now takes thread_num as arg (must be 0 for SimpleCPU).
    No longer need specialized version of registerExecContexts to schedule TickEvent.
kern/tru64/tru64_system.cc:
    Don't need initRegs; the PC etc. get initialized in the CPU constructor.
    ExecContexts start out as Unallocated, so no need to set them to Unallocated here.
kern/tru64/tru64_system.hh:
    Don't need initRegs; the PC etc. get initialized in the CPU constructor.
sim/prog.cc:
    ExecContexts start out as Unallocated, so no need to set them to Unallocated here.

--HG--
extra : convert_revision : e960ebbeb845960344633798e251b6c8bf1c0378
2003-10-24 23:02:36 -07:00
Andrew Schultz
47399b6c5e Added m5func "resetstats" to allow scriptable reset of statistics inside sim
--HG--
extra : convert_revision : 35a93fe085c2ca7ca1fc8bf887539e0b9c704aaf
2003-10-24 16:28:04 -04:00
Andrew Schultz
df3487c3aa Added new ini file for specwebssl
--HG--
extra : convert_revision : df7fa6244f9a5a0660c9b5b30974b8544d12edcd
2003-10-24 14:57:24 -04:00
Steve Reinhardt
cd6b6df581 A few minor fixes to sampling... seems to work now for the base case
of two CPUs and one switch-over event.  Still some stats glitches though.

cpu/simple_cpu/simple_cpu.cc:
    Schedule switched-to CPU right on curTick so we don't lose a cycle.
    Remember to switch out old CPU.

--HG--
extra : convert_revision : f1bf21cac054c74f59770d8b20b30118f46be6f1
2003-10-23 21:52:46 -07:00
Steve Reinhardt
cc9a838f4c Merge stever@zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : b0f93bd35d767fd3a520a9fed70a71d40b0056db
2003-10-23 19:09:18 -07:00
Steve Reinhardt
6e2fc8ce76 If things go really wrong, panic() instead of fatal() so gdb gets control.
--HG--
extra : convert_revision : 40fddc2da0bca98542db0e97fa91092497977d2b
2003-10-23 19:09:02 -07:00
Steve Reinhardt
f5da73b688 Initial support for CPU switching. New SamplingCPU object encompasses a set
of CPUs that get switched round-robin (though currently we're only shooting for
two CPUs and one switch event, and even that doesn't quite work yet).  Registration
of ExecContexts with System/Process object factored out so we can create two CPUs
but only register one of them at a time.  Also worked at making behavior and naming
in System and Process objects more consistent.

arch/alpha/ev5.cc:
    Rename ipr_init to initIPRs and get rid of unused mem arg.
arch/alpha/fake_syscall.cc:
    Process:numCpus is now a function (not a data member).
base/remote_gdb.hh:
    Support for ExecContext switching.
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
    Support for ExecContext switching.
    Renamed contexts array to execContexts to be consistent with Process.
    CPU ID now auto-assigned by system object.
cpu/simple_cpu/simple_cpu.cc:
    Support for ExecContext switching.
    Renamed contexts array to execContexts to be consistent with Process.
    CPU ID now auto-assigned by system object.
    Cleaned up MP full-system initialization a bit.
dev/alpha_console.cc:
    Renamed xcvec array to execContexts to be consistent with Process.
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
    Support for ExecContext switching.
    CPU ID now auto-assigned by system object.
sim/prog.cc:
sim/prog.hh:
    Support for ExecContext switching.
    Process:numCpus is now a function (not a data member).
sim/system.cc:
sim/system.hh:
    Support for ExecContext switching.
    Renamed xcvec array to execContexts to be consistent with Process.

--HG--
extra : convert_revision : 79649cffad5bf3e83de8df44236941907926d791
2003-10-23 19:07:52 -07:00
Steve Reinhardt
73b050a541 Minor stats fix.
base/statistics.cc:
    Small fix: don't exit early out of dist when nozero is set and a zero val is found.

--HG--
extra : convert_revision : 95ba3328c8a79f05f4c821d99071dba10f013ad6
2003-10-23 18:53:16 -07:00
Steve Reinhardt
21c7ee1e3e Print error message when we can't parse a .ini assignment line.
--HG--
extra : convert_revision : b7e19ff42ddd9a21571e086c11e143d9290e0e38
2003-10-23 18:51:12 -07:00