Commit Graph

466 Commits

Author SHA1 Message Date
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
Ciro Santilli
0dd444d8eb readme: start update and automate gem5 cache benchmarks
Missing HPI.
2018-04-03 18:03:38 +01:00
Ciro Santilli
f3503b4cc8 readme: link to gem5 perf so answer 2018-04-02 22:49:17 +01:00
Ciro Santilli
12083ec1fa readme: console fun, arm /dev/fb0 works 2018-04-02 20:36:33 +01:00
Ciro Santilli
ccc3a32581 parsec: update submodule 2018-04-02 19:51:41 +01:00
Ciro Santilli
4462aa75ac gem5 readme: document failed restores on aarch64 2018-04-02 19:51:31 +01:00
Ciro Santilli
1f5baf5371 gem5: m5 execfile 2018-04-01 22:47:55 +01:00
Ciro Santilli
bf7f801706 parsec: export env outside of loop and before . env.sh, update submodule 2018-04-01 13:57:04 +01:00
Ciro Santilli
7ab4191bec parsec: update 2018-04-01 12:14:54 +01:00
Ciro Santilli
e6c8d2bfc3 parsec: export CC, CPP and CXX to try and make -p all work
It didn't, but we documented all remaining failures one by one.
2018-03-31 14:07:33 +01:00
Ciro Santilli
56fd3975d6 gem5: benchmark x86 after gcc 7 2018-03-31 07:58:20 +01:00
Ciro Santilli
4cb8a543ee gem5 build benchmark 2018-03-31 07:41:04 +01:00
Ciro Santilli
af476687e1 gem5: x86_64 gcc 7 compilation was fixed after latest pull
So get rid of the specific gcc-6 and gcc-6 install.
2018-03-31 07:38:37 +01:00
Ciro Santilli
5f2a6fbd8b readme: gem5 checkpoint restore and run another script 2018-03-31 07:20:57 +01:00
Ciro Santilli
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
Ciro Santilli
9076c1d9bc parsec: general cleanup, retest everything
Get rid of br2_parsec, since there are just too many possible variations on that file.

Blow up the gem5 vs qemu table to make it saner, add missing aarch64 entries.

Make sections titles describing number of cores and memory size emulator agnostic.
2018-03-29 21:16:50 +01:00
Ciro Santilli
9afaecec87 readme: gem5 tracing.
Fix some parsec readme errors after missed ./run flag updates.
2018-03-29 18:24:25 +01:00
Ciro Santilli
b6e8a7d1d1 parsec: fix aarch64 build
The error was:

[PARSEC] Error: Binary '/home/ciro/bak/git/linux-kernel-module-cheat/out/aarch64/buildroot/build/parsec-benchmark-custom/ext/splash2x/apps/barnes/inst/"aarch64"-linux.gcc/bin/run.sh' of package 'splash2x.barnes'
 cannot be found.

due to some quoting madness.
2018-03-29 11:41:05 +01:00
Ciro Santilli
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
Ciro Santilli
01a84e7f79 OK, direct the annoying traces to the output folder
Otherwise it was getting messy to distinguish between trace-events
and trace-<pid> in the .gitignore.

Now only the latest trace will be kept, with a fixed name.
2018-03-28 23:09:01 +01:00
Ciro Santilli
f74e001789 readme: m5 readfile
gitignore: trace-
2018-03-28 22:17:00 +01:00
Ciro Santilli
f5065183a8 tracing: create trace2line
This lead to a re-factoring of count boot instructions, since trace2line
relies on the same tracing mechanism.

Also, now that we have common factored, I've decided to put the traces on
the out dir, to concentrate all outputs in a single place, and allow
easy switching between archs.
2018-03-28 14:12:03 +01:00
Ciro Santilli
8f64af7303 readme: bibliography link to rwmj 2018-03-27 16:16:49 +01:00
Ciro Santilli
dda6ec956c readme: m5 writefile
Document that we couldn't step debug m5.
2018-03-27 16:06:12 +01:00
Ciro Santilli
1c3f16797a readme: more failed attempts at ttys! 2018-03-27 14:00:32 +01:00
Ciro Santilli
ac67ce3643 Login without asking for the username
We have wanted to do this since forever, but the last straw was gem5 aarch64,
which runs too fast, and makes it very hard to write "root" withing 60 seconds!

Another possibility to solve that would have been to find an answer for:
https://unix.stackexchange.com/questions/340333/how-can-i-get-bin-login-to-not-timeout
which we didn't, but not typing root at all is even better.

Take this opportunity to document how to login into user0.

sshd: automate and document further

gdbserver: automatically startup internet on /gdbserver.sh
2018-03-26 13:19:54 +01:00
Ciro Santilli
00bce69784 parsec: fix build undefined $(D) to $(@D) 2018-03-26 10:27:22 +01:00
Ciro Santilli
bcbc7b4c5c doc: remove forgotten references to ./run -n 2018-03-26 10:19:51 +01:00
Ciro Santilli
1a0330c942 readme: text mode reproducibility and interrupts 2018-03-25 22:56:42 +01:00
Ciro Santilli
a1a6a5d6fb readme: more uniform titles to gem5 step debug sections 2018-03-25 19:17:05 +01:00
Ciro Santilli
2656202dff init: disable all userland processes started from init
In order to make the system easier to understand.

These include:

* networking
* klogd and syslogd. TODO what are those for? I could not see anything useful that they do.

Also get rid of the useless S20random thing while we are at it.
2018-03-25 19:06:30 +01:00
Ciro Santilli
2927ed330a readme: document gem5 userland arm unexplicable jump 2018-03-25 12:21:48 +01:00
Ciro Santilli
233e0b485c build: fix f unbound 2018-03-25 11:31:48 +01:00
Ciro Santilli
cf840529fc readme: fixes on run and build usage pages 2018-03-24 23:00:04 +00:00
Ciro Santilli
8184bbd803 readme: gem5 and qemu same config fix header depths 2018-03-24 22:58:23 +00:00
Ciro Santilli
b13595273e run: make text mode (-n) the default
Rename the opposite graphics mode to -x.
2018-03-24 22:48:41 +00:00
Ciro Santilli
baccf8ff07 build: -l touches config files to overcome https://stackoverflow.com/questions/49260466/why-when-i-change-br2-linux-kernel-custom-config-file-and-run-make-linux-reconfi
Introduce -G option that forces gem5 rebuild in addition to -g.
2018-03-24 22:22:27 +00:00
Ciro Santilli
39ad57a309 gem5: improve userland debug documentaion
Factor out with QEMU since the procedure is exactly the same.
2018-03-24 21:15:16 +00:00
Ciro Santilli
9c5a4aff71 Fix BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE which was never getting added
Make BR2_EXTERNAL paths relative to make things more absolute path independent.
2018-03-24 20:46:00 +00:00
Ciro Santilli
348b8c47ef add tmu script that was forgotten 2018-03-24 20:45:53 +00:00
Ciro Santilli
3eac2c53a2 gem5 getting started better run command 2018-03-24 07:42:53 +00:00
Ciro Santilli
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
Ciro Santilli
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
Ciro Santilli
60b9e56038 Update gem5 to fix gcc 7 build 2018-03-21 23:01:02 +00:00
Ciro Santilli
a033e6444c parsec: move test.sh into the parsec repo 2018-03-21 16:44:19 +00:00
Ciro Santilli
275426ef44 Use a single build for aarch64 qemu and gem5!
Document the minimal aarch64 boot.

Rename -c to -B for uniformity with -b.

Add help for ./run and ./build options.
2018-03-21 11:35:30 +00:00
Ciro Santilli
f5e04f6b33 Move modprobe into getting started, re-add myinsmod.out, deambiguate kmod modprobe header 2018-03-18 15:27:55 +00:00
Ciro Santilli
36940cb322 Get rid of Maintainers section for lower level headers
Move benchmark this repo out of conversation, there is plenty of action there!

Move kernel module sections and buildroot sections out of conversation.

Document the instruction count between baseline Buildroot and our monstrosity.

Put ./count-boot-instructions in a separate script.

Link to MIPS graphics QEMU question.

Link to VFIO QEMU question.
2018-03-18 15:14:20 +00:00
Ciro Santilli
9bb011e556 The desire for pivot_root 2018-03-18 12:44:35 +00:00
Ciro Santilli
8233b9249b Use common .gitignore suffix and gitignore* prefix for most ignores 2018-03-18 10:54:38 +00:00