Nathan Binkert [Fri, 26 Sep 2008 15:18:57 +0000 (08:18 -0700)]
When nesting if statements, use braces to avoid ambiguous else clauses.
Nathan Binkert [Fri, 26 Sep 2008 15:18:56 +0000 (08:18 -0700)]
Use logical operator instead of bitwise operator for correctness.
Nathan Binkert [Fri, 26 Sep 2008 15:18:55 +0000 (08:18 -0700)]
style: bring this file into M5 style, use the new pte translate function.
Nathan Binkert [Fri, 26 Sep 2008 15:18:54 +0000 (08:18 -0700)]
scons: disable several gcc warnings for swig autogenerated wrapper code.
Nathan Binkert [Fri, 26 Sep 2008 15:18:53 +0000 (08:18 -0700)]
style: These files didn't even come close to following the M5 style guide.
Kevin Lim [Fri, 26 Sep 2008 14:44:07 +0000 (07:44 -0700)]
O3CPU: Fix thread writeback logic.
Fix the logic in the LSQ that determines if there are any stores to
write back. In the commit stage, check for thread specific writebacks
instead of just any writeback.
Kevin Lim [Fri, 26 Sep 2008 14:44:06 +0000 (07:44 -0700)]
O3CPU: Add a hack to ensure that nextPC is set correctly after syscalls.
Just check CPU's nextPC before and after syscall and if it changes,
update this instruction's nextPC because the syscall must have changed
the nextPC.
Nathan Binkert [Wed, 24 Sep 2008 03:38:02 +0000 (20:38 -0700)]
sparc: Fix style, create a helper function for translation.
The translate function simplifies code and removes some compiler
warnings in gcc 3.4
Nathan Binkert [Mon, 22 Sep 2008 15:25:58 +0000 (08:25 -0700)]
scons: Separate swig environment so we can have different flags.
Swig code isn't quite perfect, so let's not turn on all of the warnings.
Nathan Binkert [Mon, 22 Sep 2008 15:25:57 +0000 (08:25 -0700)]
gcc: Version 4.3 is pretty anal about shadowing types, placate it.
In the future, it would be nice to put the O3CPU into its own
namespace so that we don't end up hardcoding pointers to the global
namespace.
Nathan Binkert [Mon, 22 Sep 2008 15:21:47 +0000 (08:21 -0700)]
style
Ali Saidi [Mon, 22 Sep 2008 03:56:01 +0000 (23:56 -0400)]
SCons: Update compare_versions() to ignore trailing charecters in versions.
Nathan Binkert [Fri, 19 Sep 2008 16:42:55 +0000 (09:42 -0700)]
We're searching for g++ incorrectly
Nathan Binkert [Fri, 19 Sep 2008 16:42:54 +0000 (09:42 -0700)]
We're using the static keyword improperly in some cases.
Nathan Binkert [Fri, 19 Sep 2008 16:42:31 +0000 (09:42 -0700)]
atomicio: provide atomic read and write functions.
These functions keep trying to read and write until all data has been
transferred, or an error occurrs. In the case where an end of file
hasn't been reached, but all of the bytes have not been read/written,
try again. On EINTR, try again.
Nathan Binkert [Fri, 19 Sep 2008 16:11:43 +0000 (09:11 -0700)]
Use C++ limits where applicable for portability
Nathan Binkert [Fri, 19 Sep 2008 16:11:43 +0000 (09:11 -0700)]
Use the proper version of C++ headers
Nathan Binkert [Fri, 19 Sep 2008 16:11:42 +0000 (09:11 -0700)]
Check the return value of I/O operations for failure
Nathan Binkert [Fri, 19 Sep 2008 16:11:40 +0000 (09:11 -0700)]
inifile: Whack preprocessor access.
We haven't used the preprocessor feature of the inifile stuff in a
very long time, so let's get rid of it since it would otherwise take
effort to maintain.
Ali Saidi [Wed, 10 Sep 2008 18:26:15 +0000 (14:26 -0400)]
style: Remove non-leading tabs everywhere they shouldn't be. Developers should configure their editors to not insert tabs
Nathan Binkert [Tue, 9 Sep 2008 23:27:17 +0000 (16:27 -0700)]
style: this file did not conform to style
Nathan Binkert [Tue, 9 Sep 2008 01:03:52 +0000 (18:03 -0700)]
style: This file hugely violated the M5 style.
Remove a bunch of unused cruft from the interface while we're at it
Gabe Black [Wed, 3 Sep 2008 04:52:54 +0000 (00:52 -0400)]
X86: Fix the microcode for sign/zero extending moves that use high byte registers.
Clint Smullen [Tue, 26 Aug 2008 06:37:26 +0000 (02:37 -0400)]
Device: Fix bug in DmaPort::recvRetry. The interface attempts to send the same packet again.
It doesn't cause a problem currently, however with a different Memory Object it could cause
problems
Ali Saidi [Sun, 24 Aug 2008 19:27:49 +0000 (15:27 -0400)]
IGbE: Patches I neglected to apply before pushing the previous igbe changeset
Gabe Black [Wed, 20 Aug 2008 04:59:09 +0000 (21:59 -0700)]
CPU: Get rid of two more duplicated CPU params.
Richard Strong [Mon, 18 Aug 2008 17:50:58 +0000 (10:50 -0700)]
Changed BaseCPU::ProfileEvent's interval member to be of type Tick. This was done to be consistent with its
python type of a latency. In addition, the multiple definitions of profile in the different cpu models caused
problems for intialization of the interval value. If a child class's profile value was defined, the parent
BaseCPU::ProfileEvent interval field would be initialized with a garbage value. The fix was to remove the
multiple redifitions of profile in the child CPU classes.
Ali Saidi [Wed, 13 Aug 2008 21:41:58 +0000 (17:41 -0400)]
Add the ability to specify a think time before descriptor fetch/writeback starts/ends as well as after read/write dmas
Ali Saidi [Wed, 13 Aug 2008 21:41:56 +0000 (17:41 -0400)]
Add the ability for a DMA to tack on an extra delay after the DMA is actually finished.
Ali Saidi [Wed, 13 Aug 2008 20:30:30 +0000 (16:30 -0400)]
More subtle fixes to how interrupts are supposed to work in the device. Fix postedInterrupts statistics.
Ali Saidi [Wed, 13 Aug 2008 20:29:59 +0000 (16:29 -0400)]
Return an UnimpFault for an ITB translation of an uncachable address. We don't support fetching from uncached addresses in Alpha and it means that a speculative fetch can clobber device registers.
Nathan Binkert [Mon, 11 Aug 2008 21:47:49 +0000 (14:47 -0700)]
style
Nathan Binkert [Mon, 11 Aug 2008 19:22:17 +0000 (12:22 -0700)]
params: Get rid of the remnants of the old style parameter configuration stuff.
Nathan Binkert [Mon, 11 Aug 2008 19:22:16 +0000 (12:22 -0700)]
params: Convert the CPU objects to use the auto generated param structs.
A whole bunch of stuff has been converted to use the new params stuff, but
the CPU wasn't one of them. While we're at it, make some things a bit
more stylish. Most of the work was done by Gabe, I just cleaned stuff up
a bit more at the end.
Steve Reinhardt [Mon, 4 Aug 2008 05:46:46 +0000 (01:46 -0400)]
Make time format in 'started' line same as 'compiled'.
Also make -B output consistent with normal header, and
only include actual build options.
Steve Reinhardt [Mon, 4 Aug 2008 05:45:12 +0000 (01:45 -0400)]
Get rid of outputStream... wasn't really being used
(except for warn()) and new -r/-e options make it
not worth fixing.
Steve Reinhardt [Mon, 4 Aug 2008 05:01:35 +0000 (01:01 -0400)]
Minor fix for test/SConscript... forgot to 'qref' before 'qdel', argh.
Steve Reinhardt [Mon, 4 Aug 2008 04:48:11 +0000 (00:48 -0400)]
Make test/SConscript use new redirection options.
Steve Reinhardt [Mon, 4 Aug 2008 04:40:31 +0000 (00:40 -0400)]
Add -r/-e options to redirect stdout/stderr.
Better than using shell since it automatically uses -d directory
for output files (creating it as needed).
Nathan Binkert [Mon, 4 Aug 2008 01:19:55 +0000 (18:19 -0700)]
sockets: Add a function to disable all listening sockets.
When invoking several copies of m5 on the same machine at the same
time, there can be a race for TCP ports for the terminal connections
or remote gdb. Expose a function to disable those ports, and have the
regression scripts disable them. There are some SimObjects that have
no other function than to be used with ports (NativeTrace and
EtherTap), so they will panic if the ports are disabled.
Nathan Binkert [Mon, 4 Aug 2008 01:19:54 +0000 (18:19 -0700)]
libm5: Create a libm5 static library for embedding m5.
This should allow m5 to be more easily embedded into other simulators.
The m5 binary adds a simple main function which then calls into the m5
libarary to start the simulation. In order to make this work
correctly, it was necessary embed python code directly into the
library instead of the zipfile hack. This is because you can't just
append the zipfile to the end of a library the way you can a binary.
As a result, Python files that are part of the m5 simulator are now
compile, marshalled, compressed, and then inserted into the library's
data section with a certain symbol name. Additionally, a new Importer
was needed to allow python to get at the embedded python code.
Small additional changes include:
- Get rid of the PYTHONHOME stuff since I don't think anyone ever used
it, and it just confuses things. Easy enough to add back if I'm wrong.
- Create a few new functions that are key to initializing and running
the simulator: initSignals, initM5Python, m5Main.
The original code for creating libm5 was inspired by a patch Michael
Adler, though the code here was done by me.
Nathan Binkert [Mon, 4 Aug 2008 01:19:53 +0000 (18:19 -0700)]
syscall: Avoid a compiler warning which turns into a bug.
Simply cast the result to an int and life is good.
Steve Reinhardt [Sun, 3 Aug 2008 22:13:29 +0000 (18:13 -0400)]
Make default PhysicalMemory latency slightly more realistic.
Also update stats to reflect change.
Gabe Black [Sun, 3 Aug 2008 21:43:24 +0000 (14:43 -0700)]
X86: Make hint nops consume their modrm byte.
Nathan Binkert [Sun, 3 Aug 2008 03:42:15 +0000 (20:42 -0700)]
kill unused code
Nathan Binkert [Thu, 31 Jul 2008 15:01:38 +0000 (08:01 -0700)]
scons: Get rid of generate.py in the build system.
I decided that separating some of the scons code into generate.py was
just a bad idea because it caused the dependency system to get all
messed up. If separation is the right way to go in the future, we
should probably use the sconscript mechanism, not the mechanism that I
just removed.
Nathan Binkert [Thu, 24 Jul 2008 23:31:54 +0000 (16:31 -0700)]
regress: update regressions for tty emulation fix.
Michael Adler [Thu, 24 Jul 2008 23:31:33 +0000 (16:31 -0700)]
syscall: Fix TTY emulation in fstat() user-mode simulation for fd 1 (stdout).
The code didn't set S_IFCHR in the st_mode
Michael Adler [Wed, 23 Jul 2008 21:41:34 +0000 (14:41 -0700)]
process: separate stderr from stdout
- Add the option of redirecting stderr to a file. With the old
behaviour, stderr would follow stdout if stdout was to a file, but
stderr went to the host stderr if stdout went to the host stdout. The
new default maintains stdout and stderr going to the host. Now the
two can specify different files, but they will share a file descriptor
if the name of the files is the same.
- Add --output and --errout options to se.py to go with --input.
Michael Adler [Wed, 23 Jul 2008 21:41:33 +0000 (14:41 -0700)]
syscalls: Add a bunch of missing system calls.
readlink, umask, truncate, ftruncate, mkdir, and getcwd.
Michael Adler [Wed, 23 Jul 2008 21:41:33 +0000 (14:41 -0700)]
RemoteGDB: add an m5 command line option for setting or disabling remote gdb.
Nathan Binkert [Tue, 22 Jul 2008 21:01:33 +0000 (17:01 -0400)]
tests: There's a small unknown stats difference in 20.parser, accept it.
Hopefully if the difference pops back up, we can figure out what it was
Nathan Binkert [Tue, 22 Jul 2008 21:00:45 +0000 (17:00 -0400)]
Mips was missing a few stats
Nathan Binkert [Tue, 22 Jul 2008 21:00:18 +0000 (17:00 -0400)]
tests: update config.ini and stdout for the various tests.
These files were a bit too out of date and resulted in a bit of confusion.
Steve Reinhardt [Tue, 15 Jul 2008 18:38:51 +0000 (14:38 -0400)]
Get rid of useless m5_assert macro.
Its only purpose was to print the cycle number but that already
happens in the SIGABRT handler. No one used it anyway.
Steve Reinhardt [Tue, 15 Jul 2008 18:38:51 +0000 (14:38 -0400)]
Use ReadResp instead of LoadLockedResp for LoadLockedReq responses.
Steve Reinhardt [Tue, 15 Jul 2008 18:38:51 +0000 (14:38 -0400)]
Add missing newlines to Bus DPRINTFs.
Nathan Binkert [Fri, 11 Jul 2008 15:52:50 +0000 (08:52 -0700)]
m5ops: clean up the m5ops stuff.
- insert warnings for deprecated m5ops
- reserve opcodes for Ali's stuff
- remove code for stuff that has been deprecated forever
- simplify m5op_alpha
Nathan Binkert [Fri, 11 Jul 2008 15:52:50 +0000 (08:52 -0700)]
style: fix indentation and formatting of the pseudo insts.
Nathan Binkert [Fri, 11 Jul 2008 15:48:50 +0000 (08:48 -0700)]
eventq: change the event datastructure back to LIFO.
The status quo is preferred since it is less likely that people will
rely on LIFO than FIFO, and when we move to a parallelized M5, no
ordering between events of the same time/priority will be guaranteed.
Nathan Binkert [Fri, 11 Jul 2008 15:38:31 +0000 (08:38 -0700)]
eventq: new eventq data structure. The new data structure is singly
linked list sorted by time and priority. For things of the same time
and priority, a second, circularly linked list maintains the data
structure. Events of the same time and priority are now inserted in
FIFO order instead of LIFO order. This dramatically improves the
performance of systems that schedule multiple events at the same time.
The FIFO order version is not preferred to LIFO (because it may cause
people to rely on it), but I'm going to commit it anyway and
immediately commit the preferred LIFO version on top.
Nathan Binkert [Fri, 11 Jul 2008 04:35:42 +0000 (21:35 -0700)]
eventq: Clean up the Event class so that it uses fewer bytes. This
will hopefullly allow it to fit in a cache line.
Ali Saidi [Tue, 1 Jul 2008 14:30:08 +0000 (10:30 -0400)]
Fix cases where RADV interrupt timer is used and make ITR interrupt moderation not always delay if no interrupts have been posted for the ITR value.
Ali Saidi [Tue, 1 Jul 2008 14:25:07 +0000 (10:25 -0400)]
Remove delVirtPort() and make getVirtPort() only return cached version.
Ali Saidi [Tue, 1 Jul 2008 14:24:19 +0000 (10:24 -0400)]
Change everything to use the cached virtPort rather than created their own each time.
This appears to work, but I don't want to commit it until it gets tested a lot more.
I haven't deleted the functionality in this patch that will come later, but one question
is how to enforce encourage objects that call getVirtPort() to not cache the virtual port
since if the CPU changes out from under them it will be worse than useless. Perhaps a null
function like delVirtPort() is still useful in that case.
Ali Saidi [Tue, 1 Jul 2008 14:24:16 +0000 (10:24 -0400)]
Make the cached virtPort have a thread context so it can do everything that a newly created one can.
Ali Saidi [Tue, 1 Jul 2008 14:24:09 +0000 (10:24 -0400)]
After a checkpoint (and thus a stats reset), the not_idle_fraction/notIdleFraction statistic is really wrong.
The notIdleFraction statistic isn't updated when the statistics reset, probably because the cpu Status information
was pulled into the atomic and timing cpus. This changeset pulls Status back into the BaseSimpleCPU object. Anyone
care to comment on the odd naming of the Status instance? It shouldn't just be status because that is confusing
with Port::Status, but _status seems a bit strage too.
Steve Reinhardt [Sat, 28 Jun 2008 17:20:00 +0000 (13:20 -0400)]
Automated merge after backout.
Steve Reinhardt [Sat, 28 Jun 2008 17:19:38 +0000 (13:19 -0400)]
Backed out changeset
94a7bb476fca: caused memory leak.
Ali Saidi [Tue, 24 Jun 2008 19:51:12 +0000 (15:51 -0400)]
Automated merge with repo.m5sim.org/m5-stable
Ali Saidi [Tue, 24 Jun 2008 19:48:45 +0000 (15:48 -0400)]
Checkpoinging/SWIG: Undo part of changeset 5464 since it broke checkpointing.
Gabe Black [Sat, 21 Jun 2008 18:23:58 +0000 (14:23 -0400)]
SimObject: Add in missing includes of <string> and fix minor style problem.
Steve Reinhardt [Sat, 21 Jun 2008 05:06:27 +0000 (01:06 -0400)]
Make bus address conflict error more informative
Steve Reinhardt [Sat, 21 Jun 2008 05:04:43 +0000 (01:04 -0400)]
Generate more useful error messages for unconnected ports.
Force all non-default ports to provide a name and an
owner in the constructor.
Nathan Binkert [Wed, 18 Jun 2008 19:07:15 +0000 (12:07 -0700)]
imported patch sim_object_params.diff
Nathan Binkert [Wed, 18 Jun 2008 17:15:21 +0000 (10:15 -0700)]
AtomicSimpleCPU: Separate data stalls from instruction stalls.
Separate simulation of icache stalls and dat stalls.
Nathan Binkert [Wed, 18 Jun 2008 15:00:53 +0000 (11:00 -0400)]
tests: update tests for slight changes in nsgige posted interrupts
Nathan Binkert [Wed, 18 Jun 2008 05:22:44 +0000 (22:22 -0700)]
Ethernet: share statistics between all ethernet devices and apply some
of those statistics to the e1000 model.
Nathan Binkert [Wed, 18 Jun 2008 05:14:12 +0000 (22:14 -0700)]
inet: initialization fixes.
Make sure variables are properly initialized and also make sure that
truth testing works properly.
Nathan Binkert [Wed, 18 Jun 2008 04:34:27 +0000 (21:34 -0700)]
PacketFifo: Get slack out of the EthPacketData structure. This allows
a packet to exist in multiple FIFOs if desired.
Nathan Binkert [Wed, 18 Jun 2008 04:11:20 +0000 (21:11 -0700)]
ThreadState: Ensure that kernelStats is properly initialized
Nathan Binkert [Wed, 18 Jun 2008 03:39:51 +0000 (20:39 -0700)]
rename MipsConsole to MipsBackdoor
--HG--
rename : src/dev/mips/MipsConsole.py => src/dev/mips/MipsBackdoor.py
rename : src/dev/mips/console.cc => src/dev/mips/backdoor.cc
rename : src/dev/mips/console.hh => src/dev/mips/backdoor.hh
Nathan Binkert [Wed, 18 Jun 2008 03:36:39 +0000 (20:36 -0700)]
rename AlphaConsole to AlphaBackdoor
--HG--
rename : src/dev/alpha/AlphaConsole.py => src/dev/alpha/AlphaBackdoor.py
rename : src/dev/alpha/console.cc => src/dev/alpha/backdoor.cc
rename : src/dev/alpha/console.hh => src/dev/alpha/backdoor.hh
Nathan Binkert [Wed, 18 Jun 2008 03:30:37 +0000 (20:30 -0700)]
Change the default output filename for the terminal so it's more obvious.
--HG--
rename : tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/console.system.sim_console => tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/system.terminal
rename : tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/console.system.sim_console => tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/system.terminal
rename : tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/console.system.sim_console => tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/system.terminal
rename : tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/console.system.sim_console => tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/system.terminal
rename : tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/console.drivesys.sim_console => tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/drivesys.terminal
rename : tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/console.testsys.sim_console => tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/testsys.terminal
Nathan Binkert [Wed, 18 Jun 2008 03:29:06 +0000 (20:29 -0700)]
Rename SimConsole to Terminal since it makes more sense
--HG--
rename : src/dev/SimConsole.py => src/dev/Terminal.py
rename : src/dev/simconsole.cc => src/dev/terminal.cc
rename : src/dev/simconsole.hh => src/dev/terminal.hh
Nathan Binkert [Mon, 16 Jun 2008 04:39:29 +0000 (21:39 -0700)]
physmem: Add a null option to physical memory so it doesn't store data.
Nathan Binkert [Mon, 16 Jun 2008 04:34:32 +0000 (21:34 -0700)]
port: Clean up default port setup and port switchover code.
Nathan Binkert [Mon, 16 Jun 2008 04:26:33 +0000 (21:26 -0700)]
params: Prevent people from setting attributes on vector params.
Nathan Binkert [Mon, 16 Jun 2008 03:56:35 +0000 (20:56 -0700)]
add compile flags to m5
Nathan Binkert [Sun, 15 Jun 2008 04:51:08 +0000 (21:51 -0700)]
Command line option to print out List of SimObjects and their parameters
Nathan Binkert [Sun, 15 Jun 2008 04:16:00 +0000 (21:16 -0700)]
main: add .m5/options.py processing. This file is processed before
arguments are parsed so that they can change the default options for
various config parameters.
Nathan Binkert [Sun, 15 Jun 2008 04:15:59 +0000 (21:15 -0700)]
Add .m5 configuration directory
Nathan Binkert [Sun, 15 Jun 2008 04:15:58 +0000 (21:15 -0700)]
python: Separate the options parsing stuff. Remove options parsing stuff from
main.py so things are a bit more obvious.
Nathan Binkert [Sun, 15 Jun 2008 03:42:45 +0000 (20:42 -0700)]
params: Fix the memory bandwidth parameter
Nathan Binkert [Sun, 15 Jun 2008 03:39:31 +0000 (20:39 -0700)]
params: Fix floating point parameters
Nathan Binkert [Sun, 15 Jun 2008 03:19:49 +0000 (20:19 -0700)]
python: Move various utility classes into a new m5.util package so
they're all in the same place. This also involves having just one
jobfile.py and moving it into the utils directory to avoid
duplication. Lots of improvements to the utility as well.
--HG--
rename : src/python/m5/attrdict.py => src/python/m5/util/attrdict.py
rename : util/pbs/jobfile.py => src/python/m5/util/jobfile.py
rename : src/python/m5/util.py => src/python/m5/util/misc.py
rename : src/python/m5/multidict.py => src/python/m5/util/multidict.py
rename : util/stats/orderdict.py => src/python/m5/util/orderdict.py
Nathan Binkert [Sun, 15 Jun 2008 02:39:01 +0000 (19:39 -0700)]
MemReq: Add option to reset the time on a request.
Nathan Binkert [Sun, 15 Jun 2008 02:37:26 +0000 (19:37 -0700)]
Add hg commands for style check so you can check at times other than commit
Nathan Binkert [Sat, 14 Jun 2008 19:57:21 +0000 (12:57 -0700)]
Fix various SWIG warnings
Nathan Binkert [Sat, 14 Jun 2008 19:10:50 +0000 (12:10 -0700)]
Add missing dependencies on .i files