Commit graph

2731 commits

Author SHA1 Message Date
Nathan Binkert
9e8151f392 use Counter to avoid overflowing an int
cpu/profile.hh:
    use Counter for the profile count to avoid overflow

--HG--
extra : convert_revision : bb603b7d139d1736dced26ef0ce1f93ddea30de7
2005-11-20 18:32:22 -05:00
Nathan Binkert
441c43d36c Merge zizzer.eecs.umich.edu:/bk/m5
into  ziff.eecs.umich.edu:/z/binkertn/research/m5/head

--HG--
extra : convert_revision : 941e76e4645a4a18c04409250f3257e590184871
2005-11-20 18:25:43 -05:00
Nathan Binkert
0b1ed9c3a9 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
2005-11-20 18:25:31 -05:00
Nathan Binkert
6e6422ab22 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
2005-11-20 17:55:11 -05:00
Nathan Binkert
0dcb288365 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
2005-11-20 17:44:58 -05:00
Nathan Binkert
f66ba90640 remove duplicate profile event code that is already in
the BaseCPU class

--HG--
extra : convert_revision : fb400e243377840006a36c3274115006f8cd2e3d
2005-11-20 17:28:57 -05:00
Nathan Binkert
12d903a650 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
2005-11-20 16:57:53 -05:00
Ali Saidi
ccae5838fd add symbol opcode
--HG--
extra : convert_revision : e050d2c4fec33c41ac21b6f17b3be329b9521429
2005-11-19 01:25:34 -05:00
Ali Saidi
746841856c 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
2005-11-11 18:43:09 -05:00
Ali Saidi
60480de7c3 Update random come to always have explict min/max
--HG--
extra : convert_revision : a2d1f6f8aa1df24ea524792f687f4d3ee31101f0
2005-11-11 18:41:45 -05:00
Steve Reinhardt
4410876773 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
2005-11-10 21:08:33 -05:00
Steve Reinhardt
99bf6ed084 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
2005-11-10 21:05:31 -05:00
Steve Reinhardt
d727c2b6cf 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
2005-11-10 20:30:04 -05:00
Lisa Hsu
3532a661c5 just commit what i need for dumping traces compatible with intel's casper
--HG--
extra : convert_revision : a0c4a68a576fa771fd553eaedd6a07255a04dca2
2005-11-09 16:42:36 -05:00
Lisa Hsu
6e192b5704 Merge zizzer:/bk/m5
into  zed.eecs.umich.edu:/z/hsul/work/m5/intel

--HG--
extra : convert_revision : 729be2b6686f46f70440d258383180078c6b046c
2005-11-09 16:40:51 -05:00
Lisa Hsu
b018a01f0c new rcS file for open-iscsi rather than the old linux-iscsi
--HG--
extra : convert_revision : 0c12033b38e32f8b2ea69b52813dfed294ec5de4
2005-11-09 16:40:27 -05:00
Steve Reinhardt
e701cf48d9 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
2005-11-09 09:52:07 -05:00
Steve Reinhardt
902e27e692 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
2005-11-03 13:14:28 -05:00
Steve Reinhardt
d9f94e966b Check for MySQL 4.1 or newer only
(3.23 does not work as we supposed it did).

--HG--
extra : convert_revision : d87dbebe0b2387fde1f8aba52625d115d31baf1a
2005-11-03 13:13:31 -05:00
Ali Saidi
cb929af345 allow conversion floats -> long so that 100e9 and such work as Ticks
--HG--
extra : convert_revision : 23511baca6153bb3aa9c57be8818ad1b65f02a71
2005-11-02 15:37:47 -05:00
Ali Saidi
f0ee50c32f Don't call Random.uniform() unnecessarily
--HG--
extra : convert_revision : 82b092391f7c866f33ddb028070181038bdce0f8
2005-11-02 15:29:08 -05:00
Ali Saidi
36f134786f I left a printf in on accident.
--HG--
extra : convert_revision : 5a5c0a8c28153f4cf4c3dbebd8f75096e4c4ea94
2005-11-02 15:23:21 -05:00
Ali Saidi
d69bcc6492 Changes to integer types broke this... Oops.
--HG--
extra : convert_revision : e0ed251f4d75b5bf313a72772afed668fb7e38d2
2005-11-02 15:22:09 -05:00
Ali Saidi
3b66cb49ec Merge zizzer:/bk/m5
into  zeep.eecs.umich.edu:/z/saidi/work/m5

