Commit Graph

28 Commits

Author SHA1 Message Date
Ciro Santilli
56738a1c70 lkmc v2-rc
Unsquashed version at v2-rc-unsquashed, but that cannot be merged as it
breaks bisects at several points. All bugs will not bisect to this
humongous change.

It all started with a conversion of the Bash scripts to Python, mainly
because I couldn't stand not being able to properly use --options for
run which has a million options.

Then since that required a full testing, I decided to do all the
refactorings that I had in mind at once, and so I did and it became
v2-rc.

This is the largest patch I have ever done! OMG a few weeks of extra time.
I'm never writing a Bash script for anything that starts getting big again.

Some of the features are:

* separate build-qemu and build-gem5 commands
* common: convert scripts to python. Add --option for everything
* rename build to build-buildroot now that we are splitting all the build
  commands, Linux kernel to follow
* move all git submodules to submodules/ and all buildroot packages to
  packages/
* refactor the out/ structure. Keep projects on toplevel, because guest
  projects separate archs and host ones don't, making a toplevel arch wrong
* do-release: rename to just release
  https://stackoverflow.com/questions/16174992/cant-get-argparse-to-read-quoted-string-with-dashes-in-it
* run: add --terminal and explain gem5 pdb
* just track the lvimrc
* store CLI kernel config fragment inside buildlroot to avoid conflicts
* gem5: document m5 initparam
* readme: make a bunch of things awesomer
* readme: fix broken refs
* parsec-benchmark: update to 75d55ac446a43c47efb1044844a108c6c330184c
  Could not fetch otherwise.
* gem5: M5_OVERRIDE_PY_SOURCE
2018-09-14 07:42:31 +01:00
Ciro Santilli
737fd32352 gem5: update to 200281b08ca21f0d2678e23063f088960d3c0819
Fixes Linux kernel boot on arm and aarch64 due to:
d84a0714220ffcc10eed0530ec01ed1a01a4ad4b Was failing with:

    /build/ARM/cpu/simple/atomic.cc:377: virtual Fault AtomicSimpleCPU::readMem(Addr, uint8_t*, unsigned int, Request::Flags): Assertion
-`!pkt.isError()' failed
2018-08-22 10:42:12 +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
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
00d282d912 gem5: use m5term instead of telnet 2018-06-20 11:50:36 +01:00
Ciro Santilli
57dbe81f33 lkmc_many_files: create package to test a rootfs with many files
Automatically pick up packages from under packages/ into BR2_EXTERNAL.

Move many subdirectory READMEs into the toplevel and link to toplevel from those subreadmes instead.
2018-06-17 11:36:56 +01:00
Ciro Santilli
8b5c211c22 gem5: build with ccache
CXX='ccache c++' does not work, CXX=/my/path/to/ccache/wrapper/c++
does not work, the only thing that works it to put it in your PATH.

I would rather put a wrapper that forwards to ccache in this repo to
avoid the external host dependency:

    #!/usr/bin/env bash
    ccache c++ "$@"

but then that script has to remove its directory from PATH or else
infinite recursion, and I have no patience to code that.

I considered using the ccache from Buildroot, but it does not setup the
nice /usr/lib PATH, so I gave up on that as well.
2018-06-11 18:21:11 +01:00
Ciro Santilli
b562d8dfe7 gem5: support variants 2018-06-10 08:57:39 +01:00
Ciro Santilli
cadb92f2df gem5/build: fix shebang 2018-06-08 16:52:36 +01:00
Ciro Santilli
4a20ebd525 gem5: update to 60600f09c25255b3c8f72da7fb49100e2682093a
To verify if vanilla Linux aarch64 v2.17 will boot, but it still didn't.
2018-06-07 07:36:26 +01:00
Ciro Santilli
87a1f724a0 gem5: build outdir/system -> system_dir 2018-06-05 14:46:09 +01:00
Ciro Santilli
ae0701df10 bench-all: get working again
Fix gem5/build wrong path for dd swapfile. Put it under out/ while we are at it
now that we have out of tree builds.

Allow seq_id larger than 7: broke previously because 08 is not valid octal.

Use timeout --foreground to allow killing scons

Don't upload results by default, too insane.
2018-05-31 09:08:45 +01:00
Ciro Santilli
228b86f70e gem5: update to 49f96e7b77925837aa5bc84d4c3453ab5f07408e 2018-05-17 16:54:22 +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
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
cc6099dd6b gem5: update to 2a9573f5942b5416fb0570cf5cb6cdecba733392 2018-04-17 22:54:21 +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
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
9afaecec87 readme: gem5 tracing.
Fix some parsec readme errors after missed ./run flag updates.
2018-03-29 18:24:25 +01:00
Ciro Santilli
60b9e56038 Update gem5 to fix gcc 7 build 2018-03-21 23:01:02 +00:00
Ciro Santilli
2c606e3e1a gem5: undo attempt to use the TARGET_CROSS... 2018-03-12 14:49:04 +00:00
Ciro Santilli
77d2e0a8a5 A bunch of tiny fixes 2018-03-12 04:37:46 +00:00
Ciro Santilli
b8413532a5 Build gem5 through buildroot
Oh, btw, also make it work, since the build was completely broken since
the recent -K refactoring :0)
2018-03-12 03:56:18 +00:00
Ciro Santilli
6e15dcb60e Start sketching parsec buildroot package 2018-03-03 13:45:58 +00:00
Ciro Santilli
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
Ciro Santilli
7bd23baae8 Add m5 to path 2018-02-23 10:01:58 +00:00
Ciro Santilli
2c4a9476be Fix x86 build with GEM5. Boot still fails as before.
Use ./run -g instead of ./rungem5.

More convenient GEM5 kernel command line options with -e differentially.
2018-02-22 00:23:57 +00:00
Ciro Santilli
9e5173f324 GEM5 checkpoint
Add gem5 as buildroot package to cross compile m5.

Add gem5 as a submodule.

Split gem5 from arch on CLI with "-a arm -g" instead of "-a arm-gem5".
2018-02-21 10:19:35 +00:00