Commit Graph

129 Commits

Author SHA1 Message Date
Ciro Santilli
8cd6ffda2a run: fix extra flags after -- 2018-08-12 19:31:28 +01:00
Ciro Santilli
688d26ecd6 qemu arm: fix boot with -M virt,highmem=off 2018-08-11 20:52:41 +01:00
Ciro Santilli
88cd4d6d0b gem5: parse logs and exit with status 1 in case of errors 2018-08-11 20:52:41 +01:00
Ciro Santilli
539b176e1d gem5: test out panic_on_panic
patches: create patche/manual patch dir, put all patch directories under
patches/ subdir
2018-08-11 20:52:41 +01:00
Ciro Santilli
5cdce7be46 run: factor out arm and aarch64
Make the generated command beautiful and perfect without any trailing whitespace.
I have to review my life choices
2018-08-11 12:36:38 +01:00
Ciro Santilli
6ea0b16cd7 run: detect QEMU panics by log parsing
Add correct error messages to kernel v4.17 gem5 boot failures
2018-08-10 15:03:40 +01:00
Ciro Santilli
13e0ea7801 qemu: exit on panic by default instead of hanging 2018-08-10 08:51:49 +01:00
Ciro Santilli
b675cf35cb zip-image: factor out with common
Notably, only include the strictly necessary files in the archive, otherwise
initrd's from other builds might get in the way.
2018-08-09 22:25:53 +01:00
Ciro Santilli
f5a997b2b6 do-release: sketch + a bunch of fixes from bench-all
qemu: monitor command from guest
2018-08-09 12:56:17 +01:00
Ciro Santilli
b1bd45684f config: replace cli with direct common_ options 2018-08-09 07:12:20 +01:00
Ciro Santilli
1cb056a995 common: simplify set_common_vars, rename to common_setup
Don't pass all arguments explicitly, just use existing vars.

Prefix all common_setup inputs and outputs with common_ to avoid name conflicts.
2018-08-09 06:59:52 +01:00
Ciro Santilli
02e294c62c qemurr: create
qemu: start documenting unmerged replay reverse debugging while testing it
2018-08-08 00:41:13 +01:00
Ciro Santilli
19f4d00f9b qemu: expose rr
run: expose forgotten -Q, document it
2018-08-06 02:48:43 +01:00
Ciro Santilli
d330f8d250 Use absolute paths for . common
Otherwise it can pick up other common in PATH first...
2018-07-22 10:42:46 +01:00
Ciro Santilli
291de25ac7 disable termout logging when debugging vm 2018-07-20 18:29:33 +01:00
Ciro Santilli
e376e25ca2 run: add timestamps before each log message
Also time every run by default.
2018-07-19 08:07:31 +01:00
Ciro Santilli
839271efd6 rand_check: move docs to readme, create norandmaps section 2018-07-09 17:44:34 +01:00
Ciro Santilli
20b9961233 run: fix extra emulator args that were broken by -X 2018-06-27 17:58:54 +01:00
Ciro Santilli
1721f184d6 gem5: track build and run variants separately with -M and -N
Otherwise, checking out branches is too insane, as it does not
update the worktrees, even though the gem5/gem5 module was updated.

gem5: expose build types, document debug builds.

simultaneous runs: store stdout and stderr on a file to allow running
all from a single terminal on the background cleanly.
2018-06-27 16:31:24 +01:00
Ciro Santilli
7bbb2a813e gem5: fix -X-b, fs_bigLITTLE checkpoint restore, checkpoints are just dirs on backend 2018-06-18 16:18:05 +01:00
Ciro Santilli
18c1c823fe gem5: integrate fs_bigLITTLE.py into run 2018-06-17 12:06:29 +01:00
Ciro Santilli
fa7065f0d4 run: save run.sh to the right directory for qemu 2018-06-14 10:44:40 +01:00
Ciro Santilli
e91871611a run: forward -n to -u 2018-06-12 14:50:03 +01:00
Ciro Santilli
28c70a3824 run: support multiple simultaneous runs and run output directories 2018-06-12 12:37:31 +01:00
Ciro Santilli
b562d8dfe7 gem5: support variants 2018-06-10 08:57:39 +01:00
Ciro Santilli
335adec68a qemu: don't persist disk changes by default 2018-06-09 13:41:08 +01:00
Ciro Santilli
61c5162fa6 linux: introduce build variants selectable at runtime 2018-06-07 05:26:04 +01:00
Ciro Santilli
32ccda88c8 prebuilt: allow running prebuilt images 2018-05-28 19:36:07 +01:00
Ciro Santilli
3cebbb9591 graphics: arm -M virt does have graphics actually 2018-05-24 15:43:04 +01:00
Ciro Santilli
8cd2659a60 run: improve -drive file quoting to be saner 2018-05-21 11:27:34 +01:00
Ciro Santilli
b992163d4e gem5: possible to edit python in tree, factor arm and aarch64 build
readme: stress kills gem5, some gem5 builds much slower than others
2018-05-02 00:14:23 +01:00
Ciro Santilli
7c16eb6ec1 run: pass Ctrl+C to GDB when using -D 2018-04-26 14:47:40 +01:00
Ciro Santilli
ab21ef58de trace2line: gem5 support
As noted however, it is potentially too slow to be useful.

