Commit Graph

115 Commits

Author SHA1 Message Date
Anatol Belski
376b676910 Dockerfile: Build SPDK for skylake
As the container image can be used on both Intel and AMD,
ensure the SPDK binaries are compatible. This implies -march=skylake
passed to the underlaying toolchain.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-08-04 13:50:34 +01:00
Yi Wang
99353856ef tests: Add integration test for pvpanic
Add integration test for pvpanic, by two methods:
- the vendor id and device id of pci device in guest
- triggering a guest panic and check event-monitor.

Also, to support pvpanic-pci driver, add pvpanic config
in resources.

Signed-off-by: Yi Wang <foxywang@tencent.com>
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-07-06 11:14:54 +01:00
Bo Chen
2f70800e91 resources: Disable CONFIG_DEBUG_MISC and set CONFIG_DEBUG_INFO_NONE
Otherwise, CONFIG_DEBUG_INFO will be enabled automatically bloating the
size of the kernel image.

Now the size of kernel image is reduced from 635M to 60M on x86_64.

Signed-off-by: Bo Chen <chen.bo@intel.com>
2023-07-02 21:03:15 +01:00
Rob Bradford
33f3a456c7 resources: Disable CONFIG_DEBUG_INFO in kernel config
This bloats the size of the kernel considerably and is a regression
relative to the older version of the kernel.

See: https://github.com/cloud-hypervisor/cloud-hypervisor/issues/5190#issuecomment-1614885046

Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-07-02 21:03:15 +01:00
Ruslan Mstoi
1bd8eb68ff Dockerfile: fix hadolint warnings
Fix these warnings:
SC2086 info: Double quote to prevent globbing and word splitting.
DL3047 info: Avoid use of wget without progress bar. Use `wget --progress=dot:giga <url>`. Or consider using `-q` or `-nv` (shorthands for `--quiet` or `--no-verbose`).
SC2006 style: Use $(...) notation instead of legacy backticks `...`.

Ignore these warning cause they break the build or they do not apply:
DL3008 warning: Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
DL3003 warning: Use WORKDIR to switch to a directory
SC2016 info: Expressions don't expand in single quotes, use double quotes for that.
SC2046 warning: Quote this to prevent word splitting.
DL4006 warning: Set the SHELL option -o pipefail before RUN with a pipe in it. If you are using /bin/sh in an alpine image or if your shell is symlinked to busybox then consider explicitly setting your SHELL to /bin/ash, or disable this check
SC2155 warning: Declare and assign separately to avoid masking return values.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-20 12:39:18 -07:00
Ruslan Mstoi
8363eddd97 Dockerfile: fix hadolint error, do not install recommended packages
hadolint error:
DL3015 info: Avoid additional packages by specifying `--no-install-recommends`

Add required packages ca-certificates unzip iproute2 dbus

Without these packages build or integration tests fail if
--no-install-recommends is specified. Previously these packages were
installed as part of recommended dependency packages.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-20 12:39:18 -07:00
Ruslan Mstoi
70aa5bc231 Dockerfile: remove unneeded files to free space
Remove temporary, unneeded files in the docker image to save
about 2.0M of space.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-20 12:39:18 -07:00
Ruslan Mstoi
b8ce1816e9 Dockerfile: convert DEBIAN_FRONTEND to environment variable
Setting environment variable
DEBIAN_FRONTEND=noninteractive
Makes unnecessary setting it in all apt-get install commands

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-20 12:39:18 -07:00
Ruslan Mstoi
43eed4861f Dockerfile: untabify
Some parts of Dockerfile are indented with spaces others with tabs.
Unify indentation to use spaces.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-20 12:39:18 -07:00
Rob Bradford
ca96ff601b build: Migrate from DockerHub to ghcr
It is necessary to transition away from DockerHub as the small
organisation plan in being EOLed.

Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-03-15 22:41:23 +00:00
Bo Chen
c152f9f6bc mics: Update reference kernel to 6.2
Signed-off-by: Bo Chen <chen.bo@intel.com>
2023-03-11 09:55:34 +00:00
Bo Chen
85962099c7 build: Update development container and release action to Rust 1.67
This latest stable Rust toolchain can help reduce the final binary size
around ~300k when comparing with building with Rust 1.62. Specifically,
the binary size now is 3.3M (previously 3.6M) with default feature, and
4.0M (previously 4.2M) with "kvm+mshv" feature (e.g. our release action
build) .

