Commit graph

104 commits

Author SHA1 Message Date
Nathan Binkert
e2c62a13dd Fix byteswap on LP64 (amd64)
kern/linux/linux_system.cc:
    Formatting
sim/host.hh:
    When we say ULL and UL we really just want a 64-bit value, not
    necessarily a long long, so cast the integer to (u)int64_t
    this fixes a problem with byte swapping.

--HG--
extra : convert_revision : ad25ace5a7b92a7c928f2d52e531193c91f3f8c8
2004-07-02 16:40:23 -04:00
Nathan Binkert
6083c8280b implement the readfile pseudo instruction that will read
a realworld file.

arch/alpha/isa_desc:
arch/alpha/pseudo_inst.hh:
    implement the readfile pseudo instruction that will read a
    chunk of a realworld file.
arch/alpha/pseudo_inst.cc:
    implement the readfile pseudo instruction that will read a
    chunk of a realworld file.  The filename is a per system
    parameter and comes from the system itself.
kern/linux/linux_system.cc:
sim/system.hh:
    Create a per-system readfile parameter for use by the readfile
    pseudo instruction.  That way each system can get its own file.

--HG--
extra : convert_revision : 941b3a3e20702a6252b219ca66a6d90da2944c50
2004-07-01 18:03:05 -04:00
Nathan Binkert
838273a196 fix up the recordEvent stuff to support ignoring events
arch/alpha/ev5.cc:
cpu/simple_cpu/simple_cpu.cc:
    update for new event interface
base/stats/events.cc:
    implement the ignore event function which matches sim objects from which
    to ignore events.

    Make insert event like insert data and make it able to insert many
    events in a single transaction with the database.
base/stats/events.hh:
    Make it possible to ignore events
sim/sim_object.cc:
    make recordEvent a member function of SimObject to implement
    the ignore function easily
sim/sim_object.hh:
    implement the ignore event stuff in the sim object.  This is a
    bit of a hack, but an easy place to put it.

--HG--
extra : convert_revision : ba3f25a14ad03662c53fb35514860d69be8cd4f0
2004-06-28 16:49:35 -04:00
Nathan Binkert
19d5789db1 Don't serialize the absolute path so we can move checkpoints around.
sim/serialize.cc:
sim/serialize.hh:
    export the checkpoint directory

--HG--
extra : convert_revision : ba5b796fd930ab0487a502beefcf76bd6bb7c366
2004-06-28 15:54:05 -04:00
Ali Saidi
4deb819894 pull from head before pushing linux tree
--HG--
extra : convert_revision : 345f91c5c16c69db22035dc716e82fd77041380f
2004-06-22 13:48:49 -04:00
Steve Reinhardt
c1e58b6bf6 Handle SIGABRT a little more nicely.
base/misc.cc:
    Don't dump trace in panic(), SIGABRT handler will do it now.
sim/main.cc:
    Add SIGABRT handler that prints curTick and dumps buffered trace (if any).
    This doesn't work as well as I would like since the buffered trace records
    often contain stale references to stack-resident temporary std::string objects.
    Someday we'll have to put in a fix for that.

--HG--
extra : convert_revision : 67576efbf5c10e63e255fc9a9ec520326fd3567b
2004-06-21 22:42:16 -07:00
Ali Saidi
2f316082e4 Updated Copyright with information in bitkeeper changelogs
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
arch/alpha/aout_machdep.h:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
arch/alpha/vptr.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/bitfield.hh:
base/callback.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/compression/null_compression.hh:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/date.cc:
base/dbl_list.hh:
base/endian.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/hostinfo.cc:
base/hostinfo.hh:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/intmath.hh:
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:
base/loader/symtab.cc:
base/loader/symtab.hh:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/mysql.cc:
base/mysql.hh:
base/pollevent.cc:
base/pollevent.hh:
base/predictor.hh:
base/random.cc:
base/random.hh:
base/range.cc:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/res_list.hh:
base/sat_counter.cc:
base/sat_counter.hh:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/stats/events.cc:
base/stats/events.hh:
base/stats/flags.hh:
base/stats/mysql.cc:
base/stats/mysql.hh:
base/stats/mysql_run.hh:
base/stats/output.hh:
base/stats/statdb.cc:
base/stats/statdb.hh:
base/stats/text.cc:
base/stats/text.hh:
base/stats/types.hh:
base/stats/visit.cc:
base/stats/visit.hh:
base/str.cc:
base/str.hh:
base/time.cc:
base/time.hh:
base/trace.cc:
base/trace.hh:
base/userinfo.cc:
base/userinfo.hh:
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/exetrace.hh:
cpu/full_cpu/op_class.hh:
cpu/full_cpu/smt.hh:
cpu/inst_seq.hh:
cpu/intr_control.cc:
cpu/intr_control.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
cpu/static_inst.cc:
cpu/static_inst.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/baddev.cc:
dev/baddev.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/io_device.cc:
dev/io_device.hh:
dev/ns_gige.cc:
dev/ns_gige.hh:
dev/ns_gige_reg.h:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/pcireg.h:
dev/platform.cc:
dev/platform.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/tsunami_uart.hh:
dev/tsunamireg.h:
docs/stl.hh:
kern/linux/linux.hh:
kern/linux/linux_syscalls.cc:
kern/linux/linux_syscalls.hh:
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
kern/system_events.cc:
kern/system_events.hh:
kern/tru64/dump_mbuf.cc:
kern/tru64/dump_mbuf.hh:
kern/tru64/mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_events.cc:
kern/tru64/tru64_events.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
sim/async.hh:
sim/builder.cc:
sim/builder.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/host.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/process.cc:
sim/process.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/stat_control.cc:
sim/stat_control.hh:
sim/stats.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/initest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/sized_test.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
test/tracetest.cc:
util/m5/m5.c:
util/m5/m5op.h:
util/tap/tap.cc:
    Updated Copyright
dev/console.cc:
dev/console.hh:
    This code isn't ours, and shouldn't have our copyright

--HG--
extra : convert_revision : 598f2e5eab5d5d3de2c1e862b389086e3212f7c4
2004-06-08 13:37:27 -04:00
Andrew Schultz
ced021a78f Varied fixes to get linux running. Allow for shutdown on linux.
dev/ide_disk.cc:
    Fix to PIO writes and also add command needed for shutdown
dev/pcidev.cc:
    Change the panic on write to read-only registers to a debug print.  The
    kernel tries to write back over all of the PCI registers to restore
    the saved SRM state, so we need to let it do this without panicing.
sim/system.cc:
    Add back increment of number of running systems to allow trap of halt
    work correctly.

--HG--
extra : convert_revision : 84aba4effbec14545f3610c19a8e321d7e7f7cf2
2004-05-25 16:35:18 -04:00
Nathan Binkert
62d756f253 rename namespace Statistics to Stats
--HG--
extra : convert_revision : 28f1703f8d7d8cf33fb952ae450f66bdba860fb7
2004-05-21 13:39:20 -04:00
Nathan Binkert
b4405682d9 Change the namespace Statistics to Stats
--HG--
extra : convert_revision : 3084b292bbe2e8a392af8e99a31763ca0b0a9467
2004-05-21 13:03:17 -04:00
Lisa Hsu
a0ccdf8aba merge m5 with linux for the event and binning lifting
--HG--
extra : convert_revision : 09d3678746c2e9a93a9982dc75d5e1ac309cb2fa
2004-05-18 01:40:03 -04:00
Lisa Hsu
b8082eb508 lift system-independent binning stuff out of Tru64System into System.
kern/tru64/tru64_system.cc:
    make binned_fns a parameter for System in addition to Tru64System.  Do all the fnEvents setting at the System level, since that is system-independent.
kern/tru64/tru64_system.hh:
    deal with FnEvents in the System, and move some fns over to System.
sim/system.cc:
sim/system.hh:
    lift binning stuff into System out of Tru64System

--HG--
extra : convert_revision : 591dee6f2013f5c43037726c529a00682b5cf82e
2004-05-17 15:08:24 -04:00
Nathan Binkert
ce697a592e Avoid sending a signal to ourselves if we're not debugging
--HG--
extra : convert_revision : d6ba1ce30bad4a44d716238a8107c3bff0ce89c4
2004-05-13 06:59:05 -04:00
Nathan Binkert
a4d7bb113a Make a new stat type of Value which is a scalar stat that
proxies for a real C/C++ scalar value or scalar functor.
This replaces the scalar() and functor() terms that were
previously used in formulas.  This helps when dumping
statistics because the formulas are not supposed to change.

cpu/base_cpu.cc:
    Add a number of cycles stat to the cpu object that tracks the
    number of cycles that the cpu has executed.  This starts to pave
    the way for cpu cycles being different from event ticks.
cpu/base_cpu.hh:
    provide a functor for calculating all simulated instructions
    of all CPUs and a virtual function for determining that number.
    To deal with the change from functor() to Value::functor()
cpu/simple_cpu/simple_cpu.cc:
    simTicks -> numCycles
    numInsts is now a real Scalar stat, not a Formula
cpu/simple_cpu/simple_cpu.hh:
    numInsts is now a real Scalar stat, not a Formula
    count all instructions
sim/stat_control.cc:
    simInsts, simTicks, hostMemory, and hostSeconds are no
    longer Statistics::Formula but rather Statistics::Value
    add new stat for tick frequency
sim/stats.hh:
    don't need everything to be extern.
test/Makefile:
    Make stuff work a tad bit better
test/stattest.cc:
    test out Statistics::Value

--HG--
extra : convert_revision : c812e8baa2b17c08abf3a68ed1e1125dc6f2cfb4
2004-05-12 15:49:01 -04:00
Lisa Hsu
a5f90eba3b first pass at merging m5 with linux
--HG--
extra : convert_revision : dfe23349b80ae3b34d3cb95c5734e01ef62f700e
2004-05-11 01:15:18 -04:00
Nathan Binkert
25a358983a Major stats package cleanup
Add support for generic visitors for stats and use them
to implement independent output functions.

Support for mysql output and some initial code for hacking
on mysql output with python

arch/alpha/pseudo_inst.cc:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/sat_counter.cc:
base/sat_counter.hh:
cpu/simple_cpu/simple_cpu.cc:
kern/tru64/tru64_events.cc:
sim/main.cc:
sim/process.cc:
sim/process.hh:
sim/sim_events.cc:
sim/sim_object.cc:
sim/system.hh:
    update for changes in stats package
base/statistics.cc:
    move the python output code to base/stats/puthon.(cc|hh)
    and reimplement it as a visitor.

    move the text output code to base/stats/text.(cc|hh) and
    reimplement it as a visitor.

    move the database stuff into base/stats/statdb.(cc|hh) and
    get rid of the class.  Put everything as globals in the
    Statistics::Database namespace.

    allocate unique ids for all stats.

    directly implement the check routine and get rid of the
    various dumping routines since they're now in separate files.

    make sure that no two stats have the same name

    clean up some loops
base/statistics.hh:
    major changes to the statistics package again

    lots of code was factored out of statistics.hh into several
    separate files in base/stats/ (this will continue)

    There are now two Stat package types Result and Counter that
    are specified to allow the user to keep the counted type
    separate from the result type.  They are currently both doubles
    but that's an experiment.  There is no more per stat ability to
    set the type.  Statistics::Counter is not the same as Counter!

    Implement a visitor for statistics output so that new output
    types can be implemented independently from the stats package
    itself.

    Add a unique id to each stat so that it can be used to keep
    track of stats more simply.  This number can also be used in
    debugging problems with stats.

    Tweak the bucket size stuff a bit to make it work better.

    fixed VectorDist size bug
cpu/memtest/memtest.cc:
    Fix up for changes in stats package
    Don't use value() since it doesn't work with binning.  If you
    want a number as a stat, and to use it in the program itself,
    you really want two separate variables, one that's a stat,
    and one that's not.
cpu/memtest/memtest.hh:
    Fix up for changes in stats package
test/Makefile:
    Try to build stuff now that directories matter
test/stattest.cc:
    test all new output types
    choose which one with command line options

--HG--
extra : convert_revision : e3a3f5f0828c67c0e2de415d936ad240adaddc89
2004-05-04 17:01:00 -04:00
Steve Reinhardt
0ef91aa905 Changes to config to allow everything (including 'children'
and 'type') to be specified via instance name and not just
config class.  Old code only did instance-name lookup for
SimObject parameters.  This feature makes life easier for
transitioning to the Python script-based config.

sim/builder.cc:
    Use ConfigNode::find to look for "type" parameter so it can
    be found if set under instance name (not config class).
sim/param.cc:
    Make Param<bool> accept "1" for true and "0" for false.

--HG--
extra : convert_revision : f40d0878d0f03b2e216f0506c05d0e52db608cca
2004-04-05 11:00:48 -07:00
Steve Reinhardt
782fb42992 Basic cleanup pass to get rid of a few things that made the Python
configuration unnecessarily awkward.  Biggest changes are:

- External and internal object names now match in all cases.  The
macros still allow them to be different; the only reason I didn't
get rid of that is that the macros themselves should be going away
soon.  In the few conflicting cases, I sometimes renamed the C++ object
and sometimes renamed the config object.  The latter sets of substitions
are:

s/BaseBus/Bus/;
s/MemoryObject/FunctionalMemory/;
s/MemoryControl/MemoryController/;
s/FUPool/FuncUnitPool/;

- SamplingCPU is temporarily broken... we need to change the model
of how this works in the .ini file.  Having it as a CPU proxy is
really awkward.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/process.cc:
    Rename objects to match config name.
cpu/base_cpu.cc:
    Uncomment SimObject define since SamplingCPU no longer
    does this for us.
dev/ethertap.cc:
    Use unsigned instead of uint16_t for params.
kern/tru64/tru64_system.cc:
    Use unsigned instead of uint64_t for init_param param.
test/paramtest.cc:
    Fix old SimObjectParam.

--HG--
extra : convert_revision : 378ebbc6a71ad0694501d09979a44d111a59e8dc
2004-04-02 22:57:08 -08:00
Nathan Binkert
13483c98be Get rid of the printExtraOutput stuff
--HG--
extra : convert_revision : d82718ad4b3c5dd56a99c727e78b39917f9d4541
2004-03-26 05:43:29 -05:00
Steve Reinhardt
aeb8e8ccb7 Minor cleanup from building & diffing behavior
on various platforms.

base/hashmap.hh:
    gcc on Alpha doesn't always define __LP64__,
    even though it arguably should.
cpu/exec_context.cc:
    Clear register file on non-full-system too (even though
    it typically gets overwritten by the initial regs from
    the Process object).
sim/process.cc:
    Clear initial register copy in Process object.
    Not all regs get initialized when the executable is loaded.

--HG--
extra : convert_revision : f1fe4734a5ea81331d70994cb5284b1e9db0dceb
2004-03-24 23:29:10 -08:00
Ron Dreslinski
b4ff8c555f Make it so that alpha_console can read the frequency from the correct
sim object(depends on which platform tsunami/tlaser is being used)

dev/alpha_console.cc:
    Use dynamice casting once during build to get at the proper device to calculate the frequency.
    It is either a tsunami_IO or a tlaser_clock depending on platform (tsunami/tlaser).
    If the simobject is not of either of those types then panic
dev/alpha_console.hh:
    Pass in a SimObject * that is to either a tlaser_clock or a tsunami_IO
sim/sim_object.cc:
    Make it so that you can have a SimObjectParam of type SimObject:

    example:
    SimObjectParam<SimObject *> so;

--HG--
extra : convert_revision : 08239ef23762b8ea11311630b73fe885d939402e
2004-03-19 14:51:02 -05:00
Lisa Hsu
3bc8cffc75 merge with m5 head
--HG--
extra : convert_revision : c90339248d1ee74df1c6b90a77ec9ea41f646311
2004-03-11 18:52:29 -05:00
Lisa Hsu
34576de15a changes that affect post checkpoint runs.
cpu/exec_context.cc:
    you can't delete an element of an array that you newed.  oops.
kern/tru64/tru64_events.cc:
    changes to reflect .ini changes, and also b/c es_intr and ipintr can happen at ANY point, even within a current calling path being tracked.
sim/system.cc:
    can't delete an element of a newed array.  must new them separately.

--HG--
extra : convert_revision : 21573327b7b7f20bf9a3fcfb5854526433e17e17
2004-03-05 08:16:33 -05:00
Lisa Hsu
12662c0b6d nother fix
cpu/exec_context.cc:
    nother little bug...forgot to pop off stack as i read off it
