time all builds and run

This commit is contained in:
Ciro Santilli
2018-09-14 15:53:08 +01:00
parent 435436f714
commit 40b5c5a023
4 changed files with 30 additions and 5 deletions

View File

@@ -353,13 +353,24 @@ To get a terminal, either open a new shell and run:
./gem5-shell ./gem5-shell
.... ....
or if you are inside tmux, which I highly recommend, just run gem5 with: The only way to exit the shell is to kill the gem5 on the previous shell
If you are inside tmux, which I highly recommend, just run gem5 with:
.... ....
./run --gem5 --tmux ./run --gem5 --tmux
.... ....
This will open up a split terminal by default so that you can see both the gem5 stdout and the terminal. See also: <<tmux-gem5>> This will open up a split terminal by default so that you can see both the gem5 stdout and the terminal. See also: <<tmux-gem5>>.
At the end of boot, it might not be very clear that you have the shell since some <<printk>> messages may appear in front of the prompt like this:
....
# <6>[ 1.215329] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1cd486fa865, max_idle_ns: 440795259574 ns
<6>[ 1.215351] clocksource: Switched to clocksource tsc
....
but if you look closely, the `PS1` prompt marker `#` is there already, just hit enter and a clear prompt line will appear.
If you forgot to open the shell and gem5 exit, you can inspect the terminal output post-mortem at: If you forgot to open the shell and gem5 exit, you can inspect the terminal output post-mortem at:

View File

@@ -6,6 +6,7 @@ import os
import pathlib import pathlib
import shutil import shutil
import subprocess import subprocess
import time
import common import common
@@ -23,6 +24,7 @@ disks_dir = os.path.join(common.gem5_system_dir, 'disks')
if args.clean: if args.clean:
common.rmrf(common.gem5_build_dir) common.rmrf(common.gem5_build_dir)
else: else:
start_time = time.time()
os.makedirs(binaries_dir, exist_ok=True) os.makedirs(binaries_dir, exist_ok=True)
os.makedirs(disks_dir, exist_ok=True) os.makedirs(disks_dir, exist_ok=True)
if not os.path.exists(os.path.join(common.gem5_src_dir, '.git')): if not os.path.exists(os.path.join(common.gem5_src_dir, '.git')):
@@ -81,3 +83,5 @@ else:
term_src_dir = os.path.join(common.gem5_src_dir, 'util/term') term_src_dir = os.path.join(common.gem5_src_dir, 'util/term')
subprocess.check_call(['make', '-C', term_src_dir]) subprocess.check_call(['make', '-C', term_src_dir])
shutil.copy2(os.path.join(term_src_dir, 'm5term'), common.gem5_m5term) shutil.copy2(os.path.join(term_src_dir, 'm5term'), common.gem5_m5term)
end_time = time.time()
common.print_time(end_time - start_time)

View File

@@ -3,6 +3,7 @@
import multiprocessing import multiprocessing
import os import os
import subprocess import subprocess
import time
import common import common
@@ -18,6 +19,7 @@ args = common.setup(parser)
if args.clean: if args.clean:
common.rmrf(common.qemu_build_dir) common.rmrf(common.qemu_build_dir)
else: else:
start_time = time.time()
os.makedirs(common.qemu_build_dir, exist_ok=True) os.makedirs(common.qemu_build_dir, exist_ok=True)
subprocess.check_call( subprocess.check_call(
[ [
@@ -37,5 +39,8 @@ else:
# TODO factor with build. # TODO factor with build.
'-j', str(multiprocessing.cpu_count()), '-j', str(multiprocessing.cpu_count()),
], ],
cwd=common.qemu_build_dir cwd=common.qemu_build_dir,
extra_env={'PATH': '/usr/lib/ccache:' + os.environ['PATH']},
) )
end_time = time.time()
common.print_time(end_time - start_time)

9
run
View File

@@ -1,10 +1,11 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import re
import shlex import shlex
import subprocess import subprocess
import sys import sys
import re import time
import common import common
@@ -463,4 +464,8 @@ Run QEMU with VNC instead of the default SDL. Connect to it with:
if __name__ == '__main__': if __name__ == '__main__':
parser = get_argparse() parser = get_argparse()
args = common.setup(parser) args = common.setup(parser)
sys.exit(main(args)) start_time = time.time()
exit_status = main(args)
end_time = time.time()
common.print_time(end_time - start_time)
sys.exit(exit_status)