Signed-off-by: Bo Chen <chen.bo@intel.com>
2023-03-01 15:16:23 +00:00
Rob Bradford
d5ce855649 misc: Update reference kernel to 6.1.6
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2023-01-30 08:12:56 +00:00
Praveen K Paladugu
a4ef6e57a7 ci: install swtpm in Docker container
Add steps to build and install swtpm and its dependencies in
ci docker container.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
2023-01-23 10:10:19 -08:00
Rob Bradford
5034bea8c4 Docker: Update Rust toolchain in dev container
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2023-01-16 16:43:49 +00:00
Rob Bradford
5dfc49c9fa build: Update development container to Rust 1.62
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-07-05 11:50:46 +01:00
Rob Bradford
6c365617ee Revert "scripts, README.md: Bump reference kernel to 5.18.8"
This reverts commit 1999ab5707.

See: #4273

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-07-04 10:55:28 +01:00
Rob Bradford
1999ab5707 scripts, README.md: Bump reference kernel to 5.18.8
This marginally reduced the number of patches in the fork.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-07-01 18:45:05 +01:00
Rob Bradford
ffd1411e7c build: Bump minimum Rust version to 1.60
Some dependencies (e.g. pnet 0.30.0) require it.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-05-24 16:02:08 +01:00
Bo Chen
0ad3d5196f Dockerfile: Update to build the latest upstream SPDK
The latest upstream SPDK contains the live-migration support for the
NVMe backend.

Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-04-05 13:04:12 +01:00
Rob Bradford
7936bfe680 Dockerfile, scripts: Update container Rust to latest stable
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-03-03 12:35:41 +00:00
Rob Bradford
ece4fc2026 Dockerfile: Install minimal version of toolchain
This doesn't install the docs which are about 500MiB per toolchain.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-23 16:30:22 +01:00
Rob Bradford
05769879dd Dockerfile: Remove downloaded packages after SPDK build
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-23 16:30:22 +01:00
Rob Bradford
28413d26db Dockerfile: Remove qemu-system from dependencies
This is no longer required to build. Add in dmsetup as an explicit
dependency.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-23 16:30:22 +01:00
Rob Bradford
a08da07d2a Dockerfile: Remove docker.io
We don't need to install docker inside the container. Add missing
depenencies that docker was pulling in.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-23 16:30:22 +01:00
Rob Bradford
2861330d09 Dockerfile: Remove classic virtiofsd from container
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-21 16:05:53 +00:00
Rob Bradford
8c19d526cd github: Use tag derived from date for docker image
This will allow easier transitioning between versions of the container.
A later PR will update the CI to use this new tag.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-18 11:45:40 +00:00
Rob Bradford
580bab6008 Revert "Dockerfile: Move to impish as base for packaged virtiofsd"
This reverts commit 98bbfa9738.

Some tests are continuing to fail even after reverting
d27316dab6. This is the only other
relevant change.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-18 07:36:48 +00:00
Rob Bradford
46d6a6cdfd Revert "Dockerfile: Streamline installed packages"
This reverts commit d27316dab6.

Jenkins testing showed up issues that didn't appear during manual
testing even after using "dev_cli.sh build-container" before running
integration tests.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 21:16:20 +00:00
Rob Bradford
b7512d3d83 Dockerfile: Use generic name for generic kernel package on aarch64
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 19:20:29 +00:00
Rob Bradford
51c5ba9610 Dockerfile: Remove cargo-audit binary
We don't run this binary using the container

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 19:20:29 +00:00
Rob Bradford
09e21e8fe5 Dockerfile: Install ethr binary only on amd64
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 19:20:29 +00:00
Rob Bradford
d27316dab6 Dockerfile: Streamline installed packages
Remove unused packages or more specific dependencies. In particular use
the packaged virtiofsd to avoid compiling it.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 19:20:29 +00:00
Rob Bradford
98bbfa9738 Dockerfile: Move to impish as base for packaged virtiofsd
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-17 19:20:29 +00:00
Bo Chen
1603841f91 Dockerfile: Install iperf3 and ethr for performance tests
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-02-17 14:14:38 +00:00
Rob Bradford
db5583d6a3 resources: Update Rust toolchain used in container to 1.58.1
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-01-21 14:01:50 +00:00
Rob Bradford
ea60d48853 resources: Update Rust version in container to 1.58
Update to the latest stable release.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-01-19 09:53:42 -08:00
Henry Wang
d5b4d0d951 resources: AArch64: Enable Device Mapper and NVME Multipath in config
From 15358ef79d: Device Mapper Multipath
config can avoid systemd errors related to Device Mapper multipath while
guest booting.

