gem5: update to 4c8efdbef45d98109769cf675ee3411393e8ed06

The Linux boot was still broken after the previous gem5 update. Let's try
a new one...

Add the --no-ccache option to benchmark builds.
This commit is contained in:
Ciro Santilli 六四事件 法轮功
2020-02-26 00:00:00 +00:00
parent 7c6bb29bc8
commit 8a2cad195b
4 changed files with 22 additions and 2 deletions

View File

@@ -20574,6 +20574,8 @@ Get results with:
tail -n+1 ../linux-kernel-module-cheat-regression/*/gem5-bench-build-*.txt
....
<<p51>>, Ubuntu 19.10, LKMC 7c6bb29bc89ec3f1056c0680c3f08bd64018a7bc GCC 9.2.1, gem5 d7d9bc240615625141cd6feddbadd392457e49eb (18-02-2020), `./build --arch aarch64 --gem5-worktree master --no-cache`: 19:33 TODO must investigate why it got so much worse.
====== Benchmark gem5 single file change rebuild time
This is the critical development parameter, and is dominated by the link time of huge binaries.
@@ -21155,6 +21157,14 @@ We have https://buildroot.org/downloads/manual/manual.html#ccache[enabled ccache
* absolute paths are used and GDB can find source files
* but builds are not reused across separated LKMC directories
ccache can be disabled with the `--no-ccache` option as in:
....
./build-gem5 --no-ccache
....
This can be useful to <<benchmark-build,benchmark builds>>.
=== getvar
The link:getvar[] helper script can print the values of internal LKMC variables.

View File

@@ -121,6 +121,9 @@ https://github.com/cirosantilli/linux-kernel-module-cheat-regression#gem5-unit-t
gold_linker_cmd = []
else:
gold_linker_cmd = ['--gold-linker', LF]
kwargs = {}
if self.env['ccache']:
kwargs['extra_paths'] = [self.env['ccache_dir']]
exit_status = self.sh.run_cmd(
(
[
@@ -141,9 +144,9 @@ https://github.com/cirosantilli/linux-kernel-module-cheat-regression#gem5-unit-t
self.sh.add_newlines(self.env['extra_scons_args'])
),
cwd=self.env['gem5_source_dir'],
extra_paths=[self.env['ccache_dir']],
extra_env=extra_env,
raise_on_failure = False,
**kwargs
)
return exit_status

View File

@@ -221,6 +221,13 @@ CPU architecture to use. If given multiple times, run the action
for each arch sequentially in that order. If one of them fails, stop running.
Valid archs: {}
'''.format(arches_string)
)
self.add_argument(
'--ccache',
default=True,
help='''\
Enable or disable ccache: https://cirosantilli.com/linux-kernel-module-cheat#ccache
'''
)
self.add_argument(
'--dry-run',