40 Commits

Author SHA1 Message Date
a99e041c8a rename kernel_module to kernel_modules, start README mass factorings 2018-09-08 07:14:31 +01:00
1ff6a95ab3 run: generalize with main(), start porting trace-boot and qemu-trace2txt 2018-09-05 07:26:53 +01:00
6ae0c43cf5 bak 2018-09-04 07:39:27 +01:00
8c16820365 rungdb-user: failed attempt with rungdb factor 2018-08-31 18:02:51 +01:00
2cd1224db6 run_cmd: factor out logging of run and rungdb 2018-08-30 10:11:38 +01:00
094b6c4275 rungdb, gem5-shell and ./run -u ported 2018-08-29 09:57:26 +01:00
f46c7470e8 preparing for tmux and gdb 2018-08-28 00:21:22 +01:00
63ec42f72f common: factor out common opts to all scripts 2018-08-14 00:27:55 +01:00
626f5f9e22 bench-boot: add -f option to only run fast boots
Comment out all tests that are known to be failing.

run: exit 1 on failure, was broken dude to termout pipe
2018-08-13 22:56:20 +01:00
b1bd45684f config: replace cli with direct common_ options 2018-08-09 07:12:20 +01:00
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
02e294c62c qemurr: create
qemu: start documenting unmerged replay reverse debugging while testing it
2018-08-08 00:41:13 +01:00
d330f8d250 Use absolute paths for . common
Otherwise it can pick up other common in PATH first...
2018-07-22 10:42:46 +01:00
28c70a3824 run: support multiple simultaneous runs and run output directories 2018-06-12 12:37:31 +01:00
61c5162fa6 linux: introduce build variants selectable at runtime 2018-06-07 05:26:04 +01:00
4da17d0816 rungdb: store cd into rungdb.sh to make it actually rerunnable 2018-04-26 13:24:15 +01:00
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
9805d333ea tc: create helper to access toolchain tools 2018-04-19 08:24:10 +01:00
5698a5ed2b build: move br2_cli.gitignore to out/ 2018-04-18 14:06:48 +01:00
f4eed4163b scripts: factor out benchmarks and run further with ./eeval and common_bench_cmd 2018-04-18 12:47:43 +01:00
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
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
5235854384 Create the cli.gitignore mechanism to pass extra default cli options
Document that X11 mouse is not moving.

Convert x='' to x= on all scripts, and also fix case ;; indentations.

Add dummy value to QEMU's -trace enable= to prevent warning.

Expand built-in package choice rationale.
2018-03-30 17:03:17 +01:00
9fd72c786f Move all build and run output to out/$arch/
Most of it was present inside buildroot/output.* and the rest scattered
on top level.

This came about for the n-th time when we were reviewing QEMU trace file
locations.

On one hand, it would be cool to have per arch traces.

This made buildroot/output.${arch}~/ a natural choice.

But on the other, those traces have nothing to do with Buildroot,
and could potentially interfere with Buildroot build files.

It also feels nicer to have buildroot/ pristine source code only,
and keep all output under a single directory out/
2018-03-29 02:08:18 +01:00
6e9f3dcf23 Document gem5 userland debugging
This lead to an infinite chaing of refactorings:

Fix arm and aarch64 lx-symbols

This was just by chance, a continue GDB command was needed before running it.

I noticed that there is no more need for the x86 GDB --ex 'set arch i386:x86-64:intel'
thing and unified all archs. TODO bisect where that was fixed and understand why.

Add debug kernel configs for gem5 kernel.

Document gem5 aarch64 gdb debug doesn't work.

Document tmux split pane action.
2018-03-23 20:55:26 +00:00
29908dffb2 Disable networking at runtime with lkmc_nonet cli instead of build
This is necessary because qemu and gem5 now use the same build folder.

Separate ./run -e and -f for kernel options before and after the ' - '.
This was already the better thing to do when -E was introduced,
but lkmc_nonet prompted me to do it nicer now.

Use the common script to find the out_dir on every toplevel script.

Include usage man pages on README.
2018-03-22 02:47:14 +00:00
2092180ac8 Update GEM5 to master to fix x86 boot via 3feeb994ae613fd6b3734c1a991285b2ecbd1946
See also: http://gem5-users.gem5.narkive.com/CQh9J6fU/fail-to-run-fs-mode-with-linux-kernel-v4-8-13-and-ubuntu-image-16-04-1

Start sketching how to tweak system parameters, number of CPUs works, caches don't.
2018-02-25 20:27:35 +00:00
6420c31986 GEM5 gdb debug
Improve GEM5 documentation in general.

Fix documentation for x86 kernel module debugging example, fop_write had been made static,
and use timer.ko instead of fops which is more reliable and fun.
2018-02-22 10:05:57 +00:00
c052a83205 nokaslr, thanks to @dakami at close #12 2018-02-01 20:27:43 +00:00
b3b1df5560 bak 2017-10-08 17:49:01 +01:00
80889c0376 aarch64, fix gdb with linux-custom 2017-07-12 11:49:58 +01:00
b5cafc8481 mips 2017-06-30 23:42:18 +01:00
3e0b03fc75 Decent multiarch with make O= 2017-06-30 21:10:15 +01:00
41dbf46531 Poll works! 2017-06-08 06:28:41 +01:00
6d2bbab19c KGDB! 2017-05-26 08:54:17 +01:00
960eca1008 ARM 2017-05-22 08:21:33 +01:00
9fdf6bbe20 Integrate lx-symbols! 2017-05-21 11:06:36 +01:00
be9f56cc9b Use buildroot host gdb, consider QEMU and target GDB but give up for now 2017-05-21 10:22:31 +01:00
710e42e80f qemu on background for debug 2017-05-21 09:26:47 +01:00
7f6b148dc4 Split QEMU run, automate GDB debugging 2017-05-20 11:17:37 +01:00