From 46672c384c: CONFIG_NVME_MULTIPATH is
needed to fix the observed guest hanging issue cased by systemd crash
while booting.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2022-01-18 18:00:00 -08:00
Michael Zhao
e02f5c9699 resources: Update kernel config on AArch64
Adapted the kernel config on AArch64 to 5.15.12.

Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-01-13 15:39:18 +08:00
Rob Bradford
07756aa8fb tests, README: Bump kernel fork to 5.15.12
This updated tree now includes a fix for virtio-net regression that was
present in 5.14:

commit 732b74d647048668f0f8dc0c848f0746c69e2e2f
Author: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Date:   Sat Oct 9 05:17:53 2021 -0400

    virtio-net: fix for skb_over_panic inside big mode

    commit 126285651b7f ("Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net")
    accidentally reverted the effect of
    commit 1a8024239da ("virtio-net: fix for skb_over_panic inside big mode")
    on drivers/net/virtio_net.c

    As a result, users of crosvm (which is using large packet mode)
    are experiencing crashes with 5.14-rc1 and above that do not
    occur with 5.13.

    Crash trace:

    [   61.346677] skbuff: skb_over_panic: text:ffffffff881ae2c7 len:3762 put:3762 head:ffff8a5ec8c22000 data:ffff8a5ec8c22010 tail:0xec2 end:0xec0 dev:<NULL>
    [   61.369192] kernel BUG at net/core/skbuff.c:111!
    [   61.372840] invalid opcode: 0000 [#1] SMP PTI
    [   61.374892] CPU: 5 PID: 0 Comm: swapper/5 Not tainted 5.14.0-rc1 linux-v5.14-rc1-for-mesa-ci.tar.bz2 #1
    [   61.376450] Hardware name: ChromiumOS crosvm, BIOS 0

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-01-04 18:07:35 +01:00
Bo Chen
df21e15148 Dockerfile: Update version of SPDK in container
This patch also removes the workaround of building SPDK with meson
0.59.2 as the bug has been fixed [1].

[1] https://review.spdk.io/gerrit/c/spdk/dpdk/+/10044

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-12-14 08:26:28 +01:00
Bo Chen
15358ef79d resources: Enable Device Mapper Multipath in linux-config-x86_64
Enabling these configs can avoid systemd errors related to Device Mapper
multipath while guest booting. Especially, the guest can hang when being
used with an NVMe backend without these configs (#3352).

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-12-01 10:31:54 +00:00
Bo Chen
46672c384c resources: Add CONFIG_NVME_MULTIPATH to linux-config-x86_64
This kernel config is needed to fix the observed guest hanging issue
cased by systemd crash while booting.

Fixes: #3352

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-12-01 10:31:54 +00:00
Rob Bradford
8c1176e33a build: Update version of toolchain in container
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-11-01 12:51:19 -07:00
Bo Chen
aaf253a2d7 Dockerfile: Enforce to build SPDK with meson 0.59.2
This is to workaround a regression of building SPDK/DPDK with the latest
meson 0.60.0 [1][2].

[1] https://github.com/spdk/spdk/issues/2214
[2] https://bugs.dpdk.org/show_bug.cgi?id=836

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-10-26 10:22:56 +01:00
Rob Bradford
bbc223b93f build: Update version of toolchain in container
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-10-26 10:22:56 +01:00
Bo Chen
27f7b2c2a1 Dockerfile: Build and install SPDK NVMe to the docker image
We now build SPDK-NVMe inside the container only for the x86_64
platform, as the cross-platform build with 'docker buildx' does not work
for SPDK. For aarch64 the platform, we will build it as a part of the CI
workflow (which is running on the bare-metal machine).

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-10-21 14:29:27 +01:00
Rob Bradford
690bdc3448 Revert "Dockerfile: Build and install SPDK NVMe to the docker image"
This reverts commit a1d8b63d86.

Reverting as this does not successfully cross build.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-10-15 10:17:33 +01:00
Bo Chen
a1d8b63d86 Dockerfile: Build and install SPDK NVMe to the docker image
Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-10-13 14:20:19 +01:00
Jianyong Wu
a9f50dda08 resources: Enable rtc_drv_efi in arm64 kernel config
rtc-efi is used when system boot from UEFI thus the related kernel
driver should be enabled.

Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
2021-09-29 16:32:51 +01:00