Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
44747b7a
Commit
44747b7a
authored
Jun 24, 2023
by
Jonas Kaufmann
Committed by
Antoine Kaufmann
Sep 04, 2023
Browse files
docs: pass over gem5.rst
parent
eaaab9bd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
23 deletions
+25
-23
doc/simulators/gem5.rst
doc/simulators/gem5.rst
+21
-23
doc/user/troubleshooting.rst
doc/user/troubleshooting.rst
+4
-0
No files found.
doc/simulators/gem5.rst
View file @
44747b7a
...
@@ -25,11 +25,11 @@
...
@@ -25,11 +25,11 @@
gem5
gem5
###################################
###################################
`gem5 <https://www.gem5.org/>`_ is a modular computer architecture simulator
that
`gem5 <https://www.gem5.org/>`_ is a modular computer architecture simulator
can be configured to simulate a very broad range of different systems. For
now,
that
can be configured to simulate a very broad range of different systems. For
we maintain our own fork of gem5 `on
g
it
h
ub
now,
we maintain our own fork of gem5 `on
G
it
H
ub
<https://github.com/simbricks/gem5>`_, which contains our SimBricks adapters, a
<https://github.com/simbricks/gem5>`_, which contains our SimBricks adapters, a
p
ython configuration script for full system x86 simulations with SimBricks
P
ython configuration script for full system x86 simulations with SimBricks
adapters, and a few other extensions, such as MSI-X support. In the long term,
adapters, and a few other extensions, such as MSI-X support. In the long term,
we hope to upstream these changes.
we hope to upstream these changes.
...
@@ -76,17 +76,17 @@ many more message types and interacts with the re st of gem5 in multiple ways
...
@@ -76,17 +76,17 @@ many more message types and interacts with the re st of gem5 in multiple ways
To make matters worse, it also does some gymnastics to implement a PCI device in
To make matters worse, it also does some gymnastics to implement a PCI device in
gem5 that uses the asynchronous timing memory protocol in gem5, instead of the
gem5 that uses the asynchronous timing memory protocol in gem5, instead of the
default atomic protocol semantics for PCI devices in gem5. For this we override
default atomic protocol semantics for PCI devices in gem5. For this we override
the MMIO port created by the
pci
device super class, and implement our own
the MMIO port created by the
PCI
device super class, and implement our own
timing port. Hopefully in the future gem5 will offer a less backward way of
timing port. Hopefully
,
in the future
,
gem5 will offer a less backward way of
doing this but for now it works without drastically changing gem5's abstractions
doing this but for now it works without drastically changing gem5's abstractions
and all the other devices using them.
and all the other devices using them.
Configuration
Configuration
=============
=============
gem5 is configured through
p
ython scripts. These scripts can be parametrized
gem5 is configured through
P
ython scripts. These scripts can be parametrized
through the command line. Part of the configuration can be specified and adapted
through the command line. Part of the configuration can be specified and adapted
by varying the command line parameters, while many will require you to directly
by varying the command line parameters, while many will require you to directly
change the
p
ython configurations. We include our reference configuration for x86
change the
P
ython configurations. We include our reference configuration for x86
full system simulation capable of running Linux and with various SimBricks
full system simulation capable of running Linux and with various SimBricks
adapter configurations in ``configs/simbricks/simbricks.py``. This script
adapter configurations in ``configs/simbricks/simbricks.py``. This script
heavily includes parts of the common gem5 configuration.
heavily includes parts of the common gem5 configuration.
...
@@ -97,27 +97,25 @@ heavily includes parts of the common gem5 configuration.
...
@@ -97,27 +97,25 @@ heavily includes parts of the common gem5 configuration.
Checkpointing
Checkpointing
=============
=============
gem5 is currently the only simulator we use that supports checkpoint and
gem5 supports checkpoint and restore. The most common use-case for this is
restore. The most common use-case for this is accelerating repeated simulations
accelerating repeated simulations by checkpointing system state after boot and
by checkpointing system state after boot and running future simulations from
running future simulations from there. Note that SimBricks does not currently
there. Note that SimBricks does not currently support distributed checkpoints,
support distributed checkpoints. To leverage this feature for accelerating boot,
and none of our other simulators support checkpointing either. To still leverage
we carefully configure our simulations to checkpoint before executing anything
this feature for accelerating boot, we carefully configure our simulations to
that affects state in other simulators, in particular before loading device
checkpoint before executing anything that affects state in other simulators, in
drivers. On resume, each gem5 instance will restore from its own checkpoint
particular before loading device drivers. On resume, each gem5 instance will
while the rest of the simulators will just start again from their respective
restore from its own checkpoint while the rest of the simulators will just start
initial state. As this state never changed in the checkpointed system either for
again from their respective initial state. As this state never changed in the
these components, this is still a consistent system state.
checkpointed system either for these components, this is still a consistent
system state.
Usage Notes
Usage Notes
===========
===========
* gem5 only supports raw hard disk images. The SimBricks Makefile contains
* gem5 only supports raw hard disk images. The SimBricks Makefile contains
commands to build the raw images from the qcow2 images. (
**TODO** link to
commands to build the raw images from the qcow2 images. (
see section
docker documentation).
:ref:`sec-convert-qcow-images-to-raw`)
* gem5-kvm simulations require ``kvm`` support on the host and appropriate
* gem5-kvm simulations require ``kvm`` support on the host and appropriate
permissions for the user to access ``/dev/kvm``. Note that unlike
qemu
, gem5
permissions for the user to access ``/dev/kvm``. Note that unlike
QEMU
, gem5
will fail with an error and not silently fall back to something slower.
will fail with an error and not silently fall back to something slower.
* gem5-kvm configurations require ``/proc/sys/kernel/perf_event_paranoid`` to
* gem5-kvm configurations require ``/proc/sys/kernel/perf_event_paranoid`` to
...
...
doc/user/troubleshooting.rst
View file @
44747b7a
...
@@ -28,6 +28,7 @@ Troubleshooting / FAQ
...
@@ -28,6 +28,7 @@ Troubleshooting / FAQ
This is a collection of common troubleshooting tips and answers to frequently
This is a collection of common troubleshooting tips and answers to frequently
asked questions.
asked questions.
.. _sec-troubleshoot-getting-help:
.. _sec-troubleshoot-getting-help:
******************************
******************************
...
@@ -41,6 +42,9 @@ for quick answers and interactive discussions. If you find bugs or want to
...
@@ -41,6 +42,9 @@ for quick answers and interactive discussions. If you find bugs or want to
request a feature, feel free to open an `issue on GitHub
request a feature, feel free to open an `issue on GitHub
<https://github.com/simbricks/simbricks/issues>`_.
<https://github.com/simbricks/simbricks/issues>`_.
.. _sec-convert-qcow-images-to-raw:
*****************************************
*****************************************
Error Opening images/output-base/base.raw
Error Opening images/output-base/base.raw
*****************************************
*****************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment