Code Monkey home page Code Monkey logo

vhive-serverless / vswarm-u Goto Github PK

View Code? Open in Web Editor NEW
26.0 6.0 4.0 14.18 MB

Framework that integrates the serverless benchmark suite vSwarm with gem5, the state-of-the-art research platform for system-and microarchitecture.

Home Page: https://vhive-serverless.github.io/vSwarm-u/

License: MIT License

Go 2.10% Shell 26.13% Python 51.40% Makefile 8.87% Dockerfile 1.51% Jupyter Notebook 2.58% C 4.57% Assembly 2.84%
gem5 microarchitecture research serverless simulation vswarm

vswarm-u's Introduction

vSwarm-u Header

Build Linux Kernel Build Gem5 x86 base disk image Arm base disk image Function Install CI

doc GitHub release (latest by date) License: MIT follow on Twitter

Serverless computing represent a new class of workloads, challenging the microarchitecture of modern CPU's. The mission of vSwarm-μ is to provide microarchitect's with the tools they need to address those challenges in next generation CPU's. As such vSwarm-μ is part of the vHive Ecosystem and allow cycle accurate simulations of containerized serverless benchmarks from vSwarm using gem5

Challenges of Serverless Host Simulation

Serverless computing has emerged as a widely used paradigm for deploying services in the cloud. However, with their unique characteristics of short execution times and infrequent invocation of function instances serverless workloads set new demands on both the microarchitecture of modern server CPU’s as well as the research tools built to design this microarchitecture.

gem5 is the state-of-the-art research platform for system- and microarchitecture but does not support key layers of the serverless software stack in its reference setup. Moreover, the common way of ignoring large parts of the system stack and simplifying test scenarios in favour of simulation speed is not applicable to serverless. Due to its significant part faction of execution time spend in communication and system stack components such simplifications may result in wrong experimental data and, consequently, mislead research.

The vSwarm-μ Framework

Serverless software stack on gem5 Serverless Test infrastructure

vSwarm-μ offers two main components to address the challenges of serverless host simulation. A full serverless software stack including kernel, OS and packages compatible with gem5. Furthermore, the infrastructure to drive function instances running on the simulated serverless host server without interfering or simplifying the complexity of the test system.

That will equip microarchitect's and researchers with the tools they need to identify the real bottlenecks in modern hardware when running serverless workloads.

Interested? Find more information why and how we build vSwarm-μ from its first presentation and the remaining documentation.

Key features of vSwarm-μ

To enable microarchitectural innovation, vSwarm-μ provides a ready-to-use serverless simulation platform based on the gem5 simulator. With vSwarm-μ, 20 functions from the vSwarm benchmark suite are ready to run in gem5 unmodified from their deployment on real hardware – i.e., in the same OS environment and containerization.

This is enabled through a set of tools, configurations and documentation to facilitate the necessary multi-node (client-server) setup in gem5, load generation, function deployment, and results analysis. Uniquely, because function execution times are relatively short, vSwarm-μ affords simulation of end-to-end function execution without the need for sampling or workload subsetting.

NEW: vSwarm-μ supports now x86 and the Arm instruction set.

Referencing our work

If you decide to use vSwarm-μ for your research and experiments, we are thrilled to support you by offering advice for potential extensions of vSwarm-μ and always open for collaboration.

Please cite our paper that has been recently accepted to ISCA 2022:

