Korey Sewell [Wed, 25 Jan 2006 22:06:23 +0000 (17:06 -0500)]
first version of my decoder function skeleton
- this will decode the instructions but not doing anything to create the C++ object yet
(the 1st of many steps!)
arch/mips/isa_desc/bitfields.h:
initial bitfield constants ... copied some from original alpha bitfields
arch/mips/isa_desc/decoder.h:
decoder function skeleton pt.1
- this will decode the instructions but not doing anything to create the C++ object yet
(the 1st of many steps!)
--HG--
extra : convert_revision :
2b9a0f8160c78b17f9d3d5eaf5af5a4d2f074761
Korey Sewell [Wed, 25 Jan 2006 19:43:47 +0000 (14:43 -0500)]
initial changes to decoder.hh and copied files from arch/sparc directory
arch/mips/isa_desc/bitfields.h:
arch/mips/isa_desc/formats.h:
arch/mips/isa_desc/formats/basic.format:
arch/mips/isa_desc/formats/branch.format:
arch/mips/isa_desc/formats/integerop.format:
arch/mips/isa_desc/formats/mem.format:
arch/mips/isa_desc/formats/noop.format:
arch/mips/isa_desc/formats/trap.format:
arch/mips/isa_desc/includes.h:
arch/mips/isa_desc/operands.h:
arch/mips/isa_traits.cc:
arch/mips/isa_traits.hh:
copied from sparc ISA directory
arch/mips/isa_desc/decoder.h:
decoder I started to work on...
--HG--
rename : arch/sparc/isa_desc/bitfields.h => arch/mips/isa_desc/bitfields.h
rename : arch/sparc/isa_desc/decoder.h => arch/mips/isa_desc/decoder.h
rename : arch/sparc/isa_desc/formats.h => arch/mips/isa_desc/formats.h
rename : arch/sparc/isa_desc/formats/basic.format => arch/mips/isa_desc/formats/basic.format
rename : arch/sparc/isa_desc/formats/branch.format => arch/mips/isa_desc/formats/branch.format
rename : arch/sparc/isa_desc/formats/integerop.format => arch/mips/isa_desc/formats/integerop.format
rename : arch/sparc/isa_desc/formats/mem.format => arch/mips/isa_desc/formats/mem.format
rename : arch/sparc/isa_desc/formats/noop.format => arch/mips/isa_desc/formats/noop.format
rename : arch/sparc/isa_desc/formats/trap.format => arch/mips/isa_desc/formats/trap.format
rename : arch/sparc/isa_desc/includes.h => arch/mips/isa_desc/includes.h
rename : arch/sparc/isa_desc/operands.h => arch/mips/isa_desc/operands.h
rename : arch/sparc/isa_traits.cc => arch/mips/isa_traits.cc
rename : arch/sparc/isa_traits.hh => arch/mips/isa_traits.hh
extra : convert_revision :
d4f281960ecf2dce479fb665469c6f2c5dd3063e
Gabe Black [Wed, 25 Jan 2006 00:57:17 +0000 (19:57 -0500)]
Some stuff aparently didn't get committed which was from before the new repository was created.
SConscript:
There is a new SConscript in the arch/alpha directory which has the alpha specific files. To add files for an arch, a similar file should be created.
arch/isa_parser.py:
The isa parser now supports include directives. These are done with ##include
build/SConstruct:
The target directory is passed on so that the architecture specific SConscript can have it. Also, sparc was added as a valid architecture type.
arch/alpha/SConscript:
This SConscript adds the alpha specific source
arch/sparc/isa_desc/operands.h:
This sets up the operand types that the sparc isa uses
arch/sparc/isa_traits.cc:
Implementation of sparc specific things, like a register file with windows
build/build_options/default/SPARC_SE:
The default options for a sparc syscall emulation build.
--HG--
extra : convert_revision :
1afedae61dc8cae0d59d3bf1d41420d929be2efd
Gabe Black [Tue, 10 Jan 2006 19:57:37 +0000 (14:57 -0500)]
Adding the sparc ISA files which were worked on locally
arch/sparc/isa_desc/bitfields.h:
This file defines the bit fields used by the isa description system
arch/sparc/isa_desc/decoder.h:
This file describes the decoder for the isa description system
arch/sparc/isa_desc/formats.h:
This file declares the instruction formats
arch/sparc/isa_desc/formats/basic.format:
This file implements the "basic" instruction format
arch/sparc/isa_desc/formats/branch.format:
This file implements the "branch" instruction format
arch/sparc/isa_desc/formats/integerop.format:
This file implements the "integerop" instruction format
arch/sparc/isa_desc/formats/mem.format:
This file implements the "mem" instruction format
arch/sparc/isa_desc/formats/noop.format:
This file implements the "noop" instruction format
arch/sparc/isa_desc/formats/trap.format:
This file implements the "trap" instruction format
arch/sparc/isa_desc/includes.h:
This file is all of the inclues that are used by the isa description system
--HG--
extra : convert_revision :
12a2ffe949317b8b57d83263a4261131b9432c2a
Steve Reinhardt [Fri, 23 Dec 2005 18:50:35 +0000 (13:50 -0500)]
Fix roundUp function template so explicit arg is not
needed in a few more cases.
base/intmath.hh:
align arg to roundUp should be int, not template class
sim/process.cc:
sim/syscall_emul.hh:
No need for explicit template arg now that roundUp is fixed.
--HG--
extra : convert_revision :
f9f4639e022acb9f427e8d30d81c782504437c53
Steve Reinhardt [Fri, 23 Dec 2005 18:32:31 +0000 (13:32 -0500)]
Change base/intmath.{cc,hh} to follow m5 style.
arch/alpha/alpha_tru64_process.cc:
base/intmath.hh:
base/statistics.cc:
base/str.cc:
cpu/o3/btb.cc:
sim/process.cc:
sim/syscall_emul.hh:
Rename intmath.hh functions to follow m5 style
(RoundUp -> roundUp, etc.).
base/intmath.cc:
Rename intmath.hh functions to follow m5 style
(RoundUp -> roundUp, etc.).
Also reindent code in m5 style.
--HG--
extra : convert_revision :
57b853002bc3c9911e122599d9062b41a06d8e6a
Nathan Binkert [Fri, 23 Dec 2005 06:39:53 +0000 (01:39 -0500)]
Updates to Memory system changes document.
--HG--
extra : convert_revision :
a35a76d18a6183a0aaa5dd40c330f1ec0ef2244a
Steve Reinhardt [Fri, 23 Dec 2005 03:00:24 +0000 (22:00 -0500)]
Add a more refined stab at some of the new interface.
--HG--
extra : convert_revision :
9c3de70d83e6a1515566a9b7226e798ee077466f
Steve Reinhardt [Thu, 22 Dec 2005 19:41:49 +0000 (14:41 -0500)]
Add notes from latest memory system redesign meetings.
--HG--
extra : convert_revision :
53389e8e784e471b0fc6053ec970cd967bfe1598
Nathan Binkert [Thu, 22 Dec 2005 03:19:33 +0000 (22:19 -0500)]
Make ScsiController a PioDevice so it works again.
--HG--
extra : convert_revision :
cd610221edc6926d120d9f3978dd9ee89f501824
Nathan Binkert [Mon, 19 Dec 2005 07:07:06 +0000 (02:07 -0500)]
Create the ProxyError Exception. Raise it when an unproxy
operation fails because information is wrong or not available.
--HG--
extra : convert_revision :
1fd90c1291618b09752179cfa6894f1df495fffd
Nathan Binkert [Mon, 19 Dec 2005 07:02:58 +0000 (02:02 -0500)]
Add a little bit of support to grab info for making graphs
without using the jobfile.
util/stats/db.py:
util/stats/profile.py:
Make it possible to send job as a string and to set the system
separately from the job.
--HG--
extra : convert_revision :
08aaebd3f9a1643bd41953b43f3b80dc97e6592f
Steve Reinhardt [Wed, 7 Dec 2005 01:00:50 +0000 (20:00 -0500)]
Make simulation termination message less threatening... maybe
people won't think they're getting an error when they're not.
--HG--
extra : convert_revision :
7622360f4f88eed9edf44480dac551d153582d8b
Ron Dreslinski [Thu, 1 Dec 2005 23:47:36 +0000 (18:47 -0500)]
Two small fixes for mem_req's and Probe path with MOSI/MOESI
cpu/simple/cpu.cc:
Properly set the Instruction Read bit in the Memory Request
--HG--
extra : convert_revision :
e1a4756f32718fd8ef3ac3db16625bd6d8f07cc5
Ali Saidi [Tue, 29 Nov 2005 23:06:15 +0000 (18:06 -0500)]
Add support for multiple streams being configured with the INITPARAM
variable
--HG--
extra : convert_revision :
2cb20845cb7f32589882850156bdd42d9024db7a
Nathan Binkert [Mon, 28 Nov 2005 23:40:58 +0000 (18:40 -0500)]
Virtualized SINIC fixes
dev/pktfifo.hh:
we can't modify i because it's used further down to remove
the packet from the fifo. Instead, copy the iterator and
modify that to get the previous packet.
dev/sinic.cc:
- don't change the transmit state and kick the machine unless
we're at the head of the txList.
- add a couple of debugging statements to figure out how far
along we've gotten in processing a packet.
- assert that the current tx vnic has something to do when
we start processing the state machine.
--HG--
extra : convert_revision :
588fe2c7d810be0e3d8d39c5cc0ec8a72119517e
Nathan Binkert [Mon, 28 Nov 2005 23:33:48 +0000 (18:33 -0500)]
Make the debugger a bit more useful with m5.opt by moving stuff
from #ifdef DEBUG to #ifndef NDEBUG
base/remote_gdb.cc:
make the remote debugger gdb stuff work in m5.opt
sim/system.cc:
sim/system.hh:
make the console panic break event happen in m5.opt
--HG--
extra : convert_revision :
044a9b7cdacb058112388a31315e45c5d8cf70fd
Nathan Binkert [Fri, 25 Nov 2005 18:33:36 +0000 (13:33 -0500)]
Virtualize sinic
separate the rx thread and tx thread and get rid of the dedicated flag.
dev/ns_gige.cc:
dev/ns_gige.hh:
dev/ns_gige_reg.h:
python/m5/objects/Ethernet.py:
dedicated flag goes away, we have new individual flags for
rx thread and tx thread
dev/sinic.cc:
Virtualize sinic
- The io registers are replicated many times in memory, allowing the NIC to
differentiate among several virtual interfaces.
- On the TX side, this allows multiple CPUs to initiate transmits at the same
time without locking in the software. If a partial packet is transmitted,
then the state machine blocks waiting for that virtual interface to complete
its packet. Then the state machine will move on to the next virtual
interface. The commands are kept in fifo order.
- On the RX side, multiple partial transmits can be simultaneously done.
Though a packet does not deallocate its fifo space until all preceeding
packets in the fifo are deallocated. To enable multiple receives, it
is necessary for each virtual nic to keep its own information about its
progress through the state machine.
dev/sinic.hh:
Virtualize sinic
Receive state must be virtualized since we allow the receipt of packets in
parallel.
dev/sinicreg.hh:
Virtualize sinic
separate rx thread and tx thread
create a soft interrupt and add a command to trigger it.
pad out the reserved bits in the RxDone and TxDone regs
--HG--
extra : convert_revision :
c10bb23a46a89ffd1e08866c1f1621cb98069205
Nathan Binkert [Fri, 25 Nov 2005 16:22:41 +0000 (11:22 -0500)]
Add the capability to iterate through the packets in a pktfifo,
and to remove elements in the middle of the fifo. These elements
do not free space, they are just marked removed. Space is only
freed from the front of the fifo.
dev/etherpkt.cc:
serialize the current slack
dev/etherpkt.hh:
add "slack" to the ethernet packet. It is to be used by any fifo that
the packet is currently in to account for extra space that the packet
may be occupying due to the fifo organization.
--HG--
extra : convert_revision :
8e7c541ba316a9a76495c54cc5f707f8fc65b6d5
Nathan Binkert [Wed, 23 Nov 2005 02:50:34 +0000 (21:50 -0500)]
Major improvements in the graph output code. Mostly adding more
options, making existing options more visible and dealing with
holes in data better.
util/stats/barchart.py:
- move the options for BarChart to a base class ChartOptions so
they can be more easily set and copied.
- add an option to set the chart size (so you can adjust the aspect ratio)
- don't do the add_subplot thing, use add_axes directly so we can
affect the size of the figure itself to make room for the legend
- make the initial array bottom floating point so we don't lose precision
- add an option to set the limits on the y axis
- use a figure legend instead of an axes legend so we can put the legend
outside of the actual chart. Also add an option to set the fontsize of
the legend.
- initial hack at outputting csv files
util/stats/db.py:
don't print out an error when the run is missing from the database
just return None, the error will be print elsewhere.
util/stats/output.py:
- make StatOutput derive from ChartOptions so that it's easier to
set default chart options.
- make the various output functions (graph, display, etc.) take the
name of the data as a parameter instead of making it a parameter to
__init__. This allows me to create the StatOutput object with
generic parameters while still being able to specialize the name
after the fact
- add support for graph_group and graph_bars to be applied to multiple
configuration groups. This results in a cross product of the groups
to be generated and used.
- flush the html file output as we go so that we can load the file
while graphs are still being generated.
- make the proxy a parameter to the graph function so the proper system's
data can be graphed
- for any groups or bars that are completely missing, remove them from
the graph. This way, if we decide not to do a set of runs, there won't
be holes in the data.
- output eps and ps by default in addition to the png.
util/stats/profile.py:
- clean up the data structures that are used to store the function
profile information and try our best to avoid keeping extra data
around that isn't used.
- make get() return None if a job is missing so we know it was
missing rather than the all zeroes thing.
- make the function profile categorization stuff total up to 100%
- Fixup the x-axis and y-axis labels.
- fix the dot file output stuff.
util/stats/stats.py:
support the new options stuff for StatOutput
--HG--
extra : convert_revision :
fae35df8c57a36257ea93bc3e0a0e617edc46bb7
Nathan Binkert [Wed, 23 Nov 2005 02:20:36 +0000 (21:20 -0500)]
Change the set of statistics that are generated when specifying "all"
--HG--
extra : convert_revision :
8b803b1b3bbec0b35b6805593b0dd598e5b519cf
Nathan Binkert [Wed, 23 Nov 2005 02:18:11 +0000 (21:18 -0500)]
More changes from cpus named fullX to runX
--HG--
extra : convert_revision :
e3c117dc5751be13bd4b014a7fa6df0debfb48f0
Nathan Binkert [Wed, 23 Nov 2005 02:08:47 +0000 (21:08 -0500)]
Fix the system clock at 1THz making 1 simulation tick = 1 ps
--HG--
extra : convert_revision :
a4707af5f8dc193fbecfb602701b1170c32ae3e3
Nathan Binkert [Wed, 23 Nov 2005 02:05:02 +0000 (21:05 -0500)]
make the NUMCPUS parameter always refer to the total number of cpus
on the test system.
add an option for pio_delay_write to run.py
util/stats/stats.py:
full0 -> run0 due to run.py change
sim_ticks doesn't make sense with tick = ps, so use
one of the cpu's numCycles paramter
--HG--
extra : convert_revision :
db9dbe014549d823edc10395f5241db5e907df01
Nathan Binkert [Tue, 22 Nov 2005 18:36:30 +0000 (13:36 -0500)]
Make sure that the aiobench client has enough memory.
increase from 128MB to 512MB
--HG--
extra : convert_revision :
7b12febff200083aa0adbcaba612bc9e677ebe07
Nathan Binkert [Tue, 22 Nov 2005 18:33:28 +0000 (13:33 -0500)]
Clean up the newly updated iscsi-client script
configs/boot/iscsi-client.rcS:
Clean up the newly updated iscsi-client script.
Reduce the writeback period so writes occur more frequently.
--HG--
extra : convert_revision :
21c84f781c6537b28c753291561d23c2d0144627
Kevin Lim [Tue, 22 Nov 2005 17:08:08 +0000 (12:08 -0500)]
Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). It provides support for more syscalls in syscall emulation mode.
arch/alpha/alpha_linux_process.cc:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi).
--HG--
extra : convert_revision :
37fbc78a927110b7798343afd2c5f37a269e42b4
Nathan Binkert [Tue, 22 Nov 2005 05:17:05 +0000 (00:17 -0500)]
add the cpu number of the request to various panic and trace
output for sinic
dev/sinic.cc:
add the cpu number of the request to various panic and trace
output
--HG--
extra : convert_revision :
e778a5c925e194652bec47af678488acf48c1ae0
Nathan Binkert [Tue, 22 Nov 2005 04:43:15 +0000 (23:43 -0500)]
add support for delaying pio writes until the cache access occurs
dev/ns_gige.cc:
add support for delaying pio writes until the cache access occurs
the only write we delay are for CR_TXE and CR_RXE
dev/sinic.cc:
dev/sinic.hh:
the txPioRequest and rxPioRequest things were more or less bogus
add support for delaying pio writes until the cache access occurs
dev/sinicreg.hh:
Add delay_read and delay_write to the register information struct
for now, we won't delay any reads, and we'll delay the writes that
initiate DMAs
python/m5/objects/Ethernet.py:
add a parameter to delay pio writes until the timing access
actually occurs.
--HG--
extra : convert_revision :
79b18ea2812c2935d7d5ea6eff1f55265114d05d
Nathan Binkert [Tue, 22 Nov 2005 03:25:30 +0000 (22:25 -0500)]
expose an environment variable for setting the linux image.
--HG--
extra : convert_revision :
32be8bef3b594d29dae717857a96ff5bdd6e9ffa
Nathan Binkert [Tue, 22 Nov 2005 03:24:32 +0000 (22:24 -0500)]
change profile environment configurations.
--HG--
extra : convert_revision :
f05fb5e50a439da9db96b04547f58ed8cd9f1aa6
Nathan Binkert [Tue, 22 Nov 2005 03:22:40 +0000 (22:22 -0500)]
Rearrange the memory configurations.
--HG--
extra : convert_revision :
bab5b13e335f11ecb2dafd3371faf2351fbe9f10
Nathan Binkert [Tue, 22 Nov 2005 02:52:04 +0000 (21:52 -0500)]
have sinic use the new readBar/writeBar stuff that's in the
pci device base class
dev/sinic.cc:
dev/sinic.hh:
use the new readBar/writeBar stuff that's in the pci device
base class
--HG--
extra : convert_revision :
8a0b2bde3cc13597785d6ea75d6e6811680bb01b
Nathan Binkert [Mon, 21 Nov 2005 05:38:53 +0000 (00:38 -0500)]
Add a bunch of functions to manage the BAR addresses. This
makes it easier to implement PCI device models.
dev/pcidev.cc:
default implementations for read/write and readBarX/writeBarX functions
--HG--
extra : convert_revision :
bbe2e2a2a506e2dd94d98f8e0feaefef96380be9
Nathan Binkert [Mon, 21 Nov 2005 05:22:29 +0000 (00:22 -0500)]
Actually, you should'nt do math on Clock in the config files.
python/m5/config.py:
Clock should not be a NumericParamValue since math on it can be
ambiguous. (As the comment clearly says.)
--HG--
extra : convert_revision :
74f8ec846c6a980d92e0bf4bf1c7fac73a75b923
Nathan Binkert [Mon, 21 Nov 2005 05:02:39 +0000 (00:02 -0500)]
BARs now of type MemorySize32
python/m5/config.py:
Add MemorySize32 (a 32-bit value specified in bytes)
--HG--
extra : convert_revision :
bfeee501f7ff1aa2567a3682da129a5770cb7bd2
Nathan Binkert [Mon, 21 Nov 2005 04:57:26 +0000 (23:57 -0500)]
Make it so one can do math with a Clock type in the config files
python/m5/config.py:
Make Clock a NumericParamValue so you can do math with it
--HG--
extra : convert_revision :
7fa548d1a23c604a31d3ecae3853949b064a1830
Nathan Binkert [Mon, 21 Nov 2005 04:45:45 +0000 (23:45 -0500)]
Allow long as a multiplier in the python config
python/m5/config.py:
Allow long as a multiplier
--HG--
extra : convert_revision :
bdc45e9afc27bb7b0f2cd6aacf92758601b95ff8
Nathan Binkert [Mon, 21 Nov 2005 04:42:53 +0000 (23:42 -0500)]
Deal with divide by zero in the python stats stuff.
util/stats/info.py:
If an operation results in a divide by zero, just return None
--HG--
extra : convert_revision :
19cb4319734a3a9cf02bb1966fed42eb0c8a8ade
Nathan Binkert [Mon, 21 Nov 2005 04:30:13 +0000 (23:30 -0500)]
implement __str__ for all of the proxy stuff so we can
actually print out a statistic.
--HG--
extra : convert_revision :
043be6bd729e74d2220c5ae8aa1fc739aa247715
Nathan Binkert [Sun, 20 Nov 2005 23:49:54 +0000 (18:49 -0500)]
fixup benchmark names a bit
--HG--
extra : convert_revision :
5978318331eb4e1b7fae037a32086a2e0a554f2e
Nathan Binkert [Sun, 20 Nov 2005 23:42:12 +0000 (18:42 -0500)]
Serialize the symbol tables
base/loader/symtab.cc:
Add support for clearing out the symbol table
Add support for serializing the symbol table (clear on unserialize)
Don't allow empty symbols to be entered into the table
base/loader/symtab.hh:
Add support for clearing out the symbol table
Add support for serializing the symbol table
sim/system.cc:
Serialize the kernel, console, and palcode symbol tables so that
we can capture any dynamic symbols that are added and so that we
don't have to have the same kernel binary around to get the
symbols right
--HG--
extra : convert_revision :
779888c88aa530f3adcd37dc7600a335951d05f7
Nathan Binkert [Sun, 20 Nov 2005 23:39:31 +0000 (18:39 -0500)]
get rid of allSymtab
if we want something like allSymtab, we should create a symbol
table proxy class
--HG--
extra : convert_revision :
20ca551a693b0d6495c018cac8afd63af33f16da
Nathan Binkert [Sun, 20 Nov 2005 23:33:59 +0000 (18:33 -0500)]
switch all profiling stuff to the kernelSymtab since allSymtab
is going away
--HG--
extra : convert_revision :
405ec55615474d0812ed780f26fd4df98e5ec6f5
Nathan Binkert [Sun, 20 Nov 2005 23:33:17 +0000 (18:33 -0500)]
clear the function profile on a stats reset
cpu/profile.hh:
Add a placeholder for a reset callback
--HG--
extra : convert_revision :
7fa13e5d04daf1cf93eb35c8fdaf67a40ce3ef73
Nathan Binkert [Sun, 20 Nov 2005 23:32:22 +0000 (18:32 -0500)]
use Counter to avoid overflowing an int
cpu/profile.hh:
use Counter for the profile count to avoid overflow
--HG--
extra : convert_revision :
bb603b7d139d1736dced26ef0ce1f93ddea30de7
Nathan Binkert [Sun, 20 Nov 2005 23:25:43 +0000 (18:25 -0500)]
Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/head
--HG--
extra : convert_revision :
941e76e4645a4a18c04409250f3257e590184871
Nathan Binkert [Sun, 20 Nov 2005 23:25:31 +0000 (18:25 -0500)]
better placement of database commits
better mysql error messages
base/stats/mysql.cc:
better placement of commit() calls to avoid failing transactions
due to what I think are timeouts.
print out the mysql error with every panic
--HG--
extra : convert_revision :
bfc5ae172bcff733461adceffe2b381601839e82
Nathan Binkert [Sun, 20 Nov 2005 22:55:11 +0000 (17:55 -0500)]
For SimpleCPU profiling code, only update the exec context's
profileNode if we got a new one
cpu/simple/cpu.cc:
Only update the exec context's profileNode if we got a new one
--HG--
extra : convert_revision :
a16a7410070b0d811032dc4b86b1368df913b2be
Nathan Binkert [Sun, 20 Nov 2005 22:44:58 +0000 (17:44 -0500)]
Cleanup the StackTrace interfaces and profile interfaces so they
are more efficient and reduce the number of new/delete calls
arch/alpha/stacktrace.cc:
- Change the StackTrace code so that the class can more easily be
cleaned out and reused to avoid extra allocations.
- Allow trace() to accept a static instruction pointer so it can
determine if the instruction is worth tracing. This is moved from
the CPU.
- provide constants for special meaning PCs (user, console, unknown),
instead of magic numbers
- switch to using kernelSymtab instead of allSymtab which will be
going away
- if the stack adjustment doesn't make any sense, exit and push
unknown so we don't get into an infinite loop or record garbage.
- check to see if we've made too many iterations through the stack
and panic to avoid an infinite loop
arch/alpha/stacktrace.hh:
- Change the StackTrace code so that the class can more easily be
cleaned out and reused to avoid extra allocations.
- Allow trace() to accept a static instruction pointer so it can
determine if the instruction is worth tracing. This is moved from
the CPU.
- provide constants for special meaning PCs (user, console, unknown),
instead of magic numbers
cpu/base.cc:
only clear the profile if we have one
include profile.hh here since base.hh doesn't do it anymore
cpu/base.hh:
no need to include cpu/profile.hh here
cpu/profile.cc:
use ProfileNode pointers instead of objects in the ChildList
Consume a vector of addresses since that's really all we
care about.
cpu/profile.hh:
Keep pointers to ProfileNodes to reduce the size of these structures
keep a StackTrace around so that we may reuse it.
provide consume functions that use the new StackTrace trace interface
one consume function is inline and tries to fastpath the no trace
condition, it calls the outlined consume function if a trace is generated.
cpu/simple/cpu.cc:
include cpu/profile.hh here since base.hh no longer does
use the new FunctionProfile::consume interface
(which contains the tracing functions)
--HG--
extra : convert_revision :
5a1d9265289a75f67a497b322926be1f8c2d8eb3
Nathan Binkert [Sun, 20 Nov 2005 22:28:57 +0000 (17:28 -0500)]
remove duplicate profile event code that is already in
the BaseCPU class
--HG--
extra : convert_revision :
fb400e243377840006a36c3274115006f8cd2e3d
Nathan Binkert [Sun, 20 Nov 2005 21:57:53 +0000 (16:57 -0500)]
io_bus is split out into pio_bus and dma_bus so that any device
can specify either independently.
python/m5/objects/Device.py:
io_bus is split out into pio_bus and dma_bus so that any device
can specify either independently.
dma_bus defaults to point to whatever pio_bus uses.
--HG--
extra : convert_revision :
d35d5374d0bf592f6b5df465c05203577b8b8763
Ali Saidi [Sat, 19 Nov 2005 06:25:34 +0000 (01:25 -0500)]
add symbol opcode
--HG--
extra : convert_revision :
e050d2c4fec33c41ac21b6f17b3be329b9521429
Ali Saidi [Fri, 11 Nov 2005 23:43:09 +0000 (18:43 -0500)]
Add checktrace.sh. Checks all the ethertrace files in */ethertrace
for retransmissions, out of order packets, lost packets, duplicate
ack, window full, etc. Easy way to see if you have a problem with a
run.
--HG--
extra : convert_revision :
95d8e8650b0fb3d120df107cd5281c56fefc3a1d
Ali Saidi [Fri, 11 Nov 2005 23:41:45 +0000 (18:41 -0500)]
Update random come to always have explict min/max
--HG--
extra : convert_revision :
a2d1f6f8aa1df24ea524792f687f4d3ee31101f0
Steve Reinhardt [Fri, 11 Nov 2005 02:08:33 +0000 (21:08 -0500)]
Actually free Process fd_map entries when a file is closed...
amazingly we never did that before. Caused us to run out of
file descriptors in twolf.
sim/process.cc:
Add free_fd() method to free closed target fd in simulator fd map.
Rename open_fd() to alloc_fd() for symmetry with free_fd().
sim/process.hh:
Add free_fd() method to free closed target fd in simulator fd map.
Rename open_fd() to alloc_fd() for symmetry with free_fd().
Crank up MAX_FD while we're at it.
sim/syscall_emul.cc:
Call free_fd() on process when target closes a file.
sim/syscall_emul.hh:
Process open_fd() renamed to alloc_fd().
--HG--
extra : convert_revision :
d780f4ccfd5a0989230b0afbdbd276212b87550c
Steve Reinhardt [Fri, 11 Nov 2005 02:05:31 +0000 (21:05 -0500)]
Syscall DPRINTF and warning cleanup.
base/trace.hh:
Need std:: on DPRINTFR reference to string class.
base/traceflags.py:
Remove SyscallWarnings trace flag... we should always print warnings
so nothing undesirable goes unnoticed. Replaced with (currently unused)
Syscall flag.
sim/syscall_emul.cc:
Change SyscallWarning DPRINTFs into warn() calls.
Uncomment SyscallVerbose DPRINTFs.
sim/syscall_emul.hh:
Change SyscallWarning DPRINTFs into warn() calls.
Call fatal() instead of ad-hoc termination.
--HG--
extra : convert_revision :
dc6c2ce3691a129f697b6a6ae5d889e2dbaab228
Steve Reinhardt [Fri, 11 Nov 2005 01:30:04 +0000 (20:30 -0500)]
Fix Lisa's CPU trace system check for syscall emulation.
cpu/exetrace.cc:
CPU system name check doesn't work under syscall emulation, so don't
compile it in.
--HG--
extra : convert_revision :
2c128bf759877222107652fd86323be6dc71a34c
Lisa Hsu [Wed, 9 Nov 2005 21:42:36 +0000 (16:42 -0500)]
just commit what i need for dumping traces compatible with intel's casper
--HG--
extra : convert_revision :
a0c4a68a576fa771fd553eaedd6a07255a04dca2
Lisa Hsu [Wed, 9 Nov 2005 21:40:51 +0000 (16:40 -0500)]
Merge zizzer:/bk/m5
into zed.eecs.umich.edu:/z/hsul/work/m5/intel
--HG--
extra : convert_revision :
729be2b6686f46f70440d258383180078c6b046c
Lisa Hsu [Wed, 9 Nov 2005 21:40:27 +0000 (16:40 -0500)]
new rcS file for open-iscsi rather than the old linux-iscsi
--HG--
extra : convert_revision :
0c12033b38e32f8b2ea69b52813dfed294ec5de4
Steve Reinhardt [Wed, 9 Nov 2005 14:52:07 +0000 (09:52 -0500)]
A couple of FP-related fixes (prompted by Adam having trouble
running SPEC FP codes).
arch/alpha/isa_desc:
Don't warn about non-standard trapping modes more than
once per static instruction. (Had the flag to suppress
these but forgot to check it!)
build/SConstruct:
Add USE_SSE2 option to enable compiling w/SSE2 (important
for getting IEEE-compliant FP on x86).
--HG--
extra : convert_revision :
eac69efb28cce7b48035480d8b7cb004782969f4
Steve Reinhardt [Thu, 3 Nov 2005 18:14:28 +0000 (13:14 -0500)]
Qdo should kill its subordinate qsub more aggressively
on a timeout.
util/qdo:
Qsub needs a kill -9 to die; kill -15 doesn't cut it.
--HG--
extra : convert_revision :
7696b3ecf1a084b68dd909b138ab6aa1b380b5a7
Steve Reinhardt [Thu, 3 Nov 2005 18:13:31 +0000 (13:13 -0500)]
Check for MySQL 4.1 or newer only
(3.23 does not work as we supposed it did).
--HG--
extra : convert_revision :
d87dbebe0b2387fde1f8aba52625d115d31baf1a
Ali Saidi [Wed, 2 Nov 2005 20:37:47 +0000 (15:37 -0500)]
allow conversion floats -> long so that 100e9 and such work as Ticks
--HG--
extra : convert_revision :
23511baca6153bb3aa9c57be8818ad1b65f02a71
Ali Saidi [Wed, 2 Nov 2005 20:29:08 +0000 (15:29 -0500)]
Don't call Random.uniform() unnecessarily
--HG--
extra : convert_revision :
82b092391f7c866f33ddb028070181038bdce0f8
Ali Saidi [Wed, 2 Nov 2005 20:23:21 +0000 (15:23 -0500)]
I left a printf in on accident.
--HG--
extra : convert_revision :
5a5c0a8c28153f4cf4c3dbebd8f75096e4c4ea94
Ali Saidi [Wed, 2 Nov 2005 20:22:09 +0000 (15:22 -0500)]
Changes to integer types broke this... Oops.
--HG--
extra : convert_revision :
e0ed251f4d75b5bf313a72772afed668fb7e38d2
Ali Saidi [Wed, 2 Nov 2005 19:56:18 +0000 (14:56 -0500)]
Merge zizzer:/bk/m5
into zeep.eecs.umich.edu:/z/saidi/work/m5
--HG--
extra : convert_revision :
3cc23080d19cc464a8ba7c1c93b6e5d45af7d463
Ali Saidi [Wed, 2 Nov 2005 19:55:05 +0000 (14:55 -0500)]
Change the output of stability info a little bit
--HG--
extra : convert_revision :
bc467a40593234a1e3b694a741b4a7c2154a95ea
Ali Saidi [Wed, 2 Nov 2005 19:54:21 +0000 (14:54 -0500)]
add a few more options to the help menu
--HG--
extra : convert_revision :
b2481bedac786e4a6bb0d577954242d7f4c144a0
Ali Saidi [Wed, 2 Nov 2005 19:48:49 +0000 (14:48 -0500)]
Don't bother putting distributions in the DB, they aren't really
supported.
--HG--
extra : convert_revision :
a732fa169962632937ace368430cb3733c0e3cc6
Ali Saidi [Wed, 2 Nov 2005 19:47:37 +0000 (14:47 -0500)]
Add ability to slightly perturb latency of ethernet/memory
base/random.cc:
Change normal random function to Xrand48 so we have one source of
randomness for everything.
base/random.hh:
Add uniform distribution ability to random functions
dev/etherlink.cc:
dev/etherlink.hh:
Add ability to slightly perturb latency of ethernet
--HG--
extra : convert_revision :
f7f856761fd525c233ae2a6d993b1fd702b488f7
Ali Saidi [Wed, 2 Nov 2005 19:45:35 +0000 (14:45 -0500)]
Fix bug where simulation terminates same cycle as last stat dump causing a duplicate row in db
--HG--
extra : convert_revision :
45877c6feeaddf921eb0f4764246bf66e1705a1d
Ali Saidi [Wed, 2 Nov 2005 19:44:42 +0000 (14:44 -0500)]
Add Mem/Ethernet latency variability parameter
python/m5/objects/Ethernet.py:
Add Latency Variability Parameter
--HG--
extra : convert_revision :
db5431cccffea8c7247d0f72e4770d4d58bd25aa
Ali Saidi [Wed, 2 Nov 2005 19:43:35 +0000 (14:43 -0500)]
Update monet configuration files
--HG--
extra : convert_revision :
0cdfa6c5d57b7607c97b2ed08dff88e1b961718c
Nathan Binkert [Wed, 2 Nov 2005 17:19:08 +0000 (12:19 -0500)]
Simple updates to pbs and send.py
util/pbs/pbs.py:
Change the default so that we do not get mail under any circumstances
from pbs.
util/pbs/send.py:
Add a -n flag to send.py that causes the Base directory to *not*
sync with the Link directory
--HG--
extra : convert_revision :
6e872153b6b2c34b61ec2ddbf3e5536876f4b43b
Nathan Binkert [Wed, 2 Nov 2005 17:16:19 +0000 (12:16 -0500)]
silence g++ warning
--HG--
extra : convert_revision :
27226b774e0f0273e238d062241f4581c9bb1639
Nathan Binkert [Wed, 2 Nov 2005 17:14:26 +0000 (12:14 -0500)]
__init__ should not return anything
--HG--
extra : convert_revision :
fb46eee741f4899d76bcf927523fa151d002decf
Steve Reinhardt [Wed, 2 Nov 2005 15:20:39 +0000 (10:20 -0500)]
Make vector params interact with proxies properly.
--HG--
extra : convert_revision :
a4067f07d71d2adc1ccbf4512a43ceee7b5cc3de
Steve Reinhardt [Tue, 1 Nov 2005 19:11:54 +0000 (14:11 -0500)]
Allow math on CheckedInt-derived ParamValue classes w/o
losing type information.
python/m5/config.py:
Allow math on CheckedInt-derived ParamValue classes w/o
losing type information.
- Make CheckedInt derive from NumericParamValue, and *not*
multiply inherit from long
- Move CheckedInt bounds check to _check() hook so we can
call it when value is updated (not just in constructor)
python/m5/convert.py:
- make toInteger() return a long, making toLong() unnecessary
- toMemorySize should return long rather than float
--HG--
extra : convert_revision :
c1cf5e15b9ff35d9b573dd545e076fe68afef989
Steve Reinhardt [Tue, 1 Nov 2005 03:41:14 +0000 (22:41 -0500)]
Minor fix for test/genini.py.
test/genini.py:
Use m5execfile to execute .py files so that sys.path gets handled correctly.
--HG--
extra : convert_revision :
8d8c90a7f40d51c95ba0f43bb9f6d7b2ee49f16e
Lisa Hsu [Thu, 27 Oct 2005 03:19:32 +0000 (23:19 -0400)]
Merge zizzer:/bk/m5
into zed.eecs.umich.edu:/z/hsul/work/m5/clean
--HG--
extra : convert_revision :
8935c26cbf6cafd9c0f76783605c137f5a74e897
Lisa Hsu [Thu, 27 Oct 2005 03:19:21 +0000 (23:19 -0400)]
add in the files to the SConscript for split caches
--HG--
extra : convert_revision :
aba28067abbb515eaa20a4d3303db19ac077777f
Steve Reinhardt [Mon, 24 Oct 2005 02:18:50 +0000 (22:18 -0400)]
Fix qdo job name setting.
util/qdo:
Don't automatically set qsub job name, as this causes qsub to fail
if the job name is too long or otherwise unsuitable.
--HG--
extra : convert_revision :
5ba48767574efaaff2c328549adee295780f7f70
Nathan Binkert [Sat, 22 Oct 2005 00:28:21 +0000 (20:28 -0400)]
Major changes to sinic device model. Rearrage read/write, better
interrupts.
dev/sinic.cc:
- The prepareRead function sets all the variables in the register
file that depend on various state bits that change on the fly.
Includes RxDone, RxWait, TxDone, and TxWait
- Use the new register information accessor functions to grab
validity and size information for the read and write functions
- read all registers directly from the register space by offset
and size, not by actual name (less code)
- The side effect of reading the interrupt status (clearing it) now
happens outside the actual chunk of code where the value is loaded.
- Add an iprRead function for when we may want speculative access
to device registers through an ipr or special instruction.
- When RxData or TxData are written, their busy flag is set to
indicate that they have an outstanding transaction.
- The RxHigh and TxLow interrupts are special, they only interrupt
if the rxEmpty or txFull limits were hit
- Move reset to the command register
- Update more registers on reset, clear rxEmpty and txFull
- Data dumps only happen if EthernetData trace flag set
- When a DMA completes, kick the other engine if it was waiting
- implement all of the new interrupts
- serialize the new stuff
dev/sinic.hh:
- Put all registers with their proper size and alignment into
the regs struct so that we can copy multiple at a time.
- Provide accessor functions for accessing the registers with
different sizes.
- Flags to track when the rx fifo hit empty and the tx fifo became
full. These flags are used to determine what to do when below
the watermarks, and are reset when crossing the watermark.
- the txDmaEvent should actually trigger the txDmaDone function
- Add an iprRead function for when we may want speculative access
to device registers through an ipr or special instruction.
- The prepareRead function sets all the variables in the register
file that depend on various state bits that change on the fly.
- add rx_max_intr and dedicated (for dedicated thread) config params
dev/sinicreg.hh:
Add some new registers: Command, RxMaxIntr, RxFifoSize, TxFifoSize,
rename XxThreshold to XxFifoMark
Move Reset to the Command register
Add Thread to the Config register
New interrupts, better names
More info in RxDone and TxDone
Easier access to information on each register (size, read, write, name)
python/m5/objects/Ethernet.py:
Both sinic and nsgige have the dedicated thread
Add a parameter to configure the maximum number for receive
packets per interrupt
--HG--
extra : convert_revision :
407c5a993b6fb17326b4c623ee5d4b25fd69ac80
Nathan Binkert [Fri, 21 Oct 2005 23:38:02 +0000 (19:38 -0400)]
missed another pio interface name
dev/sinic.cc:
better name for both pio interfaces
--HG--
extra : convert_revision :
f7821c9c28b0095b366177b4c48a4ec14c3c89ee
Nathan Binkert [Fri, 21 Oct 2005 23:35:49 +0000 (19:35 -0400)]
better naming for pio interfaces
dev/ns_gige.cc:
why call it pio2 when there's only one?
dev/sinic.cc:
Give the interface a different name for stats/output purposes
--HG--
extra : convert_revision :
895732f1a7e4c53e058a42b51320c2115dc05638
Nathan Binkert [Fri, 21 Oct 2005 23:18:28 +0000 (19:18 -0400)]
Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/head
--HG--
extra : convert_revision :
35075f75f7e31e0500b964ec45db3019eea06c76
Nathan Binkert [Fri, 21 Oct 2005 23:18:19 +0000 (19:18 -0400)]
It's not necessary for a device to call recvDone, that
automatically happens in the interface after the packet
is delivered to the device.
--HG--
extra : convert_revision :
07890c4c5ce83fe709ce203f66c330d7cd631235
Nathan Binkert [Fri, 21 Oct 2005 21:28:47 +0000 (17:28 -0400)]
Fix a couple of bug in the values() vector accessor
util/stats/db.py:
need to import the values function
util/stats/info.py:
it's just run
--HG--
extra : convert_revision :
3cb67d8112a1a5fdf761b73732859a71f585bd1f
Nathan Binkert [Fri, 21 Oct 2005 20:32:48 +0000 (16:32 -0400)]
Minor updates to the profile code.
util/stats/profile.py:
Pass around the number of symbols limit
deal with categorization a bit better.
--HG--
extra : convert_revision :
908410e296efd4514f2dfc0eb9e6e42834585560
Nathan Binkert [Fri, 21 Oct 2005 20:29:27 +0000 (16:29 -0400)]
Merge zizzer.eecs.umich.edu:/bk/m5
into zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/work
--HG--
extra : convert_revision :
8ef6ed2d770d45ac11d44a449e2c4f74ef656d87
Nathan Binkert [Fri, 21 Oct 2005 20:29:13 +0000 (16:29 -0400)]
Major cleanup of the statistics handling code
util/stats/db.py:
Build a result object as the result of a query operation so it is
easier to populate and contains a bit more information than just
a big dict. Also change the next level data into a matrix instead
of a dict of dicts.
Move the "get" function into the Database object. (The get function
is used by the output parsing function as the interface for accessing
backend storage, same interface for profile stuff.)
Change the old get variable to the method variable, it describes how
the get works, (whether using sum, stdev, etc.)
util/stats/display.py:
Clean up the display functions, mostly formatting.
Handle values the way they should be now.
util/stats/info.py:
Totally re-work how values are accessed from their data store.
Access individual values on demand instead of calculating everything
and passing up a huge result from the bottom.
This impacts the way that proxying works, and in general, everything
is now esentially a proxy for the lower level database. Provide new
operators: unproxy, scalar, vector, value, values, total, and len which
retrieve the proper result from the object they are called on.
Move the ProxyGroup stuff (proxies of proxies!) here from the now gone
proxy.py file and integrate the shared parts of the code. The ProxyGroup
stuff allows you to write formulas without specifying the statistics
until evaluation time.
Get rid of global variables!
util/stats/output.py:
Move the dbinfo stuff into the Database itself. Each source should
have it's own get() function for accessing it's data.
This get() function behaves a bit differently than before in that it
can return vectors as well, deal with these vectors and with no result
conditions better.
util/stats/stats.py:
the info module no longer has the source global variable, just
create the database source and pass it around as necessary
--HG--
extra : convert_revision :
8e5aa228e5d3ae8068ef9c40f65b3a2f9e7c0cff
Steve Reinhardt [Thu, 20 Oct 2005 18:14:59 +0000 (14:14 -0400)]
Minor tweak to isa_parser.
arch/isa_parser.py:
Derive Stack class directly from list.
--HG--
extra : convert_revision :
4f09db4baec0bb2144d71ffad5ce53651e8c3ac6
Steve Reinhardt [Thu, 20 Oct 2005 17:25:43 +0000 (13:25 -0400)]
Add qdo options for setting the PBS job name and destination queue.
util/qdo:
Add options for setting the PBS job name and destination queue.
--HG--
extra : convert_revision :
dcb46a03b8fd7a93e2ba656a9e5c806e250f5ac9
Nathan Binkert [Wed, 19 Oct 2005 06:10:24 +0000 (02:10 -0400)]
fix pbs dependency stuff
util/pbs/pbs.py:
after -> afterok
--HG--
extra : convert_revision :
ee0af716bcc0f83c4103632bd277a5680b0d2c23
Nathan Binkert [Wed, 19 Oct 2005 06:04:03 +0000 (02:04 -0400)]
provide a default jobfilename if a jobname is given
--HG--
extra : convert_revision :
c5659b9675ccd2ba71f5ffa38aff5d397d6ed1c3
Ali Saidi [Wed, 19 Oct 2005 04:39:48 +0000 (00:39 -0400)]
Merge zizzer:/bk/m5
into zeep.eecs.umich.edu:/z/saidi/work/m5
--HG--
extra : convert_revision :
2e093e94bee380dd6acc9c245b5bd46df579e010
Ali Saidi [Wed, 19 Oct 2005 04:39:18 +0000 (00:39 -0400)]
Add multiplier for instruction window size to monet configuration
--HG--
extra : convert_revision :
848a5ac37eb5d10e115f5ec89d688d30f2f9bd30