Skip to content

Commit c9625ce

Browse files
authored
v24.1.0.1 Hotfix Release (gem5#1875)
2 parents 63d2592 + ea28fce commit c9625ce

File tree

17 files changed

+175
-16
lines changed

17 files changed

+175
-16
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ cscope.out
1010
.*.swo
1111
m5out
1212
/src/doxygen/html
13+
/docs/_build
1314
/ext/dramsim2/DRAMSim2
1415
/ext/mcpat/regression/*/*.out
1516
/util/m5/*.o

RELEASE-NOTES.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
# Version 24.1.0.1
2+
3+
**[HOTFIX]** This hotfix release applies the following:
4+
5+
* Generalization of the class types in CHI RNF/MN generators thus fixing an issue with missing attributes when using the CHI protocol.
6+
PR: <https://github.com/gem5/gem5/pull/1851>.
7+
* Add Sphinx documentation for the gem5 standard library.
8+
This is largely generated from Python docstrings.
9+
See "docs/README" for more information on building and deploying Sphinx documentation.
10+
PR: <https://github.com/gem5/gem5/pull/335>.
11+
* Add missing `RubySystem` member and related methods in `PerfectCacheMemory`'s entries.
12+
This was causing assertions to trigger in "src/mem/ruby/commonNetDest.cc".
13+
PR: <https://github.com/gem5/gem5/pull/1864>.
14+
* Add `useSecondaryLoadLinked` function to "src/mem/ruby/slicc_interface/ProtocolInfo.hh".
15+
This fixes a bug which was introduced after the removal of the `PROTOCOL_MESI_Two_Level` and `PROTOCOL_MESI_Three_Level` MACROs in v24.1.0.0.
16+
These MACROs were being used to infer if `Load_Linked` requests are sent to the Ruby protocol or not.
17+
The `useSecondaryLoadLinked` function has been introduced to specify this directly where needed.
18+
PR: <https://github.com/gem5/gem5/pull/1865>.
19+
120
# Version 24.1
221

322
## User facing changes

configs/ruby/CHI_config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ def addPrivL2Cache(self, cache_type, pf_type=None):
601601
@classmethod
602602
def generate(cls, options, ruby_system, cpus):
603603
rnfs = [
604-
CHI_RNF(
604+
cls(
605605
[cpu],
606606
ruby_system,
607607
L1ICache(size=options.l1i_size, assoc=options.l1i_assoc),
@@ -724,7 +724,7 @@ def generate(cls, options, ruby_system, cpus):
724724
"""
725725
Creates one Misc Node
726726
"""
727-
return [CHI_MN(ruby_system, [cpu.l1d for cpu in cpus])]
727+
return [cls(ruby_system, [cpu.l1d for cpu in cpus])]
728728

729729

730730
class CHI_SNF_Base(CHI_Node):

docs/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Minimal makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line, and also
5+
# from the environment for the first two.
6+
SPHINXOPTS ?=
7+
SPHINXBUILD ?= sphinx-build
8+
SOURCEDIR = .
9+
BUILDDIR = _build
10+
11+
# Put it first so that "make" without argument is like "make help".
12+
help:
13+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14+
15+
.PHONY: help Makefile
16+
17+
# Catch-all target: route all unknown targets to Sphinx using the new
18+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19+
%: Makefile
20+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

docs/README

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# How to build Sphinx documentation
2+
3+
In order to build documentation for the standard library, first install sphinx. Run these commands in the `gem5` directory.
4+
5+
```bash
6+
python3 -m venv build/
7+
source build/bin/activate
8+
pip install sphinx
9+
10+
```
11+
12+
Next, build gem5, then cd to the `docs` directory.
13+
14+
```bash
15+
scons build/ALL/gem5.opt
16+
cd docs
17+
```
18+
19+
In the `docs` directory, run `../build/ALL/gem5.opt gem5-sphinx-apidoc -o . ../src/python/gem5 -F -e` in order to generate the RST files.
20+
21+
To generate the documentation, run `SPHINXBUILD="../build/ALL/gem5.opt gem5-sphinx" make html`
22+
23+
In order to view this documentation as a website, run the following commands while still in the `docs` directory:
24+
25+
```bash
26+
cd _build/html
27+
python3 -m http.server 8000
28+
```
29+
30+
If you want to use a different Sphinx theme, follow these steps:
31+
32+
- Install the desired theme, e.g., `pip install sphinx-rtd-theme`
33+
- Update the `html_theme` in `docs/conf.py` by setting `html_theme = "sphinx_rtd_theme"`
34+
- Run `SPHINXBUILD="../build/ALL/gem5.opt gem5-sphinx" make html` in the `docs` directory to apply the changes.
35+
36+
Note: We are aware that some modules currently display a blank page in the documentation.
37+
This will be addressed in the future.

docs/conf.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Configuration file for the Sphinx documentation builder.
2+
#
3+
# For the full list of built-in configuration values, see the documentation:
4+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
5+
6+
# -- Project information -----------------------------------------------------
7+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8+
9+
project = "gem5"
10+
copyright = ""
11+
author = ""
12+
13+
# -- General configuration ---------------------------------------------------
14+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
15+
16+
extensions = [
17+
"sphinx.ext.autodoc",
18+
"sphinx.ext.viewcode",
19+
"sphinx.ext.todo",
20+
]
21+
22+
templates_path = ["_templates"]
23+
exclude_patterns = [
24+
"_build",
25+
"Thumbs.db",
26+
".DS_Store",
27+
"build/lib64/python3.8/site-packages",
28+
"build/lib/python3.8/site-packages",
29+
]
30+
31+
language = "en"
32+
33+
# -- Options for HTML output -------------------------------------------------
34+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
35+
36+
html_theme = "alabaster"
37+
html_static_path = ["_static"]
38+
39+
# -- Options for todo extension ----------------------------------------------
40+
# https://www.sphinx-doc.org/en/master/usage/extensions/todo.html#configuration
41+
42+
todo_include_todos = True

docs/gem5-sphinx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import sphinx.__main__

docs/gem5-sphinx-apidoc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import re
2+
import sys
3+
4+
extensions = ['myst_parser']
5+
6+
source_suffix = {
7+
'.md': 'markdown',
8+
'.py': 'markdown'
9+
}
10+
11+
from sphinx.ext.apidoc import main
12+
if __name__ == '__m5_main__':
13+
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
14+
sys.exit(main())

src/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ PROJECT_NAME = gem5
3131
# This could be handy for archiving the generated documentation or
3232
# if some version control system is used.
3333

34-
PROJECT_NUMBER = v24.1.0.0
34+
PROJECT_NUMBER = v24.1.0.1
3535

3636
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
3737
# base path where the generated documentation will be put.

src/base/version.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ namespace gem5
3232
/**
3333
* @ingroup api_base_utils
3434
*/
35-
const char *gem5Version = "24.1.0.0";
35+
const char *gem5Version = "24.1.0.1";
3636

3737
} // namespace gem5

0 commit comments

Comments
 (0)