@inproceedings{schall:lukewarm,
  author    = {Schall, David and
               Margaritov, Artemiy and
               Ustiugov, Dmitrii and
               Sandberg, Andreas and
               Grot, Boris},
  title     = {Lukewarm Serverless Functions: Characterization and Optimization},
  year      = {2022},
  isbn      = {9781450386104},
  publisher = {Association for Computing Machinery},
  address   = {New York, NY, USA},
  doi       = {10.1145/3470496.3527390},
  booktitle = {Proceedings of the 49th Annual International Symposium on Computer Architecture},
  pages     = {757–770},
  numpages  = {14},
  keywords  = {characterization, instruction prefetching, microarchitecture, serverless},
  location  = {New York, New York},
  series    = {ISCA '22}
}

Getting started with vSwarm-μ

vSwarm-μ can be deployed on premises or in the cloud, with support for nested virtualization. We provide a quick-start guide that describes the initial setup, as well as how to set up benchmarking experiments.

Getting help and contributing

We would be happy to answer any questions in GitHub Issues and encourage the open-source community to submit new Issues, assist in addressing existing issues and limitations, and contribute their code with Pull Requests.

License and copyright

vSwarm-μ is free. We publish the code under the terms of the MIT License that allows distribution, modification, and commercial use. This software, however, comes without any warranty or liability.

The software is maintained by the vHive Ecosystem as well as the EASE lab as part of the University of Edinburgh.

Maintainers

Directory Structure

  • simulation contains everything related to run simulations.
  • setup contains all scripts and makefiles to setup vSwarm-μ
  • tools includes a client that can be instrumented for gem5
  • runner is for setting up self-hosted GitHub Actions runners.
  • docs contains the documentation on a number of relevant topics.

Known problems

Sometimes the simulator get stuck during while running with the detailed core model. We are working on it and try to make the setup more stable. In the meantime the best is to kill the process and restart the simulation for this particular function. Use

make -f simulation/Makefile kill_gem5

to kill all currently running simulations at once.

vswarm-u's People

Contributors

dependabot[bot] avatar dhschall avatar harshitgarg22 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vswarm-u's Issues

Two machine setup.

Need to add the configurations for the two machine setup

  • run_simulation templates in the simulations folder
  • Add documentation. Explain sim_quantum.

qemu-system-x86_64: Failed to get "write" lock

Trying set up Swarm-u for first time using Quick Start guide posted here https://vhive-serverless.github.io/vSwarm-u/quick_start/

Completed setup/setup_host.sh with no errors

Now I'm testing downloads
$ make -f test/Makefile all_emu

I get this error "Failed to get write lock" for disk.qcow2 - This is the only process on my system

Running this on Dell laptop with Ubuntu 20.04.5 LTS with 12th Gen Intel Core i7-12800H
$ egrep -c '(vmx|svm)' /proc/cpuinfo
40

DETAILS BELOW:
~/swarm/vSwarm-u-main$ make -f test/Makefile all_emu
make -f /home/raghu/swarm/vSwarm-u-main/test/Makefile build
make[1]: Entering directory '/home/raghu/swarm/vSwarm-u-main'
make[1]: Nothing to be done for 'build'.
make[1]: Leaving directory '/home/raghu/swarm/vSwarm-u-main'
make -f /home/raghu/swarm/vSwarm-u-main/test/Makefile run_emu_test
make[1]: Entering directory '/home/raghu/swarm/vSwarm-u-main'
if [ -f test_dir//test.log ]; then rm test_dir//test.log; fi
make -f /home/raghu/swarm/vSwarm-u-main/test/Makefile create_run_script
make[2]: Entering directory '/home/raghu/swarm/vSwarm-u-main'
cp /home/raghu/swarm/vSwarm-u-main/test/run_emu_test.template.sh test_dir//run.sh
make[2]: Leaving directory '/home/raghu/swarm/vSwarm-u-main'
make -f /home/raghu/swarm/vSwarm-u-main/test/Makefile serve_start
make[2]: Entering directory '/home/raghu/swarm/vSwarm-u-main'
make[2]: Nothing to be done for 'serve_start'.
make[2]: Leaving directory '/home/raghu/swarm/vSwarm-u-main'
make -f /home/raghu/swarm/vSwarm-u-main/test/Makefile run_kvm
make[2]: Entering directory '/home/raghu/swarm/vSwarm-u-main'
sudo qemu-system-x86_64
-nographic
-cpu host -enable-kvm
-smp 2
-m 2G
-drive file=test_dir//disk.qcow2,format=qcow2,if=virtio
-kernel test_dir//kernel
-append 'console=ttyS0 root=/dev/vda2'
[sudo] password for raghu:
qemu-system-x86_64: -drive file=test_dir//disk.qcow2,format=qcow2,if=virtio: Failed to get "write" lock
Is another process using the image [test_dir//disk.qcow2]?
make[2]: *** [/home/raghu/swarm/vSwarm-u-main/test/Makefile:185: run_kvm] Error 1
make[2]: Leaving directory '/home/raghu/swarm/vSwarm-u-main'
make[1]: *** [/home/raghu/swarm/vSwarm-u-main/test/Makefile:232: run_test] Error 2
make[1]: Leaving directory '/home/raghu/swarm/vSwarm-u-main'
make: *** [test/Makefile:60: all_emu] Error 2

PerfKvmCounter::attach failed (2)

Hi,

I've been trying to setup and run some simulations following the documentation. Everything seems to be working until when I try to setup the functions.

When I run ./setup_function.sh in wkdir, I get this output:
`+ GEM5=/home/atlas/vSwarm-u/resources//gem5/build/X86/gem5.opt

  • KERNEL=kernel
  • DISK_IMAGE=disk.img
  • GEM5_CONFIG=run_sim.py
  • sudo chown atlas /dev/kvm
  • FN=fibonacci-go
  • RESULTS_DIR=results
  • OUTDIR=results/fibonacci-go/
  • mkdir -p results/fibonacci-go/
  • sudo /home/atlas/vSwarm-u/resources//gem5/build/X86/gem5.opt --outdir=results/fibonacci-go/ run_sim.py --kernel kernel --disk disk.img --function fibo
    gem5 Simulator System. https://www.gem5.org
    gem5 is copyrighted software; use the --copyright option for details.

gem5 version 22.0.0.1
gem5 compiled Jan 9 2023 16:21:40
gem5 started Jan 9 2023 19:59:21
gem5 executing on Thesis-x86, pid 1590
command line: /home/atlas/vSwarm-u/resources//gem5/build/X86/gem5.opt --outdir=results/fibonacci-go/ run_sim.py --kernel kernel --disk disk.img --functi

/home/atlas/vSwarm-u
Create CPU: X86KvmCPU
Created CPU: 2x X86KvmCPU, Mem mode: atomic_noncaching
--- Setup Mode ---
Global frequency set at 1000000000000 ticks per second
warn: system.workload.acpi_description_table_pointer.rsdt adopting orphan SimObject param 'entries'
warn: failed to generate dot output from results/fibonacci-go/config.dot
build/X86/sim/kernel_workload.cc:46: info: kernel located at: kernel
0: system.pc.south_bridge.cmos.rtc: Real-time clock set to Sun Jan 1 00:00:00 2012
system.pc.com_1.device: Listening for connections on port 3456
0: system.remote_gdb: listening for remote gdb on port 7000
build/X86/mem/coherent_xbar.cc:140: warn: CoherentXBar system.llc_bus has no snooping ports attached!
build/X86/dev/intel_8254_timer.cc:128: warn: Reading current count from inactive timer.
Start simulation...
build/X86/cpu/kvm/base.cc:150: info: KVM: Coalesced MMIO disabled by config.
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 2
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 3
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 4
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 5
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 6
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 8
build/X86/cpu/kvm/base.cc:150: info: KVM: Coalesced MMIO disabled by config.
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 2
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 3
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 4
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 5
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 6
build/X86/arch/x86/cpuid.cc:180: warn: x86 cpuid family 0x0000: unimplemented function 8
build/X86/sim/simulate.cc:194: info: Entering event queue @ 0. Starting simulation...
build/X86/cpu/kvm/perfevent.cc:183: panic: PerfKvmCounter::attach failed (2)
Memory Usage: 2390716 KBytes
build/X86/cpu/kvm/perfevent.cc:183: panic: PerfKvmCounter::attach failed (2)
Memory Usage: 2390716 KBytes
Program aborted at tick 0
./setup_function.sh: line 57: 1589 Aborted`

I'd appreciate any help you could provide!

Thanks,
Atlas

Workitems for client

  • Use workitems instead of fail codes.
  • Add instrumentation in the go-client.
  • Update doc

Client fail occasionally with: fatal error: unlock of unlocked lock

[36mINFO�[0m[0010] Invoked for 0 times                          
�[36mINFO�[0m[0010] Invoked for 4 times                          
�[36mINFO�[0m[0010] Invoked for 8 times                          
�[36mINFO�[0m[0010] Invoked for 12 times                         
fatal error: unlock of unlocked lock

runtime stack:
runtime.throw({0x919f3d?, 0xeb7ef29e0?})
	/usr/local/go/src/runtime/panic.go:992 +0x71
runtime.unlock2(0x0?)
	/usr/local/go/src/runtime/lock_futex.go:117 +0x8b
runtime.unlockWithRank(...)
	/usr/local/go/src/runtime/lockrank_off.go:31
runtime.unlock(...)
	/usr/local/go/src/runtime/lock_futex.go:111
runtime.selparkcommit(0xc0000021a0?, 0x400000002?)
	/usr/local/go/src/runtime/select.go:93 +0x5e
runtime.park_m(0xc0000021a0?)
	/usr/local/go/src/runtime/proc.go:3325 +0xa7
runtime.mcall()
	/usr/local/go/src/runtime/asm_amd64.s:425 +0x43

goroutine 1 [select]:
google.golang.org/grpc/internal/transport.(*Stream).waitOnHeader(0xc0004c8000)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/transport.go:324 +0x7c
google.golang.org/grpc/internal/transport.(*Stream).RecvCompress(...)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/transport.go:339
google.golang.org/grpc.(*csAttempt).recvMsg(0xc000477d40, {0x8b2f40?, 0xc0004bab00}, 0x7f408509a258?)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/stream.go:986 +0xbe
google.golang.org/grpc.(*clientStream).RecvMsg.func1(0x0?)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/stream.go:851 +0x25
google.golang.org/grpc.(*clientStream).withRetry(0xc0004afd40, 0xc0004ebba0, 0xc0004ebb70)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/stream.go:715 +0x144
google.golang.org/grpc.(*clientStream).RecvMsg(0xc0004afd40, {0x8b2f40?, 0xc0004bab00?})
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/stream.go:850 +0x11f
google.golang.org/grpc.invoke({0x9ccf90?, 0xc000024058?}, {0x91bb2f?, 0x30?}, {0x8b3000, 0xc0004baac0}, {0x8b2f40, 0xc0004bab00}, 0x0?, {0x0, ...})
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/call.go:73 +0xd7
google.golang.org/grpc.(*ClientConn).Invoke(0x7f40add06108?, {0x9ccf90?, 0xc000024058?}, {0x91bb2f?, 0x0?}, {0x8b3000?, 0xc0004baac0?}, {0x8b2f40?, 0xc0004bab00?}, {0x0, ...})
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/call.go:37 +0x265
github.com/vhive-serverless/vSwarm-proto/proto/fibonacci.(*greeterClient).SayHello(0xc0002ccb20, {0x9ccf90, 0xc000024058}, 0xc0004ebdc8?, {0x0, 0x0, 0x0})
	/home/choi/go/pkg/mod/github.com/vhive-serverless/[email protected]/proto/fibonacci/fibonacci_grpc.pb.go:35 +0xce
github.com/vhive-serverless/vSwarm-proto/grpcclient.(*FibonacciClient).Request(0xc000069880, {0x9ccf90, 0xc000024058}, {{0x7ffd24424edf?, 0x1?}, {0x90c759?, 0xc000253c80?}})
	/home/choi/go/pkg/mod/github.com/vhive-serverless/[email protected]/grpcclient/fibonacci_client.go:47 +0xaa
main.invokeFunctionInstrumented({0x9ccf90?, 0xc000024058}, 0x14)
	/home/choi/vSwarm-u/tools/client/main.go:172 +0x150
main.main()
	/home/choi/vSwarm-u/tools/client/main.go:119 +0x6e5

goroutine 6 [select]:
google.golang.org/grpc.(*ccBalancerWrapper).watcher(0xc000069900)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/balancer_conn_wrappers.go:112 +0x73
created by google.golang.org/grpc.newCCBalancerWrapper
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/balancer_conn_wrappers.go:73 +0x22a

goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0x7f4085077748, 0x72)
	/usr/local/go/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc000092a00?, 0xc0002f0000?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc000092a00, {0xc0002f0000, 0x8000, 0x8000})
	/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc000092a00, {0xc0002f0000?, 0x8e50e0?, 0x43a101?})
	/usr/local/go/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc000010400, {0xc0002f0000?, 0x100c0004c6930?, 0x485000801?})
	/usr/local/go/src/net/net.go:183 +0x45
bufio.(*Reader).Read(0xc00006acc0, {0xc000020200, 0x9, 0xc0004716ec?})
	/usr/local/go/src/bufio/bufio.go:236 +0x1b4
io.ReadAtLeast({0x9c8c80, 0xc00006acc0}, {0xc000020200, 0x9, 0x9}, 0x9)
	/usr/local/go/src/io/io.go:331 +0x9a
io.ReadFull(...)
	/usr/local/go/src/io/io.go:350
golang.org/x/net/http2.readFrameHeader({0xc000020200?, 0x9?, 0xc000052d70?}, {0x9c8c80?, 0xc00006acc0?})
	/home/choi/go/pkg/mod/golang.org/x/[email protected]/http2/frame.go:237 +0x6e
golang.org/x/net/http2.(*Framer).ReadFrame(0xc0000201c0)
	/home/choi/go/pkg/mod/golang.org/x/[email protected]/http2/frame.go:498 +0x95
google.golang.org/grpc/internal/transport.(*http2Client).reader(0xc0000003c0)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_client.go:1516 +0x414
created by google.golang.org/grpc/internal/transport.newHTTP2Client
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_client.go:369 +0x193f

goroutine 13 [runnable]:
runtime.Gosched(...)
	/usr/local/go/src/runtime/proc.go:317
google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc00006ad20)
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/controlbuf.go:571 +0x1f6
google.golang.org/grpc/internal/transport.newHTTP2Client.func3()
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_client.go:419 +0x65
created by google.golang.org/grpc/internal/transport.newHTTP2Client
	/home/choi/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_client.go:417 +0x1f91

Knative support

Currently we only support container in gem5.
However, we want full serverless and also run the full knative stack.

RuntimeError: New CPU (system.cpu0) is already active

I am following the quick start and tried to run ./sim_function.sh fibonacci-go results/, but then I got the following error, how should I solve it?

11: Stop client
Switch to kvm core
switching cpus
RuntimeError: New CPU (system.cpu0) is already active.

At:
build/X86/python/m5/simulate.py(288): switchCpus
/home/zhewen/vSwarm-u/gem5utils/systems/simple/system.py(143): switchToKvmCpus
run_sim.py(163): executeM5FailCode
run_sim.py(186): simulate
run_sim.py(243):
build/X86/python/m5/main.py(442): main
build/X86/cpu/kvm/base.cc:570: hack: Pretending totalOps is equivalent to totalInsts()

Experimenting with gem5

We need one makefile for preparing the experiments.
The steps that need to be performed are:

  1. Setup wkdir
  2. Define functions using the generated templates
  3. Install the functions on the disk
  4. Start the simulator with the generated scripts

Enhanced Documentation

Need documentation for
Setup

  • github runner not urgent
  • test client
    • m5 cmd --> point to gem5
    • m5ops annotations
  • Analyse results
    • More details about graph plottings
    • MPKI...
  • Details
    • Take snapshots
    • Run from snapshots

Add delay parameter to test-client

In order to distinguish between different requests we need to add a delay between consecutive invocations. Otherwise requests might overlap and may benefit from queuing in gRPC

Add support for arm architecture

Currently only x86 is supported. However, arm is already quite big. We want to be able to also simulate arm64.
Todos:

  • vSwarm functions need to have multiarch support for container images.
  • ubuntu images need to be build for arm64 (ask @david. Has already everything)
  • compile gem5 for arm
  • m5 binary for arm

Fix security vulnerability

Alert:
containerd CRI plugin: Host memory exhaustion through ExecSync #2
Fix with:
require github.com/containerd/containerd v1.6.6

Documentation for Initial Release

  • Main Readme need to include Jukebox paper.
  • Only high level overview.
  • All others documentation in docs folder
  • #22

Need documentation for

  • Setup
  • Build resources --> setup_host
    • Build disk
    • Build kernel
    • build gem5
    • github runner not urgent
  • test client
    • m5 cmd --> point to gem5
    • m5ops annotations
  • Run experiments (methodology)
    • Build wkdir
    • configure functions
    • install functions on disk
    • start simulator
    • Analyse results
  • Details
    • Take snapshots
    • Run from snapshots
    • Instrument client for trigger point

Todos:

  • Link check
  • Spell check need to work
  • Link to roadmap.
  • Update mission
  • Fix links in main readme

Create initial CI pipelines

We need pipelines for building:

  • Linux kernel
  • Disk image
  • gem5

Furthermore a pipeline is needed to test one function with

  • Emulator
  • Simulator

Build badges in main Readme.

Quick start guide

Implement a rapid way to setup all the experiments.
Previously we needed to install the disk image our self now we can download it from the most recent release.

  • Add this new feature in the setup host script
  • Create quickstart guide.
  • Add python download script.
  • Fix documentation link

Workload hooks: instrumented Scheduler

We have workitems as trigger points already integrated for instrumentation on the client side.
As istrumentation on the server side we want to add workload hooks. Which can be used to attach probe points to the linux scheduler.

  • #50
  • #34
  • Alternatively add it via EXTRAS for the beginning
  • Integrate the workload hooks from serverless-perf to vswarm-u
  • Add documentation

Add all functions from vSwarm.

For now we only have the functions for fibonacci, aes and auth in the simulation directories.
Add onlineshop and hotel-app also the infrastructure:

  • function list
  • function yaml
  • CI tests.

Build disk image for Ubuntu 22.04

Bump up the version of ubuntu what we use to build the disk images to ubuntu 22.04
Build linux kernel with newer version
Its recommended to upgrate all packages

$ sudo apt update
$ sudo apt full-upgrade

Todo:
Download iso 22.04
Build kernel 5.xx

Compatibility Issue of the Host and the VM

Hi,
I am delighted that I have successfully deployed your infrastructure and run a simple simulation but I found a compatibility issue for the test-client executable. I deployed the whole project onto a Ubuntu 22.04.1 LTS machine, with kernel version 5.15.0-47-generic, and Glibc version 2.35. I compiled all the codes on my host machine and ran the simulation under the provided disk image. It failed due to a higher Glibc version requirement for test-client in the provided VM (the provided image has Glibc version 2.31).

For now, I manually compile test-client on an older version of kernel and Glibc, then upload it to the VM for simulation. It solves the problem but I believe it's better to compile all the codes in the VM during setup. (I guess you want to keep a cleaner VM so it does not even have a go compiler.)

I think this will make it easier to use.

Best,
Kaifeng

Refactorize CI runners

Currently we have different runners for building and testing emulator and simulator each separately.
As some of the infrastructure has now changed quite a lot fix of the following:

  • Download latest release artefacts
  • Only one runner image
  • Push to registry
  • Make easy create runners for n number of runners
  • Is RESOURCES needed?

Kernel Error and GEM5 Unsupport

When I followed the instruction step by step, I met one error.

$ make -f test/Makefile all_emu
...
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
         Mounting FUSE Control File System...
         Mounting Kernel Configuration File System...
         Starting Apply Kernel Variables...
...

When I checked my service status, it seemed like good.

$ sudo systemctl status systemd-modules-load.service

● systemd-modules-load.service - Load Kernel Modules
     Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vendor preset: enabled)
     Active: active (exited) since Thu 2023-01-05 10:17:16 CST; 10min ago
       Docs: man:systemd-modules-load.service(8)
             man:modules-load.d(5)
    Process: 403 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
   Main PID: 403 (code=exited, status=0/SUCCESS)

Jan 05 10:17:16 shenben-OptiPlex-5090-China-HDD-Protection systemd[1]: Finished Load Kernel Modules.
Jan 05 10:27:16 shenben-OptiPlex-5090-China-HDD-Protection systemd[1]: /lib/systemd/system/systemd-modules-load.service:32: Unknown section 'INSTALL'. Ignoring.

Can the error be ignored or is there any problem with my simulation settings?

Besides,I got the warings "kvm-x86: MSR (XXX) unsupported by gem5" when I executed the Boot System with the Simulator (kvm) and Simulate function. Are these warnings expected/acceptable or is there any problems to fix?

build/X86/dev/x86/pc.cc:117: warn: Don't know what interrupt to clear for console.
build/X86/arch/x86/kvm/x86_cpu.cc:527: warn: cs limit (0xffffffff) and g (0) combination is illegal.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x3a) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xd90) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x309) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x30a) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x30b) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x38d) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x38e) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x38f) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x390) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc1) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc2) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc3) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc4) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc5) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc6) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc7) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc8) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x186) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x187) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x188) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x189) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x18a) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x18b) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x18c) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x18d) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x12) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x11) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d01) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d00) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000000) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000001) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000020) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000021) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000022) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000023) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000100) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000101) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000102) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000103) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000104) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000105) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000003) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000002) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000010) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000080) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000b0) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000073) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000106) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000107) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x40000108) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000ff) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000f1) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000f2) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000f3) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000f4) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x400000f5) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d02) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d03) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d04) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d06) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d07) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x3b) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x6e0) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x10a) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x345) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x1a0) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4d0) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x9e) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x34) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xce) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x140) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x1fc) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x8b) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x480) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48d) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48e) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48f) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x490) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x485) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x486) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x488) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48a) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48b) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x48c) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x491) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0xc0010015) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:1561: warn: kvm-x86: MSR (0x4b564d05) unsupported by gem5. Skipping.
build/X86/arch/x86/kvm/x86_cpu.cc:527: warn: cs limit (0xffffffff) and g (0) combination is illegal.
build/X86/arch/x86/kvm/x86_cpu.cc:527: warn: cs limit (0xffffffff) and g (0) combination is illegal.

My CPU is :

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          16
On-line CPU(s) list:             0-15
Thread(s) per core:              2
Core(s) per socket:              8
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           167
Model name:                      11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz
Stepping:                        1
CPU MHz:                         2500.000
CPU max MHz:                     4900.0000
CPU min MHz:                     800.0000
BogoMIPS:                        4992.00
Virtualization:                  VT-x
L1d cache:                       384 KiB
L1i cache:                       256 KiB
L2 cache:                        4 MiB
L3 cache:                        16 MiB
NUMA node0 CPU(s):               0-15
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Mmio stale data:   Mitigation; Clear CPU buffers; SMT vulnerable
Vulnerability Retbleed:          Mitigation; Enhanced IBRS
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constan
                                 t_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse
                                 3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invp
                                 cid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f 
                                 avx512dq rdseed adx smap avx512ifma clflushopt intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_not
                                 ify hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm md_
                                 clear flush_l1d arch_capabilities

My Memory is:

MemTotal:       16102364 kB
MemFree:         1435064 kB
MemAvailable:    7174060 kB
Buffers:          197940 kB
Cached:          6370328 kB
SwapCached:           20 kB
Active:          2692852 kB
Inactive:       10874228 kB
Active(anon):     115556 kB
Inactive(anon):  7741472 kB
Active(file):    2577296 kB
Inactive(file):  3132756 kB
Unevictable:      279916 kB
Mlocked:              36 kB
SwapTotal:       2097148 kB
SwapFree:        2094820 kB
Dirty:              1124 kB
Writeback:             0 kB
AnonPages:       7278812 kB
Mapped:           714544 kB
Shmem:            860656 kB
KReclaimable:     371544 kB
Slab:             547108 kB
SReclaimable:     371544 kB
SUnreclaim:       175564 kB
KernelStack:       27024 kB
PageTables:        52840 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    10148328 kB
Committed_AS:   19836040 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       49676 kB
VmallocChunk:          0 kB
Percpu:            14592 kB
HardwareCorrupted:     0 kB
AnonHugePages:     90112 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      312780 kB
DirectMap2M:     9891840 kB
DirectMap1G:     7340032 kB

And gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

Looking forward to your reply.

Smaller base disk images.

This is nice to have. Probably we install more than necessary when building the disk image. Maybe there exist a minimal ubuntu setup for this

Unable to install functions

The functions can be installed with neither make -f test/Makefile all_emu nor make -f simulation/Makefile install_functions, and what I get is:

echo "Tryed to install 3 functions. 0 installed and tested successful"
Tryed to install 3 functions. 0 installed and tested successful

And here is full log file, looks like the version of glibc is not matched:

+ curl http://10.0.2.2:3003/test-client -f -o /root/test-client
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 12.5M  100 12.5M    0     0   101M      0 --:--:-- --:--:-- --:--:--  101M
+ chmod 755 /root/test-client
+ curl http://10.0.2.2:3003/functions.yaml -f -o /root/functions.yaml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  3312  100  3312    0     0  1617k      0 --:--:-- --:--:-- --:--:-- 3234k
+ curl http://10.0.2.2:3003/functions.list -f -o /root/functions.list
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    48  100    48    0     0  24000      0 --:--:-- --:--:-- --:--:-- 48000
++ cat /root/functions.list
++ sed '/^\s*#/d;/^\s*$/d'
+ FUNCTIONS='fibonacci-go
fibonacci-nodejs
fibonacci-python'
+ for f in $FUNCTIONS
+ pull_test_function fibonacci-go
+ FUNCTION_NAME=fibonacci-go
+ echo 'Install and test: fibonacci-go '
Install and test: fibonacci-go 
+ docker-compose -f /root/functions.yaml pull fibonacci-go
fibonacci-go Pulling 
17484bbaf17d Pulling fs layer 
483569a99824 Pulling fs layer 
4379280427d0 Pulling fs layer 
483569a99824 Downloading [>                                                  ]  1.369kB/115.2kB
17484bbaf17d Downloading [==================================================>]      99B/99B
17484bbaf17d Verifying Checksum 
17484bbaf17d Download complete 
17484bbaf17d Extracting [==================================================>]      99B/99B
17484bbaf17d Extracting [==================================================>]      99B/99B
483569a99824 Downloading [====================>                              ]  46.46kB/115.2kB
17484bbaf17d Pull complete 
4379280427d0 Downloading [>                                                  ]  79.27kB/7.676MB
483569a99824 Downloading [============================================>      ]  102.5kB/115.2kB
483569a99824 Verifying Checksum 
483569a99824 Download complete 
483569a99824 Extracting [==============>                                    ]  32.77kB/115.2kB
483569a99824 Extracting [==================================================>]  115.2kB/115.2kB
4379280427d0 Downloading [=>                                                 ]  242.6kB/7.676MB
483569a99824 Pull complete 
4379280427d0 Downloading [======>                                            ]  979.9kB/7.676MB
4379280427d0 Downloading [=======>                                           ]  1.226MB/7.676MB
4379280427d0 Downloading [========>                                          ]  1.308MB/7.676MB
4379280427d0 Downloading [==============>                                    ]  2.286MB/7.676MB
4379280427d0 Downloading [================>                                  ]  2.528MB/7.676MB
4379280427d0 Downloading [======================>                            ]  3.425MB/7.676MB
4379280427d0 Downloading [===========================>                       ]  4.171MB/7.676MB
4379280427d0 Downloading [=============================>                     ]  4.498MB/7.676MB
4379280427d0 Downloading [===============================>                   ]   4.83MB/7.676MB
4379280427d0 Downloading [=================================>                 ]  5.158MB/7.676MB
4379280427d0 Downloading [===================================>               ]  5.485MB/7.676MB
4379280427d0 Downloading [======================================>            ]  5.895MB/7.676MB
4379280427d0 Downloading [========================================>          ]  6.231MB/7.676MB
4379280427d0 Downloading [=========================================>         ]  6.395MB/7.676MB
4379280427d0 Downloading [============================================>      ]  6.886MB/7.676MB
4379280427d0 Downloading [==============================================>    ]  7.132MB/7.676MB
4379280427d0 Downloading [================================================>  ]   7.46MB/7.676MB
4379280427d0 Verifying Checksum 
4379280427d0 Download complete 
4379280427d0 Extracting [>                                                  ]   98.3kB/7.676MB
4379280427d0 Extracting [==>                                                ]  393.2kB/7.676MB
4379280427d0 Extracting [===================>                               ]  2.949MB/7.676MB
4379280427d0 Extracting [==================================================>]  7.676MB/7.676MB
4379280427d0 Pull complete 
fibonacci-go Pulled 
+ docker-compose -f /root/functions.yaml up -d --remove-orphans fibonacci-go
Network root_default  Creating
Network root_default  Created
Container function  Creating
Container function  Created
Container function  Starting
Container function  Started
+ sleep 5
+ /root/test-client -function-name fibonacci-go -url localhost -port 50000 -n 5 -input 1
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)
+ docker-compose -f /root/functions.yaml down
Container function  Stopping
Container function  Stopping
Container function  Stopped
Container function  Removing
Container function  Removed
Network root_default  Removing
Network root_default  Removed
++ docker ps -a -q
+ CONTAINERS=
++ expr length ''
+ '[' 0 -gt 0 ']'
+ for f in $FUNCTIONS
+ pull_test_function fibonacci-nodejs
+ FUNCTION_NAME=fibonacci-nodejs
+ echo 'Install and test: fibonacci-nodejs '
Install and test: fibonacci-nodejs 
+ docker-compose -f /root/functions.yaml pull fibonacci-nodejs
fibonacci-nodejs Pulling 
461246efe0a7 Pulling fs layer 
2109e39d8e97 Pulling fs layer 
c13b86695d29 Pulling fs layer 
3638cced3688 Pulling fs layer 
99720dbfc7e0 Pulling fs layer 
01f75f65455a Pulling fs layer 
aa267e653a01 Pulling fs layer 
3638cced3688 Waiting 
99720dbfc7e0 Waiting 
01f75f65455a Waiting 
aa267e653a01 Waiting 
2109e39d8e97 Downloading [=========>                                         ]     758B/4.179kB
2109e39d8e97 Downloading [==================================================>]  4.179kB/4.179kB
2109e39d8e97 Verifying Checksum 
2109e39d8e97 Download complete 
c13b86695d29 Downloading [>                                                  ]  475.1kB/46.25MB
461246efe0a7 Downloading [>                                                  ]  314.7kB/31.37MB
c13b86695d29 Downloading [==>                                                ]  1.878MB/46.25MB
461246efe0a7 Downloading [=>                                                 ]  969.1kB/31.37MB
c13b86695d29 Downloading [====>                                              ]  3.758MB/46.25MB
461246efe0a7 Downloading [===>                                               ]  1.948MB/31.37MB
3638cced3688 Downloading [>                                                  ]  28.75kB/2.775MB
c13b86695d29 Downloading [======>                                            ]  5.659MB/46.25MB
3638cced3688 Downloading [====>                                              ]  229.4kB/2.775MB
c13b86695d29 Downloading [=======>                                           ]  6.609MB/46.25MB
461246efe0a7 Downloading [====>                                              ]  2.595MB/31.37MB
3638cced3688 Downloading [==========>                                        ]  589.8kB/2.775MB
461246efe0a7 Downloading [====>                                              ]  2.923MB/31.37MB
c13b86695d29 Downloading [========>                                          ]  8.035MB/46.25MB
3638cced3688 Downloading [==============>                                    ]  819.2kB/2.775MB
c13b86695d29 Downloading [=========>                                         ]  8.981MB/46.25MB
461246efe0a7 Downloading [=====>                                             ]   3.57MB/31.37MB
3638cced3688 Downloading [=====================>                             ]  1.212MB/2.775MB
c13b86695d29 Downloading [===========>                                       ]   10.4MB/46.25MB
461246efe0a7 Downloading [======>                                            ]  3.898MB/31.37MB
3638cced3688 Downloading [===========================>                       ]  1.507MB/2.775MB
c13b86695d29 Downloading [============>                                      ]  11.35MB/46.25MB
461246efe0a7 Downloading [======>                                            ]  4.225MB/31.37MB
3638cced3688 Downloading [=================================>                 ]  1.868MB/2.775MB
c13b86695d29 Downloading [=============>                                     ]  12.76MB/46.25MB
3638cced3688 Downloading [========================================>          ]  2.261MB/2.775MB
461246efe0a7 Downloading [=======>                                           ]  4.553MB/31.37MB
c13b86695d29 Downloading [==============>                                    ]   13.7MB/46.25MB
3638cced3688 Downloading [===============================================>   ]  2.654MB/2.775MB
3638cced3688 Verifying Checksum 
3638cced3688 Download complete 
461246efe0a7 Downloading [========>                                          ]  5.184MB/31.37MB
c13b86695d29 Downloading [===============>                                   ]  14.65MB/46.25MB
461246efe0a7 Downloading [=========>                                         ]  5.831MB/31.37MB
c13b86695d29 Downloading [=================>                                 ]  16.08MB/46.25MB
461246efe0a7 Downloading [==========>                                        ]  6.486MB/31.37MB
c13b86695d29 Downloading [==================>                                ]   17.5MB/46.25MB
461246efe0a7 Downloading [===========>                                       ]  7.437MB/31.37MB
c13b86695d29 Downloading [====================>                              ]  18.93MB/46.25MB
99720dbfc7e0 Downloading [==================================================>]     449B/449B
99720dbfc7e0 Verifying Checksum 
99720dbfc7e0 Download complete 
461246efe0a7 Downloading [=============>                                     ]  8.743MB/31.37MB
c13b86695d29 Downloading [=====================>                             ]  19.88MB/46.25MB
c13b86695d29 Downloading [======================>                            ]  20.83MB/46.25MB
461246efe0a7 Downloading [===============>                                   ]  9.726MB/31.37MB
c13b86695d29 Downloading [========================>                          ]  22.24MB/46.25MB
461246efe0a7 Downloading [=================>                                 ]  10.71MB/31.37MB
c13b86695d29 Downloading [=========================>                         ]  23.66MB/46.25MB
461246efe0a7 Downloading [==================>                                ]  11.69MB/31.37MB
01f75f65455a Downloading [==================================================>]      99B/99B
01f75f65455a Verifying Checksum 
01f75f65455a Download complete 
461246efe0a7 Downloading [====================>                              ]     13MB/31.37MB
c13b86695d29 Downloading [===========================>                       ]  25.08MB/46.25MB
461246efe0a7 Downloading [=======================>                           ]   14.6MB/31.37MB
c13b86695d29 Downloading [=============================>                     ]  26.96MB/46.25MB
461246efe0a7 Downloading [=========================>                         ]  15.91MB/31.37MB
c13b86695d29 Downloading [==============================>                    ]  28.39MB/46.25MB
c13b86695d29 Downloading [===============================>                   ]  29.34MB/46.25MB
461246efe0a7 Downloading [==========================>                        ]  16.89MB/31.37MB
c13b86695d29 Downloading [================================>                  ]  30.28MB/46.25MB
aa267e653a01 Downloading [>                                                  ]  40.12kB/3.875MB
461246efe0a7 Downloading [===========================>                       ]  17.54MB/31.37MB
aa267e653a01 Downloading [============>                                      ]  995.8kB/3.875MB
461246efe0a7 Downloading [==================================>                ]  21.78MB/31.37MB
c13b86695d29 Downloading [====================================>              ]  34.06MB/46.25MB
aa267e653a01 Downloading [=================>                                 ]  1.389MB/3.875MB
461246efe0a7 Downloading [===================================>               ]  22.44MB/31.37MB
c13b86695d29 Downloading [=====================================>             ]     35MB/46.25MB
aa267e653a01 Downloading [=======================>                           ]  1.831MB/3.875MB
c13b86695d29 Downloading [======================================>            ]  35.48MB/46.25MB
461246efe0a7 Downloading [=====================================>             ]  23.41MB/31.37MB
aa267e653a01 Downloading [============================>                      ]  2.225MB/3.875MB
c13b86695d29 Downloading [======================================>            ]  35.94MB/46.25MB
461246efe0a7 Downloading [======================================>            ]  24.06MB/31.37MB
aa267e653a01 Downloading [=================================>                 ]  2.569MB/3.875MB
c13b86695d29 Downloading [=======================================>           ]   36.9MB/46.25MB
aa267e653a01 Downloading [======================================>            ]  2.962MB/3.875MB
461246efe0a7 Downloading [=======================================>           ]  25.05MB/31.37MB
c13b86695d29 Downloading [========================================>          ]  37.37MB/46.25MB
aa267e653a01 Downloading [===========================================>       ]  3.355MB/3.875MB
461246efe0a7 Downloading [========================================>          ]  25.68MB/31.37MB
aa267e653a01 Downloading [=================================================> ]  3.838MB/3.875MB
aa267e653a01 Verifying Checksum 
aa267e653a01 Download complete 
461246efe0a7 Downloading [=========================================>         ]  26.34MB/31.37MB
c13b86695d29 Downloading [=========================================>         ]  38.31MB/46.25MB
461246efe0a7 Downloading [===========================================>       ]  27.32MB/31.37MB
c13b86695d29 Downloading [==========================================>        ]  39.25MB/46.25MB
461246efe0a7 Downloading [=============================================>     ]   28.3MB/31.37MB
c13b86695d29 Downloading [===========================================>       ]  40.19MB/46.25MB
461246efe0a7 Downloading [==============================================>    ]  29.28MB/31.37MB
c13b86695d29 Downloading [============================================>      ]  41.14MB/46.25MB
461246efe0a7 Downloading [================================================>  ]  30.26MB/31.37MB
c13b86695d29 Downloading [=============================================>     ]  42.08MB/46.25MB
461246efe0a7 Downloading [=================================================> ]  31.24MB/31.37MB
461246efe0a7 Verifying Checksum 
461246efe0a7 Download complete 
461246efe0a7 Extracting [>                                                  ]  327.7kB/31.37MB
c13b86695d29 Downloading [==============================================>    ]  43.03MB/46.25MB
c13b86695d29 Downloading [===============================================>   ]  43.98MB/46.25MB
461246efe0a7 Extracting [====>                                              ]  2.949MB/31.37MB
461246efe0a7 Extracting [========>                                          ]  5.571MB/31.37MB
c13b86695d29 Downloading [=================================================> ]   45.4MB/46.25MB
c13b86695d29 Verifying Checksum 
c13b86695d29 Download complete 
461246efe0a7 Extracting [=============>                                     ]  8.192MB/31.37MB
461246efe0a7 Extracting [================>                                  ]  10.49MB/31.37MB
461246efe0a7 Extracting [==================>                                ]   11.8MB/31.37MB
461246efe0a7 Extracting [=====================>                             ]  13.43MB/31.37MB
461246efe0a7 Extracting [========================>                          ]   15.4MB/31.37MB
461246efe0a7 Extracting [============================>                      ]  18.02MB/31.37MB
461246efe0a7 Extracting [===============================>                   ]  19.99MB/31.37MB
461246efe0a7 Extracting [==================================>                ]  21.95MB/31.37MB
461246efe0a7 Extracting [=======================================>           ]   24.9MB/31.37MB
461246efe0a7 Extracting [===========================================>       ]   27.2MB/31.37MB
461246efe0a7 Extracting [=============================================>     ]  28.84MB/31.37MB
461246efe0a7 Extracting [===============================================>   ]  29.82MB/31.37MB
461246efe0a7 Extracting [================================================>  ]  30.15MB/31.37MB
461246efe0a7 Extracting [================================================>  ]  30.47MB/31.37MB
461246efe0a7 Extracting [=================================================> ]  31.13MB/31.37MB
461246efe0a7 Extracting [==================================================>]  31.37MB/31.37MB
461246efe0a7 Pull complete 
2109e39d8e97 Extracting [==================================================>]  4.179kB/4.179kB
2109e39d8e97 Extracting [==================================================>]  4.179kB/4.179kB
2109e39d8e97 Pull complete 
c13b86695d29 Extracting [>                                                  ]  491.5kB/46.25MB
c13b86695d29 Extracting [====>                                              ]  3.932MB/46.25MB
c13b86695d29 Extracting [======>                                            ]   6.39MB/46.25MB
c13b86695d29 Extracting [=========>                                         ]  8.356MB/46.25MB
c13b86695d29 Extracting [===========>                                       ]  10.81MB/46.25MB
c13b86695d29 Extracting [==============>                                    ]  13.27MB/46.25MB
c13b86695d29 Extracting [===============>                                   ]  14.75MB/46.25MB
c13b86695d29 Extracting [==================>                                ]  16.71MB/46.25MB
c13b86695d29 Extracting [=====================>                             ]  20.15MB/46.25MB
c13b86695d29 Extracting [========================>                          ]   23.1MB/46.25MB
c13b86695d29 Extracting [===========================>                       ]  25.07MB/46.25MB
c13b86695d29 Extracting [=============================>                     ]  27.03MB/46.25MB
c13b86695d29 Extracting [===============================>                   ]     29MB/46.25MB
c13b86695d29 Extracting [=================================>                 ]  30.97MB/46.25MB
c13b86695d29 Extracting [===================================>               ]  32.44MB/46.25MB
c13b86695d29 Extracting [====================================>              ]  33.42MB/46.25MB
c13b86695d29 Extracting [====================================>              ]  33.91MB/46.25MB
c13b86695d29 Extracting [=====================================>             ]   34.9MB/46.25MB
c13b86695d29 Extracting [======================================>            ]  35.88MB/46.25MB
c13b86695d29 Extracting [=======================================>           ]  36.37MB/46.25MB
c13b86695d29 Extracting [=======================================>           ]  36.86MB/46.25MB
c13b86695d29 Extracting [========================================>          ]  37.36MB/46.25MB
c13b86695d29 Extracting [========================================>          ]  37.85MB/46.25MB
c13b86695d29 Extracting [=========================================>         ]  38.34MB/46.25MB
c13b86695d29 Extracting [=========================================>         ]  38.83MB/46.25MB
c13b86695d29 Extracting [==========================================>        ]  39.32MB/46.25MB
c13b86695d29 Extracting [===========================================>       ]   40.3MB/46.25MB
c13b86695d29 Extracting [============================================>      ]  41.29MB/46.25MB
c13b86695d29 Extracting [=============================================>     ]  42.27MB/46.25MB
c13b86695d29 Extracting [==============================================>    ]  43.25MB/46.25MB
c13b86695d29 Extracting [===============================================>   ]  44.24MB/46.25MB
c13b86695d29 Extracting [================================================>  ]  44.73MB/46.25MB
c13b86695d29 Extracting [================================================>  ]  45.22MB/46.25MB
c13b86695d29 Extracting [=================================================> ]   46.2MB/46.25MB
c13b86695d29 Extracting [==================================================>]  46.25MB/46.25MB
c13b86695d29 Pull complete 
3638cced3688 Extracting [>                                                  ]  32.77kB/2.775MB
3638cced3688 Extracting [======>                                            ]  360.4kB/2.775MB
3638cced3688 Extracting [==================================================>]  2.775MB/2.775MB
3638cced3688 Pull complete 
99720dbfc7e0 Extracting [==================================================>]     449B/449B
99720dbfc7e0 Extracting [==================================================>]     449B/449B
99720dbfc7e0 Pull complete 
01f75f65455a Extracting [==================================================>]      99B/99B
01f75f65455a Pull complete 
aa267e653a01 Extracting [>                                                  ]  65.54kB/3.875MB
aa267e653a01 Extracting [=====>                                             ]  393.2kB/3.875MB
aa267e653a01 Extracting [==========>                                        ]  786.4kB/3.875MB
aa267e653a01 Extracting [==============>                                    ]  1.114MB/3.875MB
aa267e653a01 Extracting [===================>                               ]  1.507MB/3.875MB
aa267e653a01 Extracting [============================>                      ]  2.228MB/3.875MB
aa267e653a01 Extracting [================================>                  ]  2.556MB/3.875MB
aa267e653a01 Extracting [=========================================>         ]  3.211MB/3.875MB
aa267e653a01 Extracting [==================================================>]  3.875MB/3.875MB
aa267e653a01 Pull complete 
fibonacci-nodejs Pulled 
+ docker-compose -f /root/functions.yaml up -d --remove-orphans fibonacci-nodejs
Network root_default  Creating
Network root_default  Created
Container function  Creating
Container function  Created
Container function  Starting
Container function  Started
+ sleep 5
+ /root/test-client -function-name fibonacci-nodejs -url localhost -port 50000 -n 5 -input 1
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)
+ docker-compose -f /root/functions.yaml down
Container function  Stopping
Container function  Stopping
Container function  Stopped
Container function  Removing
Container function  Removed
Network root_default  Removing
Network root_default  Removed
++ docker ps -a -q
+ CONTAINERS=
++ expr length ''
+ '[' 0 -gt 0 ']'
+ for f in $FUNCTIONS
+ pull_test_function fibonacci-python
+ FUNCTION_NAME=fibonacci-python
+ echo 'Install and test: fibonacci-python '
Install and test: fibonacci-python 
+ docker-compose -f /root/functions.yaml pull fibonacci-python
fibonacci-python Pulling 
3f4ca61aafcd Pulling fs layer 
3f487a3359db Pulling fs layer 
4ea2d1d8495e Pulling fs layer 
0e9cf1618b4f Pulling fs layer 
b474c35f0abd Pulling fs layer 
3275543a4dbe Pulling fs layer 
32966c534961 Pulling fs layer 
4f4fb700ef54 Pulling fs layer 
0e9cf1618b4f Waiting 
b474c35f0abd Waiting 
3275543a4dbe Waiting 
32966c534961 Waiting 
4f4fb700ef54 Waiting 
3f487a3359db Downloading [>                                                  ]  10.95kB/1.076MB
4ea2d1d8495e Downloading [>                                                  ]  115.2kB/11.33MB
3f487a3359db Downloading [==========================>                        ]  573.4kB/1.076MB
4ea2d1d8495e Downloading [=====>                                             ]  1.158MB/11.33MB
3f4ca61aafcd Downloading [>                                                  ]  327.7kB/31.4MB
3f487a3359db Verifying Checksum 
3f487a3359db Download complete 
4ea2d1d8495e Downloading [=========>                                         ]  2.191MB/11.33MB
3f4ca61aafcd Downloading [=>                                                 ]  973.2kB/31.4MB
4ea2d1d8495e Downloading [==============>                                    ]   3.23MB/11.33MB
3f4ca61aafcd Downloading [===>                                               ]   1.94MB/31.4MB
4ea2d1d8495e Downloading [===================>                               ]  4.385MB/11.33MB
3f4ca61aafcd Downloading [====>                                              ]  2.923MB/31.4MB
4ea2d1d8495e Downloading [========================>                          ]  5.647MB/11.33MB
0e9cf1618b4f Downloading [==================================================>]     233B/233B
0e9cf1618b4f Verifying Checksum 
0e9cf1618b4f Download complete 
3f4ca61aafcd Downloading [======>                                            ]  3.902MB/31.4MB
4ea2d1d8495e Downloading [=============================>                     ]  6.798MB/11.33MB
4ea2d1d8495e Downloading [==================================>                ]   7.83MB/11.33MB
3f4ca61aafcd Downloading [=======>                                           ]  4.885MB/31.4MB
4ea2d1d8495e Downloading [========================================>          ]  9.091MB/11.33MB
3f4ca61aafcd Downloading [=========>                                         ]  5.868MB/31.4MB
4ea2d1d8495e Downloading [=============================================>     ]  10.37MB/11.33MB
b474c35f0abd Downloading [>                                                  ]  32.08kB/3.178MB
3f4ca61aafcd Downloading [==========>                                        ]  6.847MB/31.4MB
4ea2d1d8495e Verifying Checksum 
4ea2d1d8495e Download complete 
b474c35f0abd Downloading [=====>                                             ]    327kB/3.178MB
3f4ca61aafcd Downloading [============>                                      ]  7.826MB/31.4MB
b474c35f0abd Downloading [=======================>                           ]  1.481MB/3.178MB
3f4ca61aafcd Downloading [==============>                                    ]  8.797MB/31.4MB
b474c35f0abd Downloading [=============================================>     ]  2.878MB/3.178MB
b474c35f0abd Verifying Checksum 
b474c35f0abd Download complete 
3f4ca61aafcd Downloading [===============>                                   ]   9.78MB/31.4MB
3f4ca61aafcd Downloading [==================>                                ]  11.41MB/31.4MB
3f4ca61aafcd Downloading [=====================>                             ]  13.37MB/31.4MB
32966c534961 Downloading [=========>                                         ]     771B/3.962kB
32966c534961 Downloading [==================================================>]  3.962kB/3.962kB
32966c534961 Verifying Checksum 
32966c534961 Download complete 
3275543a4dbe Downloading [>                                                  ]  94.43kB/9.268MB
3f4ca61aafcd Downloading [========================>                          ]  15.65MB/31.4MB
3275543a4dbe Downloading [==>                                                ]  490.8kB/9.268MB
3f4ca61aafcd Downloading [============================>                      ]   17.6MB/31.4MB
3275543a4dbe Downloading [=====>                                             ]  1.074MB/9.268MB
3f4ca61aafcd Downloading [==============================>                    ]  19.22MB/31.4MB
3275543a4dbe Downloading [=======>                                           ]  1.471MB/9.268MB
3f4ca61aafcd Downloading [=================================>                 ]  20.83MB/31.4MB
4f4fb700ef54 Downloading [==================================================>]      32B/32B
4f4fb700ef54 Verifying Checksum 
4f4fb700ef54 Download complete 
3275543a4dbe Downloading [==========>                                        ]  1.962MB/9.268MB
3f4ca61aafcd Downloading [===================================>               ]  22.46MB/31.4MB
3275543a4dbe Downloading [==============>                                    ]  2.651MB/9.268MB
3f4ca61aafcd Downloading [======================================>            ]  24.07MB/31.4MB
3275543a4dbe Downloading [==================>                                ]  3.339MB/9.268MB
3f4ca61aafcd Downloading [========================================>          ]  25.71MB/31.4MB
3275543a4dbe Downloading [======================>                            ]  4.125MB/9.268MB
3f4ca61aafcd Downloading [===========================================>       ]  27.35MB/31.4MB
3275543a4dbe Downloading [=========================>                         ]  4.809MB/9.268MB
3f4ca61aafcd Downloading [==============================================>    ]  28.98MB/31.4MB
3275543a4dbe Downloading [=============================>                     ]  5.501MB/9.268MB
3f4ca61aafcd Downloading [================================================>  ]  30.61MB/31.4MB
3f4ca61aafcd Verifying Checksum 
3f4ca61aafcd Download complete 
3275543a4dbe Downloading [=================================>                 ]  6.194MB/9.268MB
3f4ca61aafcd Extracting [>                                                  ]  327.7kB/31.4MB
3275543a4dbe Downloading [=======================================>           ]  7.279MB/9.268MB
3f4ca61aafcd Extracting [========>                                          ]  5.243MB/31.4MB
3275543a4dbe Downloading [==============================================>    ]  8.557MB/9.268MB
3f4ca61aafcd Extracting [================>                                  ]  10.16MB/31.4MB
3275543a4dbe Verifying Checksum 
3275543a4dbe Download complete 
3f4ca61aafcd Extracting [========================>                          ]   15.4MB/31.4MB
3f4ca61aafcd Extracting [=================================>                 ]  20.97MB/31.4MB
3f4ca61aafcd Extracting [==========================================>        ]  26.87MB/31.4MB
3f4ca61aafcd Extracting [===============================================>   ]  29.82MB/31.4MB
3f4ca61aafcd Extracting [=================================================> ]   30.8MB/31.4MB
3f4ca61aafcd Extracting [==================================================>]   31.4MB/31.4MB
3f4ca61aafcd Pull complete 
3f487a3359db Extracting [=>                                                 ]  32.77kB/1.076MB
3f487a3359db Extracting [==================================================>]  1.076MB/1.076MB
3f487a3359db Extracting [==================================================>]  1.076MB/1.076MB
3f487a3359db Pull complete 
4ea2d1d8495e Extracting [>                                                  ]  131.1kB/11.33MB
4ea2d1d8495e Extracting [===============>                                   ]  3.408MB/11.33MB
4ea2d1d8495e Extracting [======================================>            ]  8.651MB/11.33MB
4ea2d1d8495e Extracting [==================================================>]  11.33MB/11.33MB
4ea2d1d8495e Pull complete 
0e9cf1618b4f Extracting [==================================================>]     233B/233B
0e9cf1618b4f Extracting [==================================================>]     233B/233B
0e9cf1618b4f Pull complete 
b474c35f0abd Extracting [>                                                  ]  32.77kB/3.178MB
b474c35f0abd Extracting [===================================>               ]  2.261MB/3.178MB
b474c35f0abd Extracting [==================================================>]  3.178MB/3.178MB
b474c35f0abd Extracting [==================================================>]  3.178MB/3.178MB
b474c35f0abd Pull complete 
3275543a4dbe Extracting [>                                                  ]   98.3kB/9.268MB
3275543a4dbe Extracting [===========>                                       ]  2.163MB/9.268MB
3275543a4dbe Extracting [===================================>               ]  6.488MB/9.268MB
3275543a4dbe Extracting [=================================================> ]  9.241MB/9.268MB
3275543a4dbe Extracting [==================================================>]  9.268MB/9.268MB
3275543a4dbe Pull complete 
32966c534961 Extracting [==================================================>]  3.962kB/3.962kB
32966c534961 Extracting [==================================================>]  3.962kB/3.962kB
32966c534961 Pull complete 
4f4fb700ef54 Extracting [==================================================>]      32B/32B
4f4fb700ef54 Extracting [==================================================>]      32B/32B
4f4fb700ef54 Pull complete 
fibonacci-python Pulled 
+ docker-compose -f /root/functions.yaml up -d --remove-orphans fibonacci-python
Network root_default  Creating
Network root_default  Created
Container function  Creating
Container function  Created
Container function  Starting
Container function  Started
+ sleep 5
+ /root/test-client -function-name fibonacci-python -url localhost -port 50000 -n 5 -input 1
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)
+ docker-compose -f /root/functions.yaml down
Container function  Stopping
Container function  Stopping
Container function  Stopped
Container function  Removing
Container function  Removed
Network root_default  Removing
Network root_default  Removed
++ docker ps -a -q
+ CONTAINERS=
++ expr length ''
+ '[' 0 -gt 0 ']'
+ end_logging
+ exec