sim/system.cc:
    forgot to pop off stack as i read off it

--HG--
extra : convert_revision : d1f691c0a9f0fa22281c717ee465d8a5f1e45c13
2004-03-05 06:14:33 -05:00
Lisa Hsu
8434ae9b03 Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/work/bk/bincleanup
--HG--
extra : convert_revision : e4303df381e5f397d15c37eb05377be1860f89be
2004-03-05 05:54:54 -05:00
Lisa Hsu
9c48327145 forgot to check this in
--HG--
extra : convert_revision : 3090da3ab1077736bae52519143b44b08dd5ddb9
2004-03-05 05:54:46 -05:00
Nathan Binkert
01f493a28a Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : 51b3fd809a77e146b8370636b2cc60ddf1075195
2004-03-05 05:50:33 -05:00
Nathan Binkert
ec6265b044 constructor option to make the wrapped event autodelete
--HG--
extra : convert_revision : 8663c874c533685adf21eea968b08b40b7d7b665
2004-03-05 05:45:45 -05:00
Nathan Binkert
4992680ea2 add ticks per picosecond
--HG--
extra : convert_revision : 1585e7f89340b941e699db6b81080af58500a7c2
2004-03-05 05:44:11 -05:00
Lisa Hsu
1a300ef60d small bugfix, forgot to increment iter
sim/system.cc:
    oops, forgot to increment iter.

--HG--
extra : convert_revision : 95fcd337d00157ccf072f0eb301b76f280480839
2004-03-05 05:38:04 -05:00
Lisa Hsu
4fa703f2ec serialization for binning. it is WAAAAAAAY past my bedtime.
cpu/exec_context.cc:
sim/system.cc:
sim/system.hh:
    serialization for binning

--HG--
extra : convert_revision : f8417794a3a5ec7f2addc9c2da0f48e851899112
2004-03-05 05:09:05 -05:00
Lisa Hsu
f3861d0cc7 Overall gist of this is to 'dynamicize' the tracking of functions so you can choose them at the .ini stage rather than at compile time.
to do it:
in .ini file set binned_fns=foo null bar foo

what this says is, track foo when it is called by null (i.e. anything).  bin bar only when it is called by foo.
essentially, if you have a path of functions to track, the 0th, 2nd, 4th fn listed are the fns to track, and the 1st, 3rd, 5th are their respective callers.

base/statistics.hh:
    turn it back to FS_MEASURE since we already have a build in place
kern/tru64/tru64_events.cc:
    remove FS_MEASURE #defs.  add more DPRINTF's.  manage an anomaly that happens when tracking idle_thread.
kern/tru64/tru64_events.hh:
    remove FS_MEASURE #defs
kern/tru64/tru64_system.cc:
    make DumpState print all the time, but only with DPRINTF.  add a new parameter to tru64System a vector<string> binned_fns, to read in from .ini file.  now all this binning stuff is dynamically generated.
kern/tru64/tru64_system.hh:
    remove all static binning stuff, add support for dynamic
sim/system.cc:
    change nonPath bin name to Kernel, remove FS_MEASURE
sim/system.hh:
    change nonPath to Kernel

--HG--
extra : convert_revision : 9ee813c0a64273bab4125815b7bc8145c5897ec1
2004-03-04 21:57:09 -05:00
Nathan Binkert
ee96799519 Initial cleanup pass of lisa's function call tracking
code.

base/statistics.hh:
    We're getting rid of FS_MEASURE, but for now, we're going
    to still use a compile time flag to turn on and off binning
    of statistics.  (The flag is STATS_BINNING)
cpu/exec_context.cc:
cpu/exec_context.hh:
kern/tru64/tru64_system.cc:
    get rid of FS_MEASURE
cpu/simple_cpu/simple_cpu.cc:
    yank the function call tracking code out of the cpu and move
    it into the software context class itself.
kern/tru64/tru64_system.hh:
    get rid of FS_MEASURE
    move all of the tacking stuff to the same place.
sim/system.hh:
    cleanup

