Age | Commit message (Collapse) | Author |
|
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.
|
|
Simply cast the result to an int and life is good.
|
|
The code didn't set S_IFCHR in the st_mode
|
|
- 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.
|
|
readlink, umask, truncate, ftruncate, mkdir, and getcwd.
|
|
|
|
- insert warnings for deprecated m5ops
- reserve opcodes for Ali's stuff
- remove code for stuff that has been deprecated forever
- simplify m5op_alpha
|
|
|
|
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.
|
|
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.
|
|
will hopefullly allow it to fit in a cache line.
|
|
|
|
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.
|
|
|
|
|
|
|
|
them easily
--HG--
extra : convert_revision : 0f21829306eb68b332f03da410e6c341c8595bdd
|
|
--HG--
extra : convert_revision : cc0e62a5a337fd5bf332ad33bed61c0d505a936f
|
|
--HG--
extra : convert_revision : c7768d54d3f78685e93920069f5485083ca989c0
|
|
--HG--
extra : convert_revision : d811bf87d1a0bfc712942ecd3db1b48fc75257af
|
|
--HG--
extra : convert_revision : 7eadf9b7db8c0289480f771271b6efe2400006d4
|
|
--HG--
extra : convert_revision : 73b753e57c355b7e6873f047ddc8cb371c3136b7
|
|
file descriptors are reopened and the file pointer is in the same
place as when the checkpoint occured.
Signed-off by: Ali Saidi
--HG--
extra : convert_revision : d9d2cd388c9c02f60e1269d6845891c35f94fc47
|
|
--HG--
extra : convert_revision : 16fb8d7f3fbc5f8f1fc3ed34427c3d90a3125ad0
|
|
running hello world
--HG--
extra : convert_revision : 0944e7661934baddca1f1a895af0b75be2d96b10
|
|
--HG--
extra : convert_revision : d4e19afda897bc3797868b40469ce2ec7ec7d251
|
|
--HG--
extra : convert_revision : 40b62ef73d8e408cdd35b22147860f33533db57f
|
|
Also some bug fixes in MIPS ISA uncovered by g++ warnings
(Python string compares don't work in C++!).
--HG--
extra : convert_revision : b347cc0108f23890e9b73b3ee96059f0cea96cf6
|
|
file with them all.
--HG--
extra : convert_revision : 427f6bd8f050861ace3bc0d354a1afa5fc8319e6
|
|
--HG--
extra : convert_revision : 8b4927431189abc12201d13428a31b746cdb7dee
|
|
store the process, not the system.
--HG--
extra : convert_revision : 2421af11f62f60fb48faeee6bddadac2987df0e8
|
|
a checkpoint restore.
--HG--
extra : convert_revision : 03dcf3c088e57b7abab60efe700d947117888306
|
|
use a limit to check if access are on the stack.
--HG--
extra : convert_revision : af40a7acf424c4c4f62d0d76db1001a714ae0474
|
|
--HG--
extra : convert_revision : e17eb629071edd0dbcb09dd6a6a2220d2c83d33f
|
|
--HG--
extra : convert_revision : 790eddb793d4f5ba35813d001037bd8601bd76a5
|
|
--HG--
extra : convert_revision : 125d19ad3fa1847752e455fa248ca3b2a55a2067
|
|
Patch submitted by: Jonas Diemer [diemer (a) ida.ing.tu-bs.de]
--HG--
extra : convert_revision : 07638c05bb3f79aacce49457bbb8c17d0a3a7238
|
|
--HG--
extra : convert_revision : d763c0382f3cbcc9786510f5a8e521ec9d55eff1
|
|
SimObjects not yet updated:
- Process and subclasses
- BaseCPU and subclasses
The SimObject(const std::string &name) constructor was removed. Subclasses
that still rely on that behavior must call the parent initializer as
: SimObject(makeParams(name))
--HG--
extra : convert_revision : d6faddde76e7c3361ebdbd0a7b372a40941c12ed
|
|
--HG--
extra : convert_revision : b605a90a4a1071e39f49085a839fdcd175e09fdb
|
|
--HG--
extra : convert_revision : 7eb9a78480174f754f51f75983ee5a1b31280bd3
|
|
The page table now stores actual page table entries. It is still a templated
class here, but this will be corrected in the near future.
--HG--
extra : convert_revision : 804dcc6320414c2b3ab76a74a15295bd24e1d13d
|
|
--HG--
extra : convert_revision : a04a30df0b6246e877a1cea35420dbac94b506b1
|
|
This requires us to not use PyRun_SimpleString, but PyRun_String since the
latter actually returns a result
--HG--
extra : convert_revision : 3e3916ddd7eef9957569d8e72e73ba4c3160ce20
|
|
Add support for declaring SimObjects to swig so their members can be wrapped.
Make sim_object.i only contain declarations for SimObject.
Create system.i to contain declarations for System.
Update python code to properly call the C++ given the new changes.
--HG--
extra : convert_revision : 82076ee69e8122d56e91b92d6767e356baae420a
|
|
away it seems.
--HG--
extra : convert_revision : f8d4d9f3d395d2d3db020cd016c7840876097791
|
|
--HG--
extra : convert_revision : aecdf1a7e50edbb12921991cc81df1b431ce8b38
|
|
once per system
--HG--
extra : convert_revision : 43cbfd1a58d7d728898cbfae0d7f7d9960eba178
|
|
--HG--
extra : convert_revision : d5a9d74ee6edf71524ba5c03fb7f054cf9722213
|
|
architecture.
Move the argument files to src/sim and add a utility.cc file with a function
getArguments() that returns the given argument in the architecture specific fashion.
getArguments() was getArg() is the architecture specific Argument class and has had
all magic numbers replaced with meaningful constants. Also add a function to the
Argument class for testing if an argument is NULL.
--HG--
rename : src/arch/alpha/arguments.cc => src/sim/arguments.cc
rename : src/arch/alpha/arguments.hh => src/sim/arguments.hh
extra : convert_revision : 8b93667bafaa03b52aadb64d669adfe835266b8e
|