Stability issue of the sim_all_functions.sh

Hello, I'm trying to run vSwarm-u practice scripts, but there are some stability issues, such as too short execution time or too small IPC at gem5 stat.

And randomly, segmentation fault
Since I can figure out segmentation fault with check_simulations.py and rerun.sh, and it occurs not only in specified workload but also every workload when I run sim_all_functions.sh, I called it a random segmentation fault.

In short, I have four problems below and want to get some advice.

  1. Segmentation fault occurs arbitrarily, randomly ( I don't know why and I just rerun all the workloads that segmentation fault occurs)

  2. There is too many zero at the gem5 stats.txt.
    I have no idea that result stats are correctly recorded.
    Even though, for IPC, "system.cpu1.exec_context.thread_0.numInsts" parameters do not exist and "system.atomic_cpu1.exec_context.thread_0.numInsts" are always zero at all workloads. ( Instead, I used simInsts for IPC.. and it's values are too small)
    "system.cpu1.numCycles" are recorded normally.

  3. As simulation stats are abnormal, like problem number 2, gem5 stats.txt fluctuate at every sim_all_function.sh run.
    (simSeconds are recorded 4.43s .5.02s 0.02s 0.04s, 4.86s at shippingservice)
    Results are sometimes recorded well (in my opinion), but it makes so many odd record results. I checked all workloads' gem5.log and system.pc.com_1.device file, there is no problem, and said, "Simulation done.".

  4. I can't get a better performance, such as (IPC and simSeconds) when I grow LLC sizes at caches.py simulations. I checked the config works well with the print function, but performance does not get better..

All my problems are about that whether my simulations work well or not,
I executed all pre-requisite in github and succeeded all installation check scripts. I have no idea how to fix and correctly run vSwarm-u practices...
Really a pleasure to get your advice for the above problems.

Thanks & best regards,
Choi

"Test Downloads" check fails due to glibc incompatibility

Hi,

Running make -f test/Makefile all_emu fails with this:

/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)

Here is the log file:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100 13.1M  100 13.1M    0     0   180M      0 --:--:-- --:--:-- --:--:--  180M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100  7825  100  7825    0     0  3820k      0 --:--:-- --:--:-- --:--:-- 7641k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100    20  100    20    0     0  20000      0 --:--:-- --:--:-- --:--:-- 20000
Test: fibonacci-go
 fibonacci-go Pulling
 08192208c193 Pulling fs layer
 6b078d25f61e Pulling fs layer
 963866357e12 Pulling fs layer
 08192208c193 Downloading [==================================================>]      93B/93B
 08192208c193 Verifying Checksum
 08192208c193 Download complete
 08192208c193 Extracting [==================================================>]      93B/93B
 6b078d25f61e Downloading [>                                                  ]  2.076kB/122.7kB
 08192208c193 Extracting [==================================================>]      93B/93B
 6b078d25f61e Downloading [==================================================>]  122.7kB/122.7kB
 6b078d25f61e Verifying Checksum
 6b078d25f61e Download complete
 963866357e12 Downloading [>                                                  ]  85.77kB/8.457MB
 963866357e12 Downloading [==============>                                    ]  2.407MB/8.457MB
 08192208c193 Pull complete
 6b078d25f61e Extracting [=============>                                     ]  32.77kB/122.7kB
 6b078d25f61e Extracting [==================================================>]  122.7kB/122.7kB
 963866357e12 Downloading [============================>                      ]  4.811MB/8.457MB
 963866357e12 Downloading [================================================>  ]  8.125MB/8.457MB
 963866357e12 Verifying Checksum
 963866357e12 Download complete
 6b078d25f61e Pull complete
 963866357e12 Extracting [>                                                  ]   98.3kB/8.457MB
 963866357e12 Extracting [====>                                              ]  688.1kB/8.457MB
 963866357e12 Extracting [==================>                                ]  3.146MB/8.457MB
 963866357e12 Extracting [==================================================>]  8.457MB/8.457MB
 963866357e12 Pull complete
 fibonacci-go Pulled
 Network vswarmu_default  Creating
 Network vswarmu_default  Created
 Container function  Creating
 Container function  Created
 Container function  Starting
 Container function  Started
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)
 Container function  Stopping
 Container function  Stopped
 Container function  Removing
 Container function  Removed
 Network vswarmu_default  Removing
 Network vswarmu_default  Removed