--HG--
extra : convert_revision : 73d3843afe1b3ba0d5445421c39c1148d3f4e7c0
2004-02-29 20:22:32 -05:00
Nathan Binkert
31f82cef41 Make the progress event work even after restoring from a checkpoint
--HG--
extra : convert_revision : 80e31eb26250700ebe3ce5848e570068cc76ef47
2004-02-29 18:49:44 -05:00
Nathan Binkert
e067bc751b Change order of serialization
sim/sim_object.cc:
    serialize objects in the reverse order of their creation.
    This causes a SimObject that is dependent on another
    to be serialized first.  For example, the ethernet device
    writes back some data to physical memory while serializing,
    so this will cause the physical memory to be serialized
    after that, preserving the data written back.

--HG--
extra : convert_revision : f9a37b63ce777df1cfecefa80f94f8fc69e42448
2004-02-21 10:46:31 -05:00
Nathan Binkert
a1259a4fcf Add a simple event wrapper class that takes a class pointer
and member function and will schedule it for the future.

--HG--
extra : convert_revision : f5c5a8df0839e1e10716850c2086862c4a5bc499
2004-02-20 15:24:21 -05:00
Andrew Schultz
6391bfac54 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/z/alschult/linux

--HG--
extra : convert_revision : 2ea2bbd41f7e0c257b374d9cd0e37abaf6a7c170
2004-02-13 16:42:42 -05:00
Steve Reinhardt
d38f995aee Fixes for Linux syscall emulation.
arch/alpha/alpha_linux_process.cc:
    Fixes for Linux emulation:
    - stat struct alignment
    - osf_{get,set}sysinfo return values
    - additional syscall numbers
    - initialize $r0 to 0
