Gabe Black [Sat, 7 Jan 2012 10:15:35 +0000 (02:15 -0800)]
Merge with the main repository again.
Gabe Black [Sat, 7 Jan 2012 10:10:34 +0000 (02:10 -0800)]
Merge with main repository.
Ali Saidi [Fri, 2 Dec 2011 01:36:22 +0000 (17:36 -0800)]
Trace: FIx issue with creation of trace file with output dir overhaul.
--HG--
extra : rebase_source :
c1ab57ea8805703d97cdee4f32410821a2d2a9db
Brad Beckmann [Thu, 1 Dec 2011 19:54:30 +0000 (11:54 -0800)]
regress: updated hammer memtest and rubytest outputs
--HG--
extra : rebase_source :
b02ad38b477d87bf28f7677c985ec7fe9a7d4694
gloh [Thu, 1 Dec 2011 18:08:52 +0000 (10:08 -0800)]
config: command line option to specify ruby output file
--HG--
extra : rebase_source :
df2237b2ce01b1a3e1d6f112a62deadde4d92420
Brad Beckmann [Thu, 1 Dec 2011 18:08:52 +0000 (10:08 -0800)]
MOESI_hammer: fixed L2 to L1 infinite stalls and deadlock
--HG--
extra : rebase_source :
90f217f28e195a8cee5d64b25c913b452d818676
Brad Beckmann [Thu, 1 Dec 2011 18:08:52 +0000 (10:08 -0800)]
physmem: Improved fatal message for size mismatch
--HG--
extra : rebase_source :
16da1c63263f8fd6fef9a842c577343cd6246a35
Chris Emmons [Thu, 1 Dec 2011 08:15:26 +0000 (00:15 -0800)]
VNC: Add support for capturing frame buffer to file each time it is changed.
When a change in the frame buffer from the VNC server is detected, the new
frame is stored out to the m5out/frames_*/ directory. Specifiy the flag
"--frame-capture" when running configs/example/fs.py to enable this behavior.
--HG--
extra : rebase_source :
d4e08e83f4fa6ff79f3dc9c433fc1f0487e057fc
Chris Emmons [Thu, 1 Dec 2011 08:15:25 +0000 (00:15 -0800)]
Output: Add hierarchical output support and cleanup existing codebase.
--HG--
extra : rebase_source :
3301137733cdf5fdb471d56ef7990e7a3a865442
Ali Saidi [Thu, 1 Dec 2011 08:15:25 +0000 (00:15 -0800)]
SE: Don't warn when not extending stack as it's too noisy with O3.
--HG--
extra : rebase_source :
e56d1551d42d46b5f357cd63f9891715b664f6fc
Ali Saidi [Thu, 1 Dec 2011 08:15:23 +0000 (00:15 -0800)]
imported patch ext/stats_updates.patch
--HG--
extra : rebase_source :
4697ba9eb1ca8c67fe0915fb8340d7d4ae94caba
Chander Sudanthi [Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)]
O3: Remove hardcoded tgts_per_mshr in O3CPU.py.
There are two lines in O3CPU.py that set the dcache and icache
tgts_per_mshr to 20, ignoring any pre-configured value of tgts_per_mshr.
This patch removes these hardcoded lines from O3CPU.py and sets the default
L1 cache mshr targets to 20.
--HG--
extra : rebase_source :
6f92d950e90496a3102967442814e97dc84db08b
Mitchell Hayenga [Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)]
Device: Make changes necessary to support a coherent page walker cache.
Adds the flag 'recvSnoops' which enables pagewalkers using DmaPorts,
to properly configure snoops.
--HG--
extra : rebase_source :
64207bef62c3268ddff2236ee4adae873812325f
Ali Saidi [Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)]
ARM: Add support for having a TLB cache.
--HG--
extra : rebase_source :
7a5780ab74d7c294682738c7ccb3ce8d56c6fd63
Ali Saidi [Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)]
ARM: Add IsSerializeAfter and IsNonSpeculative flag to the syscall instruction .
Squashes the subsequent instructions in O3 pipe after the service call, so that
they see the effect of the system call when re-executed. This isn't really an issue
with FS mode, but can show up in SE mode.
--HG--
extra : rebase_source :
613a69fe1d9834261e25a8cd340aa6b47578e1fe
Ali Saidi [Thu, 1 Dec 2011 08:15:22 +0000 (00:15 -0800)]
O3: Add stat that counts how many cycles the O3 cpu was quiesced.
--HG--
extra : rebase_source :
043b9307eef3c5b87f8e6370765641e016ed1fa7
Gabe Black [Thu, 1 Dec 2011 05:17:14 +0000 (00:17 -0500)]
X86: Fix a bad segmentation check for the stack segment.
--HG--
extra : rebase_source :
755f4f6eae52f88ed516a1f1ac9e2565725d89c1
Ali Saidi [Wed, 30 Nov 2011 23:57:11 +0000 (18:57 -0500)]
SPARC: update SE stats for FP fix
--HG--
extra : rebase_source :
954a009a9f8eef6cae6050ee99f264e0fb456f85
Gabe Black [Mon, 28 Nov 2011 09:35:55 +0000 (04:35 -0500)]
SPARC: Minor style fix.
I forgot to fix this as well per Ali's feedback.
--HG--
extra : rebase_source :
e70d031cb5f91e2212a1a73ea1769bf0549b826c
Andreas Hansson [Mon, 28 Nov 2011 09:34:18 +0000 (04:34 -0500)]
SPARC: Fixing a minor copy-paste bug using the wrong variable
There was a bug in the mm_disk implementation where a copy paste error
resulted in the d32 variable not being initialised (as it incorrectly
was used instead of d16), and gcc 4.5 complaining.
--HG--
extra : rebase_source :
9515e87b188b9eac189da8034cb13c3bf7d9e20b
Gabe Black [Mon, 28 Nov 2011 09:19:57 +0000 (04:19 -0500)]
SPARC: Update the FS stats for the recent FP fix.
--HG--
extra : rebase_source :
643e3541507576e30d9cd4dec045e5b94532c342
Gabe Black [Mon, 28 Nov 2011 03:00:58 +0000 (22:00 -0500)]
SPARC: Isolate FP operations enough to prevent code/rounding mode reordering.
--HG--
extra : rebase_source :
ee79ab89c5a707c1294f38abb84c60f8ef64196c
Gabe Black [Mon, 28 Nov 2011 03:00:57 +0000 (22:00 -0500)]
Compiler: Add an M5_NO_INLINE define.
--HG--
extra : rebase_source :
1f5e8b7bb6b0a8bb4f951b6d7189964d96ed5df1
Tushar Krishna [Wed, 23 Nov 2011 21:34:13 +0000 (16:34 -0500)]
Topology: bug fix in external link initialization
--HG--
extra : rebase_source :
c226cd1e5e5ed4d4c64fa9427de4905bd8335e34
Tushar Krishna [Wed, 23 Nov 2011 01:11:18 +0000 (20:11 -0500)]
Remove standard_1level_CMP-protocol.sm include statement from Network
--HG--
extra : rebase_source :
51a2dd4bb643e3dc5b0218a6190cf5c1989f9691
Gabe Black [Sun, 20 Nov 2011 13:10:05 +0000 (05:10 -0800)]
X86: Fix the constant detecting three byte opcodes in the predecoder.
--HG--
extra : rebase_source :
b64c3d2348cb73177024695fb6e205d51bf1cda9
Gabe Black [Fri, 18 Nov 2011 10:20:22 +0000 (02:20 -0800)]
SE/FS: Get rid of includes of config/full_system.hh.
Gabe Black [Fri, 18 Nov 2011 09:33:28 +0000 (01:33 -0800)]
SE/FS: Get rid of FULL_SYSTEM in the CPU directory.
Nilay Vaish [Fri, 18 Nov 2011 04:53:56 +0000 (22:53 -0600)]
Regression: Update statistics for x86 long regression tests
This patch updates reference statistics for the regression tests. This
update was necessitated by a recent change in behavior of some instructions
in the x86 architecture.
Nilay Vaish [Mon, 14 Nov 2011 23:44:35 +0000 (17:44 -0600)]
Ruby: Process packet instead of RubyRequest in Sequencer
This patch changes the implementation of Ruby's recvTiming() function so
that it pushes a packet in to the Sequencer instead of a RubyRequest. This
requires changes in the Sequencer's makeRequest() and issueRequest()
functions, as they also need to operate on a Packet instead of RubyRequest.
Gabe Black [Sun, 13 Nov 2011 20:40:15 +0000 (12:40 -0800)]
Power: Add a stubbed out stacktrace.cc
Gabe Black [Sun, 13 Nov 2011 20:40:15 +0000 (12:40 -0800)]
POWER: Add a stub implementation of initCPU.
Gabe Black [Sun, 13 Nov 2011 20:40:15 +0000 (12:40 -0800)]
Power: Add a stub kernel_stats.hh.
Gabe Black [Sun, 13 Nov 2011 10:05:32 +0000 (02:05 -0800)]
SE/FS: Get rid of FULL_SYSTEM in dev.
Gabe Black [Sun, 13 Nov 2011 10:05:32 +0000 (02:05 -0800)]
SE/FS: Get rid of FULL_SYSTEM in kern.
Gabe Black [Sun, 13 Nov 2011 10:05:27 +0000 (02:05 -0800)]
Power: Implement a stub for getArgument.
Gabe Black [Thu, 10 Nov 2011 05:48:28 +0000 (21:48 -0800)]
GCC: Guard some gcc flags so they're used when available and needed.
Gabe Black [Mon, 7 Nov 2011 09:13:43 +0000 (01:13 -0800)]
SE/FS: Get rid of FULL_SYSTEM in mem.
Gabe Black [Mon, 7 Nov 2011 09:06:54 +0000 (01:06 -0800)]
SE/FS: Remove FULL_SYSTEM from swig.
Nilay Vaish [Sat, 5 Nov 2011 20:32:23 +0000 (15:32 -0500)]
Tests: Update stats due to addition of fence microop
Tushar Krishna [Fri, 4 Nov 2011 22:40:22 +0000 (18:40 -0400)]
GARNET: adding a fault model for resilient on-chip network research.
This patch adds a fault model, which provides the probability of a number of
architectural faults in the interconnection network (e.g., data corruption,
misrouting). These probabilities can be used to realistically inject faults
in GARNET and faithfully evaluate the effectiveness of novel resilient NoC
architectures.
Nilay Vaish [Fri, 4 Nov 2011 16:26:12 +0000 (11:26 -0500)]
MESI Protocol: Add functions for profiling misses
Nilay Vaish [Fri, 4 Nov 2011 03:52:21 +0000 (22:52 -0500)]
x86: Add microop for fence
This patch adds a new microop for memory barrier. The microop itself does
nothing, but since it is marked as a memory barrier, the O3 CPU should flush
all the pending loads and stores before the fence to the memory system.
Nilay Vaish [Fri, 4 Nov 2011 03:52:02 +0000 (22:52 -0500)]
Protocol: Remove standard one and two level files
Nilay Vaish [Fri, 4 Nov 2011 03:46:45 +0000 (22:46 -0500)]
Ruby: Remove some unused typedefs
This patch removes some of the unused typedefs. It also moves
some of the typedefs from Global.hh to TypeDefines.hh. The patch
also eliminates the file NodeID.hh.
Gabe Black [Wed, 2 Nov 2011 09:11:14 +0000 (02:11 -0700)]
SE/FS: Get rid of FULL_SYSTEM in sim.
Gabe Black [Wed, 2 Nov 2011 08:27:45 +0000 (01:27 -0700)]
SE/FS: Get FULL_SYSTEM out of base/remote_gdb.cc.
Gabe Black [Wed, 2 Nov 2011 08:25:15 +0000 (01:25 -0700)]
SE/FS: Get rid of FULL_SYSTEM in the ARM ISA.
Gabe Black [Tue, 1 Nov 2011 11:01:15 +0000 (04:01 -0700)]
SE/FS: Get rid of the last use of FULL_SYSTEM in x86.
Gabe Black [Tue, 1 Nov 2011 11:01:14 +0000 (04:01 -0700)]
SE/FS: Get rid of uses of FULL_SYSTEM in Alpha.
Gabe Black [Tue, 1 Nov 2011 11:01:13 +0000 (04:01 -0700)]
SE/FS: Expose the same methods on the CPUs in SE and FS modes.
Gabe Black [Mon, 31 Oct 2011 09:58:24 +0000 (02:58 -0700)]
SE/FS: Remove the last uses of FULL_SYSTEM from SPARC.
Gabe Black [Mon, 31 Oct 2011 09:58:22 +0000 (02:58 -0700)]
SE/FS: Make the functions available from the TC consistent between SE and FS.
Gabe Black [Mon, 31 Oct 2011 08:09:44 +0000 (01:09 -0700)]
GCC: Get everything working with gcc 4.6.1.
And by "everything" I mean all the quick regressions.
Gabe Black [Mon, 31 Oct 2011 01:52:30 +0000 (18:52 -0700)]
SE/FS: Build the solaris object in both SE and FS.
Gabe Black [Mon, 31 Oct 2011 01:39:38 +0000 (18:39 -0700)]
SE/FS: Get rid of FULL_SYSTEM in MIPS.
Gabe Black [Mon, 31 Oct 2011 00:38:11 +0000 (17:38 -0700)]
SE/FS: Compile in system events in SE mode.
Gabe Black [Mon, 31 Oct 2011 00:38:09 +0000 (17:38 -0700)]
System: Push boot_cpu_frequency down into the subclasses that actually use it.
This parameter depends on a number of coincidences to work properly. First,
there must be an array assigned to system called "cpu" even though there's no
parameter called that. Second, the items in the "cpu" array have to have a
"clock" parameter which has a "frequency" member. This is true of the normal
CPUs, but isn't true of the memory tester CPUs. This happened to work before
because the memory tester CPUs were only used in SE mode where this parameter
was being excluded. Since everything is being pulled into a common binary,
this won't work any more. Since the boot_cpu_frequency parameter is only used
by Alpha's Linux System object (and Mips's through copy and paste), the
definition of that parameter is moved down to those objects specifically.
Nilay Vaish [Sun, 30 Oct 2011 20:57:39 +0000 (15:57 -0500)]
Commit due to merge.
Nilay Vaish [Sun, 30 Oct 2011 20:55:32 +0000 (15:55 -0500)]
Python: Remove import for random
Gabe Black [Sun, 30 Oct 2011 10:55:24 +0000 (03:55 -0700)]
SE/FS: Remove the last references to FULL_SYSTEM from POWER.
Gabe Black [Sun, 30 Oct 2011 10:06:40 +0000 (03:06 -0700)]
X86: Build the same files in SE and FS.
Gabe Black [Sun, 30 Oct 2011 10:06:37 +0000 (03:06 -0700)]
SE/FS: Build syscall_emul.cc in FS mode.
Gabe Black [Sun, 30 Oct 2011 09:30:55 +0000 (02:30 -0700)]
SE/FS: Make the system object more consistent between SE and FS.
Gabe Black [Sun, 30 Oct 2011 07:33:02 +0000 (00:33 -0700)]
X86: Get rid of more uses of FULL_SYSTEM.
Gabe Black [Sun, 30 Oct 2011 07:33:02 +0000 (00:33 -0700)]
SE/FS: Make getProcessPtr available in both modes, and get rid of FULL_SYSTEMs.
Gabe Black [Sun, 30 Oct 2011 07:32:54 +0000 (00:32 -0700)]
SE/FS: Build the base process class in FS.
Nilay Vaish [Sat, 29 Oct 2011 21:54:57 +0000 (16:54 -0500)]
Ruby FS: Add the options for kernel and simulation script
These options were missing from the script ruby_fs.py. This patch adds these
options to the script.
Nilay Vaish [Fri, 28 Oct 2011 18:04:33 +0000 (13:04 -0500)]
Merged with recent changes.
Nilay Vaish [Fri, 28 Oct 2011 18:00:35 +0000 (13:00 -0500)]
Ruby: Reorganize mapping of components
In RubySlicc_ComponentMapping.hh, certain '#define's have been used for
mapping MachineType to GenericMachineType. These '#define's are being
eliminated and the code will now be generated by SLICC instead. Also
are being eliminated some of the unused functions from
RubySlicc_ComponentMapping.sm.
Steve Reinhardt [Sun, 23 Oct 2011 05:30:08 +0000 (22:30 -0700)]
SE: move page allocation from PageTable to Process
PageTable supported an allocate() call that called back
through the Process to allocate memory, but did not have
a method to map addresses without allocating new pages.
It makes more sense for Process to do the allocation, so
this method was renamed allocateMem() and moved to Process,
and uses a new map() call on PageTable.
The remaining uses of the process pointer in PageTable
were only to get the name and the PID, so by passing these
in directly in the constructor, we can make PageTable
completely independent of Process.
Steve Reinhardt [Sun, 23 Oct 2011 05:30:07 +0000 (22:30 -0700)]
syscall_emul: implement MAP_FIXED option to mmap()
Steve Reinhardt [Sat, 22 Oct 2011 23:52:07 +0000 (16:52 -0700)]
tests: fix spurious scons "Error 1" messages
Turns out these are due to diff reporting that files
acutally differed via a non-zero exit code.
Steve Reinhardt [Thu, 20 Oct 2011 20:11:56 +0000 (13:11 -0700)]
dev: clean up PioDevice and DmaDevive getPort() methods.
Make DmaDevice::getPort() call PioDevice::getPort() instead
of just copying and pasting the code.
Also move definitions from .hh to .cc file.
Steve Reinhardt [Thu, 20 Oct 2011 20:09:10 +0000 (13:09 -0700)]
SimObject: add export_method* hooks to export C++ methods to Python
Replace the (broken as of previous changeset) swig_objdecl() method
that allowed/forced you to substitute a whole new C++ struct
definition for SWIG to wrap with a set of export_method* hooks
that let you just declare a set of C++ methods (or other declarations)
that get inserted in the auto-generated struct.
Restore the System get/setMemoryMode methods, and use this mechanism
to specialize SimObject as well, eliminating teh need for sim_object.i.
Needed bits of sim_object.i are moved to the new pyobject.i.
Also sucked a little SimObject specialization into cxx_param_decl()
allowing us to get rid of src/sim/sim_object_params.hh. Now the
generation and wrapping of the base SimObject param struct is more
in line with how derived objects are handled.
--HG--
rename : src/python/swig/sim_object.i => src/python/swig/pyobject.i
Steve Reinhardt [Thu, 20 Oct 2011 20:08:49 +0000 (13:08 -0700)]
scons/swig: refactor some of the scons/SWIG code
- Move the random bits of SWIG code generation out of src/SConscript
file and into methods on the objects being wrapped.
- Cleaned up some variable naming and added some comments to make
the process a little clearer.
- Did a little generated file/module renaming:
- vptype_Foo now Foo_vector
- init_Foo is now Foo_init
This makes it easier to see all the Foo-related files in a
sorted directory listing.
- Made cxx_predecls and swig_predecls normal SimObject classmethods.
- Got rid of swig_objdecls hook, even though this breaks the System
objects get/setMemoryMode method exports. Will be fixing this in
a future changeset.
Ali Saidi [Wed, 19 Oct 2011 23:08:31 +0000 (18:08 -0500)]
ARM: Fix small bug in config script that prevents android from booting
Nathan Binkert [Tue, 18 Oct 2011 00:06:40 +0000 (17:06 -0700)]
scons: fix building of shared objects
Gabe Black [Sun, 16 Oct 2011 12:06:40 +0000 (05:06 -0700)]
SE/FS: Make some system funcs available in SE and FS.
Gabe Black [Sun, 16 Oct 2011 12:06:40 +0000 (05:06 -0700)]
SE/FS: Include getMemPort in FS.
Gabe Black [Sun, 16 Oct 2011 12:06:40 +0000 (05:06 -0700)]
SE/FS: Turn on the page table class in FS.
Gabe Black [Sun, 16 Oct 2011 12:06:40 +0000 (05:06 -0700)]
SE/FS: Build in the tport in FS mode.
Gabe Black [Sun, 16 Oct 2011 12:06:39 +0000 (05:06 -0700)]
SE/FS: Build/expose vport in SE mode.
Gabe Black [Sun, 16 Oct 2011 12:06:39 +0000 (05:06 -0700)]
SPARC: Build vtophys into SE mode.
Gabe Black [Sun, 16 Oct 2011 12:06:39 +0000 (05:06 -0700)]
Power: Add a stub implementation for vtophys in SE and FS.
Gabe Black [Sun, 16 Oct 2011 12:06:39 +0000 (05:06 -0700)]
MIPS: Build vtophys in SE mode.
Gabe Black [Sun, 16 Oct 2011 12:06:39 +0000 (05:06 -0700)]
ARM: Build vtophys in SE mode.
Gabe Black [Sun, 16 Oct 2011 12:06:38 +0000 (05:06 -0700)]
ARM: Turn on the page table walker on ARM in SE mode.
Gabe Black [Sun, 16 Oct 2011 09:59:53 +0000 (02:59 -0700)]
Alpha: Turn on vtophys in SE mode.
Gabe Black [Sun, 16 Oct 2011 09:59:53 +0000 (02:59 -0700)]
CPU: Make physPort and getPhysPort available in SE mode.
Gabe Black [Thu, 13 Oct 2011 09:26:21 +0000 (02:26 -0700)]
X86: Build vtophys in SE mode.
Gabe Black [Thu, 13 Oct 2011 09:22:23 +0000 (02:22 -0700)]
X86: Turn on the page table walker in SE mode.
Gabe Black [Thu, 13 Oct 2011 08:37:19 +0000 (01:37 -0700)]
SPARC: Remove the last checks of FULL_SYSTEM.
Gabe Black [Thu, 13 Oct 2011 08:11:00 +0000 (01:11 -0700)]
SPARC: Narrow the scope of #if FULL_SYSTEM in SPARC's faults.
Nilay Vaish [Mon, 10 Oct 2011 22:01:33 +0000 (17:01 -0500)]
mc146818: Correctly serialize tickEvent
'tickEvent' was not being serialized as in its place 'event' was being used.
This patch rectifies this error.
Gabe Black [Mon, 10 Oct 2011 07:38:57 +0000 (00:38 -0700)]
SPARC: Let the TLB have friends in FS mode.
Gabe Black [Mon, 10 Oct 2011 07:31:51 +0000 (00:31 -0700)]
SPARC: Turn on handleIprRead and handleIprWrite in SE in SPARC.
Gabe Black [Mon, 10 Oct 2011 06:48:27 +0000 (23:48 -0700)]
[mq]: sefssparcregfile.patch
Gabe Black [Sun, 9 Oct 2011 11:44:02 +0000 (04:44 -0700)]
Interrupts: Make the IO APIC go get the local APICs.
This is so they don't have to declare themselves to the IO APIC and don't have
to have a pointer to the platform object.
Gabe Black [Sun, 9 Oct 2011 07:15:50 +0000 (00:15 -0700)]
SE/FS: Build the Interrupt objects in SE mode.