KVM Continous Integration setup
Kernels are defined in template files at: http://git.linaro.org/ci/kvm-ci.git/tree/HEAD:/configs
Arndale: https://git.linaro.org/people/christoffer.dall/linux-kvm-arm.git kvm-arm-next-arndale
Mustang: https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git testing/mustang
KVM kernel and image CI scripts: https://git.linaro.org/gitweb?p=ci/kvm-ci.git;a=tree
QEMU CI scripts: https://git.linaro.org/gitweb?p=ci/qemu.git;a=summary
Jenkins CI jobs
QEMU is built qemu-docker-builder CI job
Qemu binary from this job is uploaded to: http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/q/qemu-linaro/
Host images are built In linux-kvm CI Job
Host image and kernel is uploaded to: http://snapshots.linaro.org/ubuntu/images/kvm/latest
Guest images are built In kvm-guest-image CI Job
Guest image and 32-bit guest kernel is uploaded to: https://snapshots.linaro.org/ubuntu/images/kvm-guest/latest
Lava test definitions are documented on https://validation.linaro.org/static/docs/lava_test_shell.html.
The above mentioned linux-kvm job will call post-build-lava CI job that constructs a LAVA testing request. The bits that define the test are included in the ci/kvm-ci git repository listed earlier.
LAVA test definition. This essentially tells lava to run the next file:
This is the script that starts KVM. It is independent of LAVA, so for development you can run it on any machine that is able to run QEMU with --enable-kvm. It downloads the guest image, kernel and dtb, and boots with kvm. It also copies inside kvm the
Is an upstart unit file run right after the boot of the guest vm. Inside the script ... end script block is the test code we want to run inside the kvm image right after boot. In this case this the minimal test case that show booting with kvm succeeded. From here KVM testing can be extended to run all the tests Virtualization team wants to run.
LAVA testing results
Note that to see results in LAVA, you need to login on http://validation.linaro.org first.
The easiest way to subscribe to test results is with my filters:
Replicating tests locally (arndale)
Get the latest image: http://snapshots.linaro.org/ubuntu/images/kvm/latest/arndale-sd.img.gz
gunzip and dd on a sd card, instert to arndale and boot.
After booting, clone the test-definitions repo on the arndale for running the test scripts:
# git clone http://git.linaro.org/git/qa/test-definitions.git # cd test-definitions # ./common/scripts/kvm/test-kvm.sh
This should result identical commands run as what the lava test does.
To build the arndale host image or kvm guest image locally on a x86 PC, pull in the kernel tree and kvm-ci scripts:
git clone -b kvm-arm-next-arndale git://git.linaro.org/people/cdall/linux-kvm-arm.git linux cd linux git clone http://git.linaro.org/git/ci/kvm-ci.git
To build the host image (arndale-img.gz)
export hwpack=arndale ./kvm-ci/jenkins-run
and the guest image:
export arch=arm32 ./kvm-ci/jenkins-guest-run
Core/Virtualization/Testing/KVM (last modified 2016-02-17 10:13:54)