FAIL: Commands failed
Test: aes-go
 aes-go Pulling
 0d35f8511266 Pulling fs layer
 08d53f5b4cfa Pulling fs layer
 985429b132cf Pulling fs layer
 08d53f5b4cfa Downloading [>                                                  ]  2.088kB/122.7kB
 08d53f5b4cfa Downloading [==================================================>]  122.7kB/122.7kB
 08d53f5b4cfa Verifying Checksum
 08d53f5b4cfa Download complete
 985429b132cf Downloading [>                                                  ]  90.91kB/8.766MB
 0d35f8511266 Downloading [==================================================>]      93B/93B
 0d35f8511266 Verifying Checksum
 0d35f8511266 Download complete
 0d35f8511266 Extracting [==================================================>]      93B/93B
 0d35f8511266 Extracting [==================================================>]      93B/93B
 985429b132cf Downloading [===========>                                       ]   2.05MB/8.766MB
 0d35f8511266 Pull complete
 08d53f5b4cfa Extracting [=============>                                     ]  32.77kB/122.7kB
 08d53f5b4cfa Extracting [==================================================>]  122.7kB/122.7kB
 08d53f5b4cfa Extracting [==================================================>]  122.7kB/122.7kB
 985429b132cf Downloading [================================>                  ]  5.679MB/8.766MB
 985429b132cf Verifying Checksum
 985429b132cf Download complete
 08d53f5b4cfa Pull complete
 985429b132cf Extracting [>                                                  ]   98.3kB/8.766MB
 985429b132cf Extracting [=====>                                             ]  884.7kB/8.766MB
 985429b132cf Extracting [===================>                               ]  3.342MB/8.766MB
 985429b132cf Extracting [==================================================>]  8.766MB/8.766MB
 985429b132cf Pull complete
 aes-go Pulled
 Network vswarmu_default  Creating
 Network vswarmu_default  Created
 Container function  Creating
 Container function  Created
 Container function  Starting
 Container function  Started
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/test-client)
/root/test-client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /root/test-client)
 Container function  Stopping
 Container function  Stopped
 Container function  Removing
 Container function  Removed
 Network vswarmu_default  Removing
 Network vswarmu_default  Removed
FAIL: Commands failed

My host machine is running Ubuntu 22.04, the kernel version is 5.15.0-117-generic, the glibc version is 2.35, and the python version is 3.10.12.
I also tried the suggested solution mentioned in another post about changing the install_functions.sh script to download the client file from https://github.com/vhive-serverless/vSwarm-u/releases/download/v0.2.0/test-client-amd64, but it didn't help.

Wrong Golang address in setup script

Hi
GoLang installation has a problem in setup/setup_host.sh line 102:
First the link directory doesn't exist and it should be changed to https://go.dev/dl/${GO_BUILD}.tar.gz
Second on variable GO_VERSION you should add revision.

Thank you

fibonacci-python container struck on Gem5.

Hi I am running vswarm functions on Gem5. fibonacci-go and fibonacci-nodejs ran well. But fibonacci-python was strucking at this point.

Also,
tmux_fibpy
can we have multiple functions together on Gem5, instead of pinning one function to the core each time ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.