Commit 56a5442a authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

images: build multiple images insteado of just one

A base ubuntu image and two derived images for nopaxos and mtcp
parent 65cce77b
......@@ -8,14 +8,18 @@ corundum/obj_dir
corundum/corundum_verilator
net_wire/net_wire
net_tap/net_tap
images/kernel/kheaders/
images/mqnic/Module.symvers
images/mqnic/modules.order
images/mqnic/mqnic.mod*
images/vmlinux
images/bzImage
images/output-ubuntu1804
images/output-ubuntu1804-base
images/output-nopaxos
images/output-mtcp
images/packer
images/packer_cache
images/kheaders.tar.bz2
images/kernel/linux-*/
experiments/build
experiments/out
......
......@@ -31,9 +31,9 @@ if [ ! -d "$NS3_BASE" ] ; then
exit 1
fi
QEMU_IMAGE=$EHSIM_BASE/images/output-ubuntu1804/ubuntu1804
QEMU_IMAGE=$EHSIM_BASE/images/output-ubuntu1804-base/ubuntu1804-base
QEMU_KERNEL=$EHSIM_BASE/images/bzImage
GEM5_IMAGE=$EHSIM_BASE/images/output-ubuntu1804/ubuntu1804.raw
GEM5_IMAGE=$EHSIM_BASE/images/output-ubuntu1804-base/ubuntu1804-base.raw
GEM5_KERNEL=$EHSIM_BASE/images/vmlinux
# Args:
......@@ -49,21 +49,28 @@ init_out() {
# - Instance name
# - Cosim instance
# - secondary hard drive
# - [optional primary image name: default ubuntu1804-base]
run_qemu() {
img_a="$OUTDIR/qemu.hd.a.$1"
img_b="$OUTDIR/qemu.hd.b.$1"
pcisock="$OUTDIR/pci.$2"
rm -f $img_a $img_b
echo Creating disk for qemu $1
qemu-img create -f qcow2 -o backing_file=$QEMU_IMAGE $img_a
if [ -z "$4" ]; then
qemu-img create -f qcow2 -o backing_file=$QEMU_IMAGE $img_a
else
qemu-img create -f qcow2 -o backing_file="$EHSIM_BASE/images/output-$4/$4" $img_a
fi
cp $3 $img_b
echo Starting qemu $1
#i40e.debug=0x8fffffff
#hugepages=1024
$QEMU_CMD -machine q35 -cpu host \
-drive file=$img_a,if=ide,index=0 \
-drive file=$img_b,if=ide,index=1,driver=raw \
-kernel $QEMU_KERNEL \
-append "earlyprintk=ttyS0 console=ttyS0 root=/dev/sda1 init=/home/ubuntu/guestinit.sh i40e.debug=0x8fffffff rw" \
-serial mon:stdio -m $((4 * 1024)) -smp 1 -display none -enable-kvm \
-append "earlyprintk=ttyS0 console=ttyS0 root=/dev/sda1 init=/home/ubuntu/guestinit.sh rw" \
-serial mon:stdio -m $((16 * 1024)) -smp 1 -display none -enable-kvm \
-nic none \
-chardev socket,path=$pcisock,id=cosimcd \
-device cosim-pci,chardev=cosimcd &>$OUTDIR/qemu.$1.log &
......@@ -79,12 +86,20 @@ run_qemu() {
# - cpu type
# - checkpoint dir
# - extra flags
# - [optional primary image name: default ubuntu1804-base]
run_gem5() {
echo Starting gem5 $1
pcisock="$OUTDIR/pci.$2"
shm="$OUTDIR/shm.$2"
cpdir="$OUTDIR/../checkpoint/checkpoints.$5"
mkdir -p $cpdir
if [ -z "$7" ]; then
img="$GEM5_IMAGE"
else
img="$EHSIM_BASE/images/output-$7/$7.raw"
fi
$GEM5_BASE/build/X86/gem5.opt \
--outdir=$OUTDIR/gem5.out.$1 \
$GEM5_BASE/configs/cosim/cosim.py \
......
......@@ -9,12 +9,12 @@ run_corundum_bm r1
run_corundum_bm r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_gem5 r0 r0 build/qemu-nopaxos-replica-0.tar X86KvmCPU r0
run_gem5 r0 r0 build/qemu-nopaxos-replica-0.tar X86KvmCPU r0 "" nopaxos
sleep 1
run_gem5 r1 r1 build/qemu-nopaxos-replica-1.tar X86KvmCPU r1
run_gem5 r2 r2 build/qemu-nopaxos-replica-2.tar X86KvmCPU r2
run_gem5 r1 r1 build/qemu-nopaxos-replica-1.tar X86KvmCPU r1 "" nopaxos
run_gem5 r2 r2 build/qemu-nopaxos-replica-2.tar X86KvmCPU r2 "" nopaxos
sleep 1
run_gem5 c0 c0 build/gem5-nopaxos-client.tar X86KvmCPU c0
run_gem5 c0 c0 build/gem5-nopaxos-client.tar X86KvmCPU c0 "" nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -11,12 +11,12 @@ run_corundum_bm r1
run_corundum_bm r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "" nopaxos
sleep 60
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "" nopaxos
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "" nopaxos
sleep 60
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "" nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -11,10 +11,10 @@ run_corundum_bm r1
run_corundum_bm r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar X86KvmCPU r0
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar X86KvmCPU r1
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar X86KvmCPU r2
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar X86KvmCPU c0
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar X86KvmCPU r0 "" nopaxos
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar X86KvmCPU r1 "" nopaxos
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar X86KvmCPU r2 "" nopaxos
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar X86KvmCPU c0 "" nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -28,10 +28,10 @@ run_corundum_bm r1_cp
run_corundum_bm r2_cp
sleep 0.5
run_ns3_sequencer nopaxos_cp "c0_cp" "r0_cp r1_cp r2_cp"
run_gem5 r0_cp r0_cp build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "-r 0"
run_gem5 r1_cp r1_cp build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "-r 0"
run_gem5 r2_cp r2_cp build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "-r 0"
run_gem5 c0_cp c0_cp build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "-r 0"
run_gem5 r0_cp r0_cp build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "-r 0" nopaxos
run_gem5 r1_cp r1_cp build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "-r 0" nopaxos
run_gem5 r2_cp r2_cp build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "-r 0" nopaxos
run_gem5 c0_cp c0_cp build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "-r 0" nopaxos
client_pid=$!
wait $client_pid
cleanup
......
......@@ -10,10 +10,10 @@ run_corundum_verilator r1
run_corundum_verilator r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "--cosim-sync"
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "--cosim-sync"
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "--cosim-sync"
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "--cosim-sync"
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "--cosim-sync" nopaxos
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "--cosim-sync" nopaxos
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "--cosim-sync" nopaxos
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "--cosim-sync" nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -11,10 +11,10 @@ run_corundum_verilator r1
run_corundum_verilator r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar X86KvmCPU r0
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar X86KvmCPU r1
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar X86KvmCPU r2
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar X86KvmCPU c0
run_gem5 r0 r0 build/gem5-nopaxos-replica-0-cp.tar X86KvmCPU r0 "" nopaxos
run_gem5 r1 r1 build/gem5-nopaxos-replica-1-cp.tar X86KvmCPU r1 "" nopaxos
run_gem5 r2 r2 build/gem5-nopaxos-replica-2-cp.tar X86KvmCPU r2 "" nopaxos
run_gem5 c0 c0 build/gem5-nopaxos-client-cp.tar X86KvmCPU c0 "" nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -28,10 +28,10 @@ run_corundum_verilator r1_cp
run_corundum_verilator r2_cp
sleep 0.5
run_ns3_sequencer nopaxos_cp "c0_cp" "r0_cp r1_cp r2_cp"
run_gem5 r0_cp r0_cp build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "-r 0 --cosim-sync"
run_gem5 r1_cp r1_cp build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "-r 0 --cosim-sync"
run_gem5 r2_cp r2_cp build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "-r 0 --cosim-sync"
run_gem5 c0_cp c0_cp build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "-r 0 --cosim-sync"
run_gem5 r0_cp r0_cp build/gem5-nopaxos-replica-0-cp.tar TimingSimpleCPU r0 "-r 0 --cosim-sync" nopaxos
run_gem5 r1_cp r1_cp build/gem5-nopaxos-replica-1-cp.tar TimingSimpleCPU r1 "-r 0 --cosim-sync" nopaxos
run_gem5 r2_cp r2_cp build/gem5-nopaxos-replica-2-cp.tar TimingSimpleCPU r2 "-r 0 --cosim-sync" nopaxos
run_gem5 c0_cp c0_cp build/gem5-nopaxos-client-cp.tar TimingSimpleCPU c0 "-r 0 --cosim-sync" nopaxos
client_pid=$!
wait $client_pid
cleanup
......
......@@ -9,12 +9,12 @@ run_corundum_verilator r1
run_corundum_verilator r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_qemu r0 r0 build/qemu-nopaxos-replica-0.tar
run_qemu r0 r0 build/qemu-nopaxos-replica-0.tar nopaxos
sleep 1
run_qemu r1 r1 build/qemu-nopaxos-replica-1.tar
run_qemu r2 r2 build/qemu-nopaxos-replica-2.tar
run_qemu r1 r1 build/qemu-nopaxos-replica-1.tar nopaxos
run_qemu r2 r2 build/qemu-nopaxos-replica-2.tar nopaxos
sleep 1
run_qemu c0 c0 build/qemu-nopaxos-client.tar
run_qemu c0 c0 build/qemu-nopaxos-client.tar nopaxos
client_pid=$!
wait $client_pid
cleanup
......@@ -9,12 +9,12 @@ run_corundum_bm r1
run_corundum_bm r2
sleep 0.5
run_ns3_sequencer nopaxos "c0" "r0 r1 r2"
run_qemu r0 r0 build/qemu-nopaxos-replica-0.tar
run_qemu r0 r0 build/qemu-nopaxos-replica-0.tar nopaxos
sleep 1
run_qemu r1 r1 build/qemu-nopaxos-replica-1.tar
run_qemu r2 r2 build/qemu-nopaxos-replica-2.tar
run_qemu r1 r1 build/qemu-nopaxos-replica-1.tar nopaxos
run_qemu r2 r2 build/qemu-nopaxos-replica-2.tar nopaxos
sleep 1
run_qemu c0 c0 build/qemu-nopaxos-client.tar
run_qemu c0 c0 build/qemu-nopaxos-client.tar nopaxos
client_pid=$!
wait $client_pid
cleanup
PACKER_VERSION := 1.6.0
KERNEL_VERSION := 5.4.46
IMAGE := output-ubuntu1804/ubuntu1804
BASE_IMAGE := output-ubuntu1804-base/ubuntu1804-base
NOPAXOS_IMAGE := output-nopaxos/nopaxos
MTCP_IMAGE := output-mtcp/mtcp
IMAGES := $(BASE_IMAGE) $(NOPAXOS_IMAGE) $(MTCP_IMAGE)
RAW_IMAGES := $(addsuffix .raw,$(IMAGES))
all: $(IMAGE) $(IMAGE).raw vmlinux bzImage mqnic/mqnic.ko
all: $(IMAGES) $(RAW_IMAGES) vmlinux bzImage mqnic/mqnic.ko
clean:
rm -rf packer packer_cache output-ubuntu1804 vmlinux bzImage \
mqnic/mqnic.ko mqnic/*.o mqnic/.*.cmd mqnic/mqnic.mod.c \
mqnic/Module.symvers mqnic/modules.order \
kernel/linux-5.4.46/
kernel/linux-$(KERNEL_VERSION)/ kheaders.tar.bz2
################################################
# Disk image
$(IMAGE).raw: $(IMAGE)
%.raw: %
qemu-img convert -f qcow2 -O raw $< $@
$(IMAGE): $(wildcard scripts/*) packer ubuntu1804.json
rm -rf output-ubuntu1804
./packer build ubuntu1804.json
$(BASE_IMAGE): $(wildcard scripts/*) packer ubuntu1804-base.json bzImage kheaders.tar.bz2
rm -rf output-ubuntu1804-base
./packer build ubuntu1804-base.json
touch $@
$(NOPAXOS_IMAGE): $(wildcard scripts/*) packer nopaxos.json $(BASE_IMAGE) scripts/install-nopaxos.sh
rm -rf output-nopaxos
./packer build nopaxos.json
touch $@
$(MTCP_IMAGE): $(wildcard scripts/*) packer mtcp.json $(BASE_IMAGE) scripts/install-mtcp.sh
rm -rf output-mtcp
./packer build mtcp.json
touch $@
packer:
wget https://releases.hashicorp.com/packer/$(PACKER_VERSION)/packer_$(PACKER_VERSION)_linux_amd64.zip
......@@ -30,17 +45,47 @@ packer:
################################################
# Kernel
kernel/linux-$(KERNEL_VERSION)/vmlinux: kernel/linux-$(KERNEL_VERSION)
$(MAKE) -C kernel/linux-$(KERNEL_VERSION)
KERNEL_DIR := kernel/linux-$(KERNEL_VERSION)
vmlinux: kernel/linux-$(KERNEL_VERSION)/vmlinux
$(KERNEL_DIR)/vmlinux: $(KERNEL_DIR)/.config
$(MAKE) -C $(KERNEL_DIR)
touch $@
vmlinux: $(KERNEL_DIR)/vmlinux
cp kernel/linux-$(KERNEL_VERSION)/vmlinux vmlinux
touch $@
# this dependency is a bit stupid, but not sure how to better do this
bzImage: kernel/linux-$(KERNEL_VERSION)/vmlinux
cp kernel/linux-$(KERNEL_VERSION)/arch/x86_64/boot/bzImage bzImage
bzImage: $(KERNEL_DIR)/vmlinux
cp $(KERNEL_DIR)/arch/x86_64/boot/bzImage bzImage
touch $@
kheaders.tar.bz2:
rm -rf ./kernel/kheaders
mkdir -p ./kernel/kheaders
$(MAKE) -C $(KERNEL_DIR) headers_install INSTALL_HDR_PATH=$(abspath ./kernel/kheaders/usr)
$(MAKE) -C $(KERNEL_DIR) modules_install INSTALL_MOD_PATH=$(abspath ./kernel/kheaders)
rm -f ./kernel/kheaders/lib/modules/$(KERNEL_VERSION)/build
ln -s /usr/src/linux-headers-$(KERNEL_VERSION) \
./kernel/kheaders/lib/modules/$(KERNEL_VERSION)/build
rm -f ./kernel/kheaders/lib/modules/$(KERNEL_VERSION)/source
mkdir -p ./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)
cp -r $(KERNEL_DIR)/.config $(KERNEL_DIR)/Makefile \
$(KERNEL_DIR)/Module.symvers $(KERNEL_DIR)/scripts \
$(KERNEL_DIR)/include \
./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)/
mkdir -p ./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)/tools/objtool/
cp $(KERNEL_DIR)/tools/objtool/objtool \
./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)/tools/objtool/
mkdir -p ./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)/arch/x86/
cp -r $(KERNEL_DIR)/arch/x86/Makefile \
$(KERNEL_DIR)/arch/x86/Makefile_32.cpu \
$(KERNEL_DIR)/arch/x86/Makefile.um \
$(KERNEL_DIR)/arch/x86/include \
./kernel/kheaders/usr/src/linux-headers-$(KERNEL_VERSION)/arch/x86
cd ./kernel/kheaders && tar cjf ../../$@ .
kernel/linux-$(KERNEL_VERSION):
kernel/linux-$(KERNEL_VERSION)/.config: kernel/config-$(KERNEL_VERSION)
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$(KERNEL_VERSION).tar.xz
tar xf linux-$(KERNEL_VERSION).tar.xz
rm -f linux-$(KERNEL_VERSION).tar.xz
......
{
"_comment": "Build with `packer build ubuntu.json`",
"builders": [
{
"iso_urls": [ "output-ubuntu1804-base/ubuntu1804-base" ],
"iso_checksum": "none",
"disk_image": "true",
"use_backing_file": "true",
"headless": "{{ user `headless` }}",
"disable_vnc": "false",
"output_directory": "output-{{ user `vm_name` }}",
"qemuargs": [
[
"-m",
"{{ user `memory` }}"
],
[
"-display",
"none"
],
[
"-machine",
"accel=kvm"
],
[
"-cpu",
"host"
],
[
"-smp",
"cpus={{ user `cpus`}}"
],
[
"-serial",
"mon:stdio"
]
],
"shutdown_command": "echo '{{ user `ssh_password` }}'|sudo -S shutdown -P now",
"ssh_password": "{{ user `ssh_password` }}",
"ssh_timeout": "10000s",
"ssh_username": "{{ user `ssh_username` }}",
"type": "qemu",
"vm_name": "{{ user `vm_name` }}"
}
],
"provisioners": [
{
"execute_command": "echo '{{ user `ssh_password` }}' | {{.Vars}} sudo -E -S bash '{{.Path}}'",
"scripts": [
"scripts/install-mtcp.sh"
],
"type": "shell"
}
],
"variables": {
"cleanup_pause": "",
"cpus": "4",
"custom_script": ".",
"desktop": "false",
"disk_size": "10000",
"headless": "", "hostname": "vagrant",
"memory": "4096",
"preseed": "preseed.cfg",
"ssh_fullname": "vagrant",
"ssh_password": "ubuntu",
"ssh_username": "ubuntu",
"vagrantfile_template": "",
"version": "0.1.0",
"vm_name": "mtcp"
}
}
{
"_comment": "Build with `packer build ubuntu.json`",
"builders": [
{
"iso_urls": [ "output-ubuntu1804-base/ubuntu1804-base" ],
"iso_checksum": "none",
"disk_image": "true",
"use_backing_file": "true",
"headless": "{{ user `headless` }}",
"disable_vnc": "true",
"output_directory": "output-{{ user `vm_name` }}",
"qemuargs": [
[
"-m",
"{{ user `memory` }}"
],
[
"-display",
"none"
],
[
"-machine",
"accel=kvm"
],
[
"-cpu",
"host"
],
[
"-smp",
"cpus={{ user `cpus`}}"
]
],
"shutdown_command": "echo '{{ user `ssh_password` }}'|sudo -S shutdown -P now",
"ssh_password": "{{ user `ssh_password` }}",
"ssh_timeout": "10000s",
"ssh_username": "{{ user `ssh_username` }}",
"type": "qemu",
"vm_name": "{{ user `vm_name` }}"
}
],
"provisioners": [
{
"execute_command": "echo '{{ user `ssh_password` }}' | {{.Vars}} sudo -E -S bash '{{.Path}}'",
"scripts": [
"scripts/install-nopaxos.sh"
],
"type": "shell"
},
{
"type": "file",
"source": "nopaxos.config",
"destination": "/tmp/nopaxos.config",
"direction": "upload"
},
{
"type": "shell",
"inline": ["sudo mv /tmp/nopaxos.config /root/nopaxos.config"]
}
],
"variables": {
"cleanup_pause": "",
"cpus": "4",
"custom_script": ".",
"desktop": "false",
"disk_size": "10000",
"headless": "", "hostname": "vagrant",
"memory": "4096",
"preseed": "preseed.cfg",
"ssh_fullname": "vagrant",
"ssh_password": "ubuntu",
"ssh_username": "ubuntu",
"vagrantfile_template": "",
"version": "0.1.0",
"vm_name": "nopaxos"
}
}
#!/bin/bash -eux
set -eux
apt-get -y install libnuma-dev libgmp-dev bc python
cd /tmp
wget https://ftp.gnu.org/gnu/automake/automake-1.16.2.tar.gz
tar xf automake-1.16.2.tar.gz
cd automake-1.16.2
./configure
make -j4 install
cd /tmp
git clone https://github.com/mtcp-stack/mtcp.git /root/mtcp
cd /root/mtcp
git submodule init
git submodule update
export RTE_SDK=$PWD/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc
sed -i -e 's/O_TO_EXE_STR =/\$(shell if [ \! -d \${RTE_SDK}\/\${RTE_TARGET}\/lib ]\; then mkdir \${RTE_SDK}\/\${RTE_TARGET}\/lib\; fi)\nLINKER_FLAGS = \$(call linkerprefix,\$(LDLIBS))\n\$(shell echo \${LINKER_FLAGS} \> \${RTE_SDK}\/\${RTE_TARGET}\/lib\/ldflags\.txt)\nO_TO_EXE_STR =/g' $RTE_SDK/mk/rte.app.mk
sed -i -e 's/-Werror//' dpdk/kernel/linux/kni/Makefile
sed -i -e 's/-Werror//' dpdk/kernel/linux/igb_uio/Makefile
sed -i -e 's/-Werror//' dpdk/mk/toolchain/gcc/rte.vars.mk
rm -rf dpdk/.git
sed -i \
-e 's/CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n/CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=y/' \
-e 's/CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n/CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=y/' \
-e 's/CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n/CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=y/' \
-e 's/CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO/CONFIG_RTE_LOG_LEVEL=RTE_LOG_DEBUG/' \
dpdk/config/common_base
make -j4 -C dpdk install T=$RTE_TARGET
./configure --with-dpdk-lib=$RTE_SDK/$RTE_TARGET CFLAGS="-DMAX_CPUS=8"
sed -i -e 's://#define DEBUG:#define DEBUG:' \
-e 's/RTE_LOG_EMERG/RTE_LOG_DEBUG/g' \
dpdk-iface-kmod/dpdk_iface_main.c
(cd dpdk-iface-kmod && make -j4)
make -j4
git clone https://github.com/tcp-acceleration-service/tas.git /root/tas
(cd /root/tas && make lib/utils/rng.o)
git clone https://github.com/FreakyPenguin/benchmarks.git /root/tasbench
cd /root/tasbench/micro_rpc
make echoserver_mtcp testclient_mtcp MTCP_BASE="/root/mtcp" TAS_CODE="/root/tas"
echo "blacklist i40e" > /etc/modprobe.d/i40e_bl.conf
......@@ -24,6 +24,7 @@ automake
libtool
g++
libssl-dev
ethtool
"
if [[ $INSTALL_DEV_PACKAGES =~ true || $INSTALL_DEV_PACKAGES =~ 1 ||
......
......@@ -79,7 +79,6 @@
"scripts/sshd.sh",
"scripts/update.sh",
"scripts/packages.sh",
"scripts/install.sh",
"scripts/cleanup.sh"
],
"type": "shell"
......@@ -92,13 +91,30 @@
},
{
"type": "file",
"source": "nopaxos.config",
"destination": "/tmp/nopaxos.config",
"source": "bzImage",
"destination": "/tmp/bzImage",
"direction": "upload"
},
{
"type": "file",
"source": "kernel/config-5.4.46",
"destination": "/tmp/config-5.4.46",
"direction": "upload"
},
{
"type": "file",
"source": "kheaders.tar.bz2",
"destination": "/tmp/kheaders.tar.bz2",
"direction": "upload"
},
{
"type": "shell",
"inline": ["sudo mv /tmp/nopaxos.config /root/nopaxos.config"]
"inline": [
"sudo mv /tmp/bzImage /boot/vmlinuz-5.4.46",
"sudo mv /tmp/config-5.4.46 /boot/config-5.4.46",
"sudo update-grub",
"cd / && sudo tar xf /tmp/kheaders.tar.bz2"
]
},
{
"type": "file",
......@@ -140,7 +156,7 @@
"update": "false",
"vagrantfile_template": "",
"version": "0.1.0",
"vm_name": "ubuntu1804"
"vm_name": "ubuntu1804-base"
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment