SE mode tests were failing in some cases where the VM did not have enough memory to satisfy the constraints of the simulated system. This change ensures the VM allows overcommitting of memory. Change-Id: I1800288e16146bdae612a401c2ff282d8664892d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71498 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com>
55 lines
2.3 KiB
Ruby
55 lines
2.3 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.box = "generic/ubuntu2204"
|
|
config.vm.box_check_update = true
|
|
config.vm.define "<VM NAME>"
|
|
config.vm.hostname = "<VM NAME>"
|
|
# allows us to ssh into the machine, addressing the problem below
|
|
# https://www.reddit.com/r/vagrant/comments/sb7hfl/new_to_vagrant_getting_efault_warning/
|
|
config.ssh.username = "vagrant"
|
|
config.ssh.password = "vagrant"
|
|
|
|
config.vm.provider "libvirt" do |vb|
|
|
# Customize the amount of cpus and memory on the VM:
|
|
vb.cpus = "4".to_i
|
|
vb.memory = "16384".to_i
|
|
end
|
|
|
|
# sets up vm
|
|
config.vm.provision :shell, path: "provision_root.sh"
|
|
config.vm.provision :shell, privileged: false, path: "provision_nonroot.sh"
|
|
# The provision_root.sh adds the vagrant user to the docker group, so we need to reload the VM.
|
|
config.vm.provision :reload
|
|
config.vm.provision :shell, run: 'always', inline: <<-SHELL
|
|
# When running gem5 in SE mode we must overcommit memory.
|
|
# This is run on every startup of the VM.
|
|
/sbin/sysctl vm.overcommit_memory=1
|
|
SHELL
|
|
config.vm.provision :shell, privileged: false, run: 'always', inline: <<-SHELL
|
|
if [ -d ~/actions-runner ]; then
|
|
# This will be run everytime the VM is run (once created).
|
|
cd actions-runner
|
|
nohup ./run.sh &
|
|
else
|
|
# This will be run the first time the VM is created.
|
|
mkdir ~/actions-runner && cd ~/actions-runner
|
|
curl -so actions-runner-linux-x64-2.304.0.tar.gz -L \
|
|
https://github.com/actions/runner/releases/download/v2.304.0/actions-runner-linux-x64-2.304.0.tar.gz
|
|
tar xzf ./actions-runner-linux-x64-2.304.0.tar.gz
|
|
|
|
# configure the runner
|
|
# echo automatically sets the name of the runner, and the tags
|
|
# create a personal access token with admin permission and copy it into the curl command
|
|
echo -ne '\n\nbuild\n\n' | ./config.sh --url https://github.com/<GITHUB REPO> --token $(curl -L \
|
|
-X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer <PERSONAL ACCESS TOKEN>" \
|
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
|
https://api.github.com/repos/<GITHUB REPO>/actions/runners/registration-token | jq -r '.token')
|
|
# start the runner
|
|
nohup ./run.sh &
|
|
fi
|
|
SHELL
|
|
|
|
end
|