base/time.cc:
base/time.hh:
Don't set the current time in the constructor. Use a flag and
make the default to not set the time.
Change reset() to set(). Dunno. Just seems right.
--HG--
extra : convert_revision : 5a3b09ed30376d4863b45b2bae551ba1c3aff8e1
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
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
(very painful) bus reset from occuring
base/loader/elf_object.cc:
Fixed to allow proper loading of local symbols
--HG--
extra : convert_revision : 5c9a1f4d7b5748a1c8cabdfd67763c21f988f8fd
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
Fix to remote debugger while in PAL code
dev/pcidev.cc:
Remove extra debug printf
--HG--
extra : convert_revision : e64988846ad05cd3ddf47034d72d99dae3501591
- Make the MemoryController use address ranges (via Range) instead
of an address and a mask
base/remote_gdb.cc:
reflect name change
dev/alpha_access.h:
better include
dev/alpha_console.cc:
- FunctionalMemory no longer takes care of mapping my address into
the proper address space. It must be done locally.
- the memory controller no longer uses a mask, but a size, and the
size is determined by the device, not the .ini file
- fix up address calculations to reflect the removal of a mask
- PhysicalMemory::getSize() -> PhysicalMemory::size()
dev/alpha_console.hh:
- FunctionalMemory no longer takes care of mapping my address into
the proper address space. It must be done locally.
- the memory controller no longer uses a mask, but a size, and the
size is determined by the device, not the .ini file
- fix up address calculations to reflect the removal of a mask
- get rid of MmapDevice and inherit from FunctionalMemory
--HG--
extra : convert_revision : e3a65c9debf6f899632d62c70781cbdc2826616b
base/range.hh:
Add a constructor that takes the beginning and end as arguments
size returns T not a bool
quick make_range() function that is a shortcut for making a range
kinda like make_pair()
quick formatting fix
--HG--
extra : convert_revision : 94b1d462710e6fb55e72e1da2ad8c46993af1ef7
to be consistent with the way that the stl works. It also makes
lots of other stuff easier. (Maybe those guys were smart?)
Overload the various comparison operators so that you can test
for overlapping of ranges, etc.
base/range.hh:
Totally rework the Range class. Now the range is from [start, end)
to be consistent with the way that the stl works. It also makes
lots of other stuff easier. (Maybe those guys were smart?)
Overload the various comparison operators so that you can test
for overlapping of ranges, etc.
make parse function private and offer operator= instead
isValid -> valid
and for you erik, I add comments
test/Makefile:
add range.o
test/rangetest.cc:
better tests
--HG--
extra : convert_revision : dd58720aa3d02f20b03e933f2eaa3320c82bb27a
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
base/kgdb.h:
Remove flags that aren't used
base/remote_gdb.cc:
Better debugging:
- Give each class a name() function so that the trace infrastructure
knows the correct object name.
- Make the remote debugger capable of detach.
- Split out the RGDB trace flag into a bunch of specific flags.
Remove dead code
Add a new trap type
base/remote_gdb.hh:
Add a name() to the various objects for the trace system
base/trace.hh:
don't need a using directive
add DPRINTFNR: debug printf, no flag, raw output
kern/tru64/tru64_system.cc:
use the INT trap type instead of IF
--HG--
extra : convert_revision : 25e610216c6f43d5d328651bba915f71bade059e
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
not while printing out the data. This allows the data
to be dumped more than once.
base/cprintf.hh:
need a destructor
--HG--
extra : convert_revision : 235e9fe24488ac4c0ae1b562ef9fa6e0bd1e899c
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
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
but did not test... however the only thing this
affects in libelf is the header, so I don't expect
any functional problems.
base/loader/elf_object.cc:
Set LIBELF_LINUX to 0 to build on zax.
--HG--
extra : convert_revision : d024b33deff6fc8ea6f1d465f76dc8d9d63254ab
to find and remove stats from the files so we can put less
burden on the python interpreter.
base/statistics.cc:
Manually insert newlines into the python code so that we now have one
stat per line. (Make it so we can use grep -v to remove stats)
test/stattest.cc:
update to reflect changes in how python is accessed
--HG--
extra : convert_revision : 554edcf9c795b33d00d3d15554447c8accebebfa
base/loader/elf_object.cc:
- Use program header instead of section headers for loading.
The old code doesn't work for Alpha/Linux user binaries.
- Deal properly with single-segment ELF executables (e.g. kernels)...
haven't tested this but it looks like it matches the functionality
of the patch the L4::Pistachio guys sent.
- Factor load symbol code into one common function.
- Some formatting to match style conventions.
- Only include libelf stuff in .cc file, not .hh.
base/loader/elf_object.hh:
- Use program header instead of section headers for loading.
The old code doesn't work for Alpha/Linux user binaries.
- Factor load symbol code into one common function.
- Only include libelf stuff in .cc file, not .hh.
--HG--
extra : convert_revision : 782062d09d43083b01e65cd645c941f49c27640a
use /m5/system/linux for their binaries
base/loader/elf_object.cc:
Elf loader now conforms to coding style
--HG--
extra : convert_revision : 558e587e969535f31987f2810ee17ec72006de0a
when we are compiling the console.
base/loader/elf_object.cc:
added code to verify that the .bss section is 0;
added code to only load function and label types
dev/alpha_access.h:
include inittypes if we are compiling the console code
--HG--
extra : convert_revision : b88fb36500b1c1003d44ed95cefdd2a30b7466b8
base/cprintf.cc:
Fix bug where a call with a format string with no specifiers
but one or more arguments would crash. Old code tried to print
extra args using last available format, but in this case there
was no format, hence the problem. Now we just print "<extra arg>"
for each extra arg.
Also reorganized code a bit to make scope of fmt variable
match the scope in which you can be confident it's meaningful.
base/cprintf.hh:
Print specific error message instead of calling format_invalid().
base/cprintf_formats.hh:
Clear Format object in constructor.
Use specific error messages instead of format_invalid() function.
--HG--
extra : convert_revision : 87d5e902174e3eb2583131d056742af166540db0
machine.
base/loader/elf_object.hh:
put #defines for libelf that normally arn't defined so that -Wundef
doesn't cause problems.
--HG--
extra : convert_revision : fa2de6aa94c7ddbaa59990db4473402b0df7d93a
and setup filed had to be modified to build libelf. The ext repository
MUST exist in the directory below m5!
base/loader/elf_object.cc:
base/loader/elf_object.hh:
now uses libelf to read elf binaries
--HG--
extra : convert_revision : b70511f5379edf35d639f3bb64b786cb0bd180af
fix some bugs
base/statistics.cc:
- Move the python dump stream stuff into the statistics package
because it needs more control over the file when there
are multiple dumps
- add a subname to the output
- make all of the stats a list instead of variable arguments to
get around the 255 argument limit
- the description needs to be triple quoted
- avoid errors for formulas that don't have any root element
set up.
base/statistics.hh:
- get rid of mode_python and just separate python dumping from
regular stats dumping
- fix a huge bug that made a Formula use a VectorData instead
of a FormulaData
--HG--
extra : convert_revision : 7303cff3ccdcc3d306ab17375219fc7fecac7e5e
base/statistics.cc:
base/statistics.hh:
- add python output support to the statistics package
- each statistic type has a python() member function that takes
a Python object to which the stat will output it's python
representation
- add getStatData hack so that the StatData pointer can be looked
up by the proxies with their opaque pointer to the stat they're
proxying for. This is necessary because the proxy really proxies
for the bin and not the stat. Be nice to figure out how to get
rid of it. The hack is used so that the str() function of a
proxy can properly name itself.
- To print formula stats, every stat has a str() function that
converts that stat to a string that python can execute to get
a value.
test/Makefile:
add python stuff
test/stattest.cc:
add more tests and test python support
--HG--
extra : convert_revision : 513814ab0a125606897f2c57dccdf22879032ef9
python dumping takes a name for the output data
base/statistics.cc:
base/statistics.hh:
initial basic hooks into the stats package to output python code
--HG--
extra : convert_revision : 37f52dc03df50aa90346dc9ca341f961e7e855e8
base/statistics.hh:
- use a typedef to get at bin_t
- clean up template declaration
- public access to typedefs
--HG--
extra : convert_revision : 0650c5a1cba51c7af04790498af0d354884be0ee
base/statistics.cc:
- give an internal name to statistics that aren't printable
- speed up reset a tad
- Make sure that the original value of the current bin is restored properly
- check for the case where there are no subnames so we don't have an error
- check to make sure that the formula's root is set before accessing it
base/statistics.hh:
- clean up includes a bit
- deal with the case where there are no subnames
- get rid of remnants of FS_MEASURE stuff
--HG--
extra : convert_revision : 1e4338fc2b225647df47641b04c13b7046b2e114
- make init and print StatFlags
- default_mode -> DefaultMode
- the display mode is no longer needed as part of the stat
pass it into the display functions so the mode can be determined
from dump to dump
- get rid of old simplescalar bug and make the distribution min_val
work correctly
- get rid of the DisplayMode parameter to distribution updates since
it is no longer needed
--HG--
extra : convert_revision : 386f69f4d12fb91faf60690aaab08542e009e555
- Factor out the formatted output into a display function
- Make the stats package support tracing
- Clean up output of binned data
base/statistics.cc:
- Factor out the formatted output into a display function and
pass in the mode
- Make the stats package support tracing
- Clean up output of binned data
- Get rid of the list of binned stats and the map of bins
since it is no longer needed for output
base/statistics.hh:
- Allow the stats package user to determine in which mode to dump
--HG--
extra : convert_revision : a1d5fc728f4dc22a851d58ea89d44018a94a64c7
checking in places to make sure stuff is behaving properly.
base/statistics.cc:
separate the per stat check from the general stats check.
We always want the general stuff to happen
base/statistics.hh:
- separate the per stat check from the general stats check.
we always want the general stuff to happen
- make every stat check that its bin is at least initialized
- set the vector2d x and y coordinates in init to prevent an
uninitialized memory access
test/Makefile:
don't need sim_time.o to test stats
test/stattest.cc:
don't make x and y the same on the 2d test so that we make
sure that the two dimensions are correct
--HG--
extra : convert_revision : 81320325056ac1c09f6842474fb6ee3bcc030a8e
base/cprintf.cc:
Get rid of unnecessary stream state check.
Bug is fixed now, and I'm not sure this did much anyway.
cpu/exetrace.cc:
Get rid of unnecessary flush() call.
--HG--
extra : convert_revision : 107dcdc578b2b0ad1652ee52ea0a33b0f3cd4e39
arch/alpha/alpha_tru64_process.cc:
So, I don't know why linux uses an off_t here.
I'm also not sure why linux defines an off_t to be a long
Let's just use long here since it works for linux, and that's
what bsd does
base/inifile.cc:
correct #include for OpenBSD
dev/disk_image.cc:
the correct type for this is streampos
--HG--
extra : convert_revision : f3ac3a3b8515d66e07ffb9780d8a9e387297b6a0
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
base/statistics.hh:
Make a couple of typedefs public rather than protected.
g++ 3.3 complains otherwise.
--HG--
extra : convert_revision : 6a8e4edb0c39474c0e0c7bc474ad0f22b9fb8505
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
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
- 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
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
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
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
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
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
Only reactivate the original bin if it actually exists.
base/statistics.cc:
Only reactivate the original bin if it actually exists.
--HG--
extra : convert_revision : e71ba0680d79ca439487a31d8f365429bff8c375
of a printed statistics line.
base/statistics.cc:
Add spaces between printed elements
--HG--
extra : convert_revision : edcc9460fa178c39f7e3c15b3bad866ef9b263e4
base/statistics.hh:
Try to make binning of Average statistics work a little better.
This solution is far from perfect though since we really need
to call set(p.current, p) when the binning takes place.
To fix the binning, we need to have the current value non-binned,
to do that, we make make the current value part of the Params struct.
This means that we can't pass around const Params structs
Maybe we need a binswap callback :/
--HG--
extra : convert_revision : c2892387dbabe011bdcd6f0d99005c1c50653720
base/statistics.cc:
formatting
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
Make numInsts reset by adding a resetStats function
sim/sim_object.cc:
Register the reset callback in a slightly cleaner way to avoid
potential static member constructor ordering issues
--HG--
extra : convert_revision : 408073b4b0397fbf9dfd9c548a313f1c8c3fc031
minor gratuitous cleanup in printAllExtraOutput.
(only create one end iterator)
Fix average stats reset
base/statistics.hh:
Shouldn't reset average stats this way. The current stat value
should stay the same.
sim/sim_object.cc:
Ok, actually call resetStats on all stats
minor gratuitous cleanup in printAllExtraOutput.
(only create one end iterator)
--HG--
extra : convert_revision : 13090ebe490a93757b8eb7d7c6a9697983095e41
make SIGUSR2 dump and reset stats
Make resetting time work
base/statistics.cc:
Fix statistics reset so that it works again, and correctly
reset bins as well. (The old code wouldn't reset if you didn't
have any bins, and then would actually only reset the first
bin)
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
convert idleCycles/idleFraction into a single Average stat
to make reset work more simply
sim/main.cc:
handle SIGUSR2 to dump and reset stats
(SIGUSR1 only dumps them)
sim/sim_time.cc:
sim/sim_time.hh:
Add support for resetting the time
--HG--
extra : convert_revision : ea43e03c50c0a4bb826dc0842a8c4fa1a9289e0a
statistics.hh:
same
statistics.cc:
Hack to enable perl totaling.
make FancyDisplay print a total parameter to enable totaling standard deviations for bins after a run is over with perl. currently a total hack.
base/statistics.cc:
Hack to enable perl totaling.
make FancyDisplay print a total parameter to enable totaling standard deviations for bins after a run is over with perl. currently a total hack.
base/statistics.hh:
same
--HG--
extra : convert_revision : c4087a138543e66acee4e395617ce7fd7e458a39
what the console output is.
base/circlebuf.hh:
base/circlebuf.cc:
add stuff to spit to an ostream
prepend _ in front of protected member variables
formatting
dev/console.hh:
dev/console.cc:
Add DPRINTF to spit out the lines of console data
dev/console.cc:
little hack to append name() to the file so that we can
easily get multiple output files.
dev/console.hh:
TRACING_ON == 1 not defined(TRACING_ON)
--HG--
extra : convert_revision : bbe80715fb97ee4c4ed6b484955ef71289f09fc9
on Database::reset(), reset all stats in every bin, not just current one.
base/statistics.cc:
on Database::reset(), reset all stats in every bin, not just current one.
--HG--
extra : convert_revision : 0f3443b36ee00952810818a035c99267da8871d9
command line:
m5.* <config file> <args> --server.system:bin=true to track function calls in the server
m5.* <config file> <args> --client.system:bin=true to track function calls in the client
base/statistics.cc:
make an adjustment to the way stats are printed for FS_MEASURE
base/statistics.hh:
add a name() virtual function to GenBin. add a debug printf for activate().
add amake MainBin the default bin when FS_MEASURE.
cpu/exec_context.cc:
initialize swCtx to null upon creation of an xc
cpu/exec_context.hh:
add a SWContext pointer to every execution context.
cpu/simple_cpu/simple_cpu.cc:
process calls and returns for FS_MEASURE
cpu/simple_cpu/simple_cpu.hh:
add this so idleCycles will not be accessed before all stats are constructed
kern/tru64/tru64_events.cc:
add a FnEvent that fires whenever a function we're tracking is called. implement the process() virtual function for it.
kern/tru64/tru64_events.hh:
add FnEvent
kern/tru64/tru64_system.cc:
send bin parameter to System constructor. add bin parameter to Tru64System object. initialize all the FnEvent and MainBin members of Tru64system. also, populate the calling map that indicates whether a function call is on the path we're tracking.
kern/tru64/tru64_system.hh:
modify the Tru64System class to support FS_MEASURE
sim/system.cc:
add a bin parameter to System class. initialize a MainBin to hold the stats for nonPath.
sim/system.hh:
add a map of to match bins to function names. add a swCtx map to map pcb addresses to SWContext *s. Add some supporting functions.
--HG--
extra : convert_revision : af3eadd798cb2d2aed9b54e1059dcedf244dd526
object in the config that was not in the checkpointed config.
This code compiles, but I haven't tested it... I'm committing it so Ron
can have it. Should not effect anything that currently works.
base/inifile.cc:
base/inifile.hh:
Add sectionExists() method so you can query whether a section exists
without knowing any of the entry names that would be in it.
sim/serialize.cc:
sim/serialize.hh:
Add Checkpoint::sectionExists() (pass through to IniFile).
--HG--
extra : convert_revision : 905db122afdfe55946ab8493ccac0b1e715bc7c6
resetstats
dumpstats
dumpresetstats
m5checkpoint
Lots of cleanup of serialization and stats dumping/resetting to
work with these new instructions
arch/alpha/isa_desc:
Implement more m5 pseduo opcodes:
resetstats
dumpstats
dumpresetstats
m5checkpoint
All of these functions take two optional parameters, the first is a delay,
and the second is a period. The delay tells the simulator to wait the
specified number of nanoseconds before triggering the event, the period
tells the simulator to repeat the event with a specified frequency
base/statistics.cc:
base/statistics.hh:
regReset RegResetCallback
dev/disk_image.cc:
serializeFilename -> CheckpointFile()
sim/debug.cc:
Move this debugging statement to sim_stats.cc
sim/eventq.cc:
Don't AutoDelete an event if it is scheduled since the process()
function could potentially schedule the event again.
sim/main.cc:
DumpStatsEvent is now Statistics::SetupEvent(Dump, curTick)
sim/serialize.cc:
Change the serialize event so that it's possible to cause the
event to repeat. Also make the priority such that the event
happens just before the simulator would exit if both events
were scheduled for the same cycle.
get rid of the serializeFilename variable and provide a CheckpointFile()
function. This function takes a basename that is set in the
configuration, and appends the current cycle to the name so that
multiple checkpoints can be dumped from the same simulation.
Also, don't exit the simulation when a checkpoint file is dumped.
sim/serialize.hh:
serializeFilename -> CheckpointFile()
SetupCheckpoint function to tell the simulator to prepare
to checkpoint at a certain time with a certain period
sim/sim_events.cc:
DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
The context stuff gets moved into the already existing
stats context in stat_context.cc
sim/sim_events.hh:
DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
sim/universe.cc:
Provide some simple functions for converting times into
ticks. These use floating point math to get as close as
possible to the real values. Multipliers are set up ahead
of time
--HG--
extra : convert_revision : d06ef26a9237529a1e5060cb1ac2dcc04d4ec252
base/misc.cc:
Add curTick to panic and warn messages.
Reformat fatal message a bit for consistency.
--HG--
extra : convert_revision : 171da2fe6ca5e25982058ee1af67473292659103
base/str.cc:
Make some fixes for the to_number function.
Fix overflow calculation for maximum decimal value.
(Note: minimum decimal value for signed numbers does not
work correctly, e.g. it will overflow on -128 for a signed char
though -127 will work)
Fix overflow calculation for hex values being converted into
signed types
Fix up the debugging stuff a little to make sure the values are
always printed as numbers.
test/strnumtest.cc:
using namespace std for g++ 3
--HG--
extra : convert_revision : b00bb1296c85c3d64d8864283c9374e1563bfa31
statistics.hh:
fix a bug in binning that made bins a fixed size no matter what. add GenBin class that is public but not templatized.
statistics.cc:
change map to statMap so others can use the map<> token without needing ::. also, add a level of GenBin that is public base class for StatBin<>.
base/statistics.cc:
change map to statMap so others can use the map<> token without needing ::. also, add a level of GenBin that is public base class for StatBin<>.
base/statistics.hh:
fix a bug in binning that made bins a fixed size no matter what. add GenBin class that is public but not templatized.
--HG--
extra : convert_revision : 6976a891e414c9515cc5a613157f7cb86ef89008