run: unify gem5 and qemu tracing under -T

readme: overhaul tracing documentation from what I've learnt from trace2line
2018-04-26 00:23:44 +01:00
Ciro Santilli
f10ef3a467 bench-all: add build benchmarks and make all benchmarks options
run: fix ./run -gu broken behaviour. Document ./tmu window switch failure.

readme: move travis failed attempt to readme.
2018-04-22 21:09:17 +01:00
Ciro Santilli
2bddcc2891 build: unify QEMU and gem5 kernel configs! The last one!
Split optional and required kernel configs into separate files.

readme: describe how our kernel configs are generated from Buildroot

readme: document QEMU `-no-reboot` and speculate gem5 `panic_on_panic`
in preparation for some more automated bisection with ktest.
2018-04-21 11:50:02 +01:00
Ciro Santilli
759fb7b7c8 run: move run.sh into out/arch/qemu or out/arch/gem5 subdirs
This allows to compare both commands as the run.sh won't overwritten.
2018-04-19 23:51:21 +01:00
Ciro Santilli
af210a7671 Move arm to virt armv7, unify arm QEMU and gem5 builds
gem5 requires armv7, and we learnt that the versatiledb we were using
was pre-v7.

We could have moved to -M vexpress-*, but in the end decided to go for
-M virt due to its simpliciy, and uniformity with aarch64.

platform_device: does not work anymore and was removed, since it was tied
to versatilepb.

We left a mention on the README and removed all in tree source. The QEMU
patch is still left as it was.

As a consequence, the linux tree had no other patches, and we now use
vanilla linux by default, which is a great thing for reproducibility.

Another consequence is the /poweroff.out works for arm -M virt,
and we removed all mentions of the problem.
2018-04-19 23:38:17 +01:00
Ciro Santilli
2c084f5fb2 run: create -F option to run base64 encoded command after busybox init
Fix ./run -h which was showing the build help instead.
2018-04-19 08:57:35 +01:00
Ciro Santilli
9805d333ea tc: create helper to access toolchain tools 2018-04-19 08:24:10 +01:00
Ciro Santilli
b5d64142e9 readme: explain how to use dynamic debugging for boot messages
run: pass the console_msg_format=syslog boot parameter by default,
to allow seeing what is the priority of messages on the terminal.

Document printk better.
2018-04-18 15:04:19 +01:00
Ciro Santilli
5698a5ed2b build: move br2_cli.gitignore to out/ 2018-04-18 14:06:48 +01:00
Ciro Santilli
f4eed4163b scripts: factor out benchmarks and run further with ./eeval and common_bench_cmd 2018-04-18 12:47:43 +01:00
Ciro Santilli
72e9fcc4b0 proc_events.c: comment out aarch64 2018-04-17 09:22:20 +01:00
Ciro Santilli
bfba11afdd run: add qemu options directly into run
readme: add ascii tmux split screenshot to preamble
2018-04-16 01:09:11 +01:00
Ciro Santilli
51e31cdc29 x86_64: rdstc
arm: attempt pmccntr, but didn't work, TODO why: no QEMU support?
2018-04-15 14:10:21 +01:00
Ciro Santilli
08abfb1e85 run: Ctrl+C works and gets passed to guest... at last!
readme: document graphics failures on arm and aarch64 further.
2018-04-11 01:08:30 +01:00
Ciro Santilli
9e79b9b06f Save .log output files to out/arch/
This is cleaner as it removes yet another .gitignore rule and allows
for one command per arch.

This was prompted by the recent Docker patch creating files as root,
which then breaks future host runs.

Also separate all arguments by newlines. This:

- makes it much easier to minimize when reporting QEMU bugs
- shows the full command on the screen despite line wrapping being turned off
  by one of the annoying emulators, to be investigated.

The commands are not yet pristine, because:

- there are some leading spaces
- options not sorted

but it is already a huge improvement, and those operations are now be easy from Vim.

The general strategy is:

- end every variable containing a command with a newline
- when expanding such variables, don't add an extra newline
2018-04-08 17:49:14 +01:00
Ciro Santilli
294a8c2424 docker: crate docker host setup
readme: standardize keyboard input notation to the format: Ctrl-C
2018-04-08 10:27:26 +01:00
Ciro Santilli
9405b35ad2 Create data/ dir, move cli, 9p and readfile there. 2018-04-06 01:02:41 +01:00
Ciro Santilli
f482f24f87 readme: explain how to run benchmarks with readfile straight out
gem5 cache automate benchmarks, and remove results that were scattered all over.

Move console fun under linux kernel section, since not important enough
for getting started.

Set arch x86_64 by default through common on all scripts.
2018-04-03 22:28:53 +01:00