--HG--
extra : convert_revision : 3cc23080d19cc464a8ba7c1c93b6e5d45af7d463
2005-11-02 14:56:18 -05:00
Ali Saidi
0523736b96 Change the output of stability info a little bit
--HG--
extra : convert_revision : bc467a40593234a1e3b694a741b4a7c2154a95ea
2005-11-02 14:55:05 -05:00
Ali Saidi
4b6540c264 add a few more options to the help menu
--HG--
extra : convert_revision : b2481bedac786e4a6bb0d577954242d7f4c144a0
2005-11-02 14:54:21 -05:00
Ali Saidi
f36b854ca5 Don't bother putting distributions in the DB, they aren't really
supported.

--HG--
extra : convert_revision : a732fa169962632937ace368430cb3733c0e3cc6
2005-11-02 14:48:49 -05:00
Ali Saidi
07ef1170e0 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
2005-11-02 14:47:37 -05:00
Ali Saidi
0b3c27f149 Fix bug where simulation terminates same cycle as last stat dump causing a duplicate row in db
--HG--
extra : convert_revision : 45877c6feeaddf921eb0f4764246bf66e1705a1d
2005-11-02 14:45:35 -05:00
Ali Saidi
15ccd16fd8 Add Mem/Ethernet latency variability parameter
python/m5/objects/Ethernet.py:
    Add Latency Variability Parameter

--HG--
extra : convert_revision : db5431cccffea8c7247d0f72e4770d4d58bd25aa
2005-11-02 14:44:42 -05:00
Ali Saidi
2ab0bf8030 Update monet configuration files
--HG--
extra : convert_revision : 0cdfa6c5d57b7607c97b2ed08dff88e1b961718c
2005-11-02 14:43:35 -05:00
Nathan Binkert
a0829a7780 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
2005-11-02 12:19:08 -05:00
Nathan Binkert
51ac634b2d silence g++ warning
--HG--
extra : convert_revision : 27226b774e0f0273e238d062241f4581c9bb1639
2005-11-02 12:16:19 -05:00
Nathan Binkert
dd46db1cb9 __init__ should not return anything
--HG--
extra : convert_revision : fb46eee741f4899d76bcf927523fa151d002decf
2005-11-02 12:14:26 -05:00
Steve Reinhardt
d238b6be9d Make vector params interact with proxies properly.
--HG--
extra : convert_revision : a4067f07d71d2adc1ccbf4512a43ceee7b5cc3de
2005-11-02 10:20:39 -05:00
Steve Reinhardt
fb4f83809f 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
2005-11-01 14:11:54 -05:00
Steve Reinhardt
76843fc264 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
2005-10-31 22:41:14 -05:00
Lisa Hsu
f069f59231 Merge zizzer:/bk/m5
into  zed.eecs.umich.edu:/z/hsul/work/m5/clean

--HG--
extra : convert_revision : 8935c26cbf6cafd9c0f76783605c137f5a74e897
2005-10-26 23:19:32 -04:00
Lisa Hsu
5aa7172119 add in the files to the SConscript for split caches
--HG--
extra : convert_revision : aba28067abbb515eaa20a4d3303db19ac077777f
2005-10-26 23:19:21 -04:00
Steve Reinhardt
5540021d89 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
2005-10-23 22:18:50 -04:00
Nathan Binkert
b7b8ffa7b7 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
2005-10-21 20:28:21 -04:00
Nathan Binkert
ad2ff26c66 missed another pio interface name
dev/sinic.cc:
    better name for both pio interfaces

--HG--
extra : convert_revision : f7821c9c28b0095b366177b4c48a4ec14c3c89ee
2005-10-21 19:38:02 -04:00
Nathan Binkert
cf95624e92 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
2005-10-21 19:35:49 -04:00
Nathan Binkert
336ae93d3c Merge zizzer.eecs.umich.edu:/bk/m5
into  ziff.eecs.umich.edu:/z/binkertn/research/m5/head

--HG--
extra : convert_revision : 35075f75f7e31e0500b964ec45db3019eea06c76
2005-10-21 19:18:28 -04:00
Nathan Binkert
a51565f6ae 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
2005-10-21 19:18:19 -04:00
Nathan Binkert
13bf7e27ac 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
2005-10-21 17:28:47 -04:00
Nathan Binkert
12822443a5 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
2005-10-21 16:32:48 -04:00
Nathan Binkert
7ef8b40b3b Merge zizzer.eecs.umich.edu:/bk/m5
into  zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/work

--HG--
extra : convert_revision : 8ef6ed2d770d45ac11d44a449e2c4f74ef656d87
2005-10-21 16:29:27 -04:00
Nathan Binkert
e00237e49e 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
2005-10-21 16:29:13 -04:00
Steve Reinhardt
9a881c5a82 Minor tweak to isa_parser.
arch/isa_parser.py:
    Derive Stack class directly from list.

--HG--
extra : convert_revision : 4f09db4baec0bb2144d71ffad5ce53651e8c3ac6
2005-10-20 14:14:59 -04:00