sim/syscall_emul.cc:
    brk(0) just returns brk value (don't update it!)

--HG--
extra : convert_revision : 78e22458321c81e81540d101c9e65e2e4b0ad117
2004-02-10 21:43:57 -08:00
Andrew Schultz
eac2d6a668 Merge linux tree with head
arch/alpha/alpha_memory.cc:
dev/alpha_console.cc:
dev/alpha_console.hh:
    Merge

--HG--
extra : convert_revision : 3233648f204338ab3f102ff117754dce955dcc37
2004-02-09 17:50:47 -05:00
Steve Reinhardt
730296f7f9 Results of automatic (yet incomplete) merge.
--HG--
extra : convert_revision : 3ad9a929051bfe111a1e10618c8595acbbade542
2004-02-09 00:30:16 -08:00
Nathan Binkert
22f78a6d03 Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/kernel

--HG--
extra : convert_revision : fa0e28dc72b54add9e534f8f689b0f6dd8e7731c
2004-02-06 19:00:12 -05:00
Andrew Schultz
c76675be58 Now skips the calibrate_delay loop in the kernel boot
dev/tsunami.cc:
    Changed so Tsunami has a pointer to the System to which it belongs.
    Now it is derived from generic base class Platform so platform stuff
    can be accessed based on the system
dev/tsunami_io.cc:
dev/tsunami_io.hh:
    Cleanup and added copyright
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    Added event to skip the "calibrate_delay" function, now calculate
    loops_per_jiffy based on frequency, interrupt frequency, and constant
sim/system.hh:
    Added pointer to generic Platform base class

--HG--
extra : convert_revision : 5bd925eec220a2ca48eb6164d2ecfdec96922c2c
2004-02-05 18:23:16 -05:00
David Oehmke
95c248c213 Modify the emulated system calls to support running the SPEC Int
benchmarks for alpha-linux.

arch/alpha/alpha_linux_process.cc:
    Added some more ioctl commands to ignore.
    Set unlink and rename to the new functions.
    Ignore setrlimit, times and rt_sigaction.
    Should eventually provide a function for times.
arch/alpha/alpha_tru64_process.cc:
    Added some more ioctl commands to ignore.
    Set unlink and rename to the new functions.
    Ignore setrlimit.
sim/syscall_emul.cc:
    Added implementations for unlink and rename.
sim/syscall_emul.hh:
    Added unlink and rename functions.
    Added a couple more ioctl requests to ignore.
    Print out the PC of any ioctl commands that fail.

--HG--
extra : convert_revision : 8af21c7fa7d0645d3f9324c9ce70ad33590c3c8e
2004-02-05 12:16:17 -05:00
Steve Reinhardt
b6ff600bca Add support for "serializing" instructions that flush
execution pipeline (Alpha trapb & excb).

Add support for write memory barriers (mostly impacts
store buffer).

Add StaticInst flag to indicate memory barriers, though
this is not modeled in the pipeline yet.

arch/alpha/isa_desc:
    Implement trapb, excb, mb, and wmb as insts with
    no execution effect (empty execute() function) but
    with flags that indicate their side effects.

    Also make sure every instruction that needs to go to
    the execute stage has a real opClass value, since we
    are now using No_OpClass to signal insts that can get
    dropped at dispatch.

    StaticInst::branchTarget() is now a const method.
cpu/static_inst.hh:
    Add flags to indicate serializing insts (trapb, excb) and
    memory and write barriers.

    Also declare some StaticInst methods as const methods.
dev/etherlink.hh:
sim/eventq.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.hh:
    Make name() return value const.

--HG--
extra : convert_revision : 39520e71469fa20e0a7446b2e06b494eec17a02c
2004-02-04 21:42:00 -08:00
Steve Reinhardt
98948b2e57 More reformatting of reference parameter declarations.
The last change only caught the ones with types that
started with capitals.  This pass catches the rest
(mostly STL and uint*_t types).

base/cprintf_formats.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/serialize.cc:
sim/serialize.hh:
    Change "foo_t& foo" to "foo_t &foo".

--HG--
extra : convert_revision : fc7f7425db2aef33e490f952b5ce74c8c36d0d41
2004-02-04 11:16:30 -08:00
Steve Reinhardt
548b4a1cb0 Change "Foo& foo" declarations to "Foo &foo".
This primarily to be internally consistent (sometimes we used one,
sometimes the other, even within the same line of code!).
I picked the latter to be symmetric with "Foo *foo".

base/cprintf_formats.hh:
base/range.hh:
base/refcnt.hh:
base/res_list.hh:
base/statistics.hh:
base/str.hh:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/syscall_emul.hh:
    Change "Foo& foo" declarations to "Foo &foo".

--HG--
extra : convert_revision : ca1b0e85a578b539214bda3b8d61ac23792f2e87
2004-02-02 15:55:35 -08:00
Nathan Binkert
639037d127 remove #include of nonexistent file
sim/universe.cc:
    oops.  this doesn't exist

--HG--
extra : convert_revision : 2cfb3680e4ebe3f27f22a79f853d4d6df445e65a
2004-01-29 10:32:01 -05:00
Nathan Binkert
2db1b6ea1b provide an output stream for simulator output. (This takes place of the
statStream catchall that we had before)
Also provide an optional output directory that multiple simulator output
files can be written to.
Make most output files use the output directory

base/misc.cc:
    send warnings to the outputStream as well
base/trace.cc:
    dprintf_stream defaults to cerr
dev/console.cc:
    use the output directory for the console output if it exists
dev/etherdump.cc:
    dump to the output directory if it exists
sim/builder.cc:
sim/builder.hh:
    move constructor and destructor to .cc file
    use a function to get the stream that the builder dumps its
    output to, and create a separate file in the output directory
    if able
sim/main.cc:
    statStream -> outputStream
sim/serialize.cc:
    dump checkpoints to the output directory if specified
sim/universe.cc:
    provide an output stream for simulator output.  (This takes place of the
    statStream catchall that we had before)
    Also provide an optional output directory that multiple simulator output
    files can be written to.

--HG--
extra : convert_revision : 03abce20edbbf7ec19c9ddd8d69ec8485c383532
2004-01-29 00:38:18 -05:00
Nathan Binkert
801c46d250 a bunch of warning fixes
arch/alpha/isa_desc:
    don't say warn: Warning:
base/misc.cc:
    avoid printing two newlines in a row
sim/main.cc:
    print out a message just before we enter the event queue

--HG--
extra : convert_revision : 2a824d4b67661903fc739a0fb0759aa91d72382c
2004-01-27 17:56:23 -05:00
Nathan Binkert
5d7224cc92 Setup initialization callbacks
--HG--
extra : convert_revision : ec56a839a0489c5494bfcd9ead0fc3866f1e8ac2
2004-01-14 02:00:20 -05:00