29 Commits

Author SHA1 Message Date
Hajime Tazaki
f54d031f45 lkl: update CI images on circleci
this contains a fix for android build (arm64) of missing preadv/pwritev
symbols.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2025-02-19 11:24:48 +09:00
Hajime Tazaki
4818a0b0a9 lkl: update CI images on circleci
Use newer build/test images for the CircleCI images.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2023-06-12 21:55:50 +09:00
Hajime Tazaki
d6a386636a lkl: stop testing android-arm32 on CI
Out toolchain for android-arm32 build has not updated for a while.
While the kernel requires newer gcc, the recent build on cirecle CI
reports like this:

***
*** Compiler is too old.
***   Your GCC version:    4.9.0
***   Minimum GCC version: 5.1.0
***

This commit fixes this issue by disabling android-arm32 build on CI.

Fixes: aec6c60a01 ("kbuild: check the minimum compiler version in
Kconfig")
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2023-06-09 08:41:42 +09:00
Octavian Purdila
3793338cc3 Merge pull request #501 from tavip/lkl-merge-5.10
Merge 5.10
2022-05-15 18:23:50 -07:00
Octavian Purdila
591b4e8e8d CI: update qemu-x86_64 docker image
Update the docker image to pin down the ubuntu cloud image we are
using for qemu to avoid mismatches with the docker environment.

Signed-off-by: Octavian Purdila <tavip@google.com>
2022-05-15 15:18:28 -07:00
Octavian Purdila
40be2b3d74 CI: move coding style checks to GitHub
Check for both : and / host termination when looking for remotes.

Also simplify a bit the checkpath.sh script and assume that we do have
a LKL upstream remote - not useful running this script without one.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2022-05-10 02:35:02 +00:00
Shinichi Awamoto
96de6a9f88 lkl: add PCI device interface and a vfio backend driver
LKL is now able to manage PCI devices by itself like DPDK!
This commit implements a PCI bus driver and PCI device interface.
The commit also includes a vfio-pci backend driver as a reference
implementation, thus no extra kernel modules is needed if
the PCI device is assigned to VFIO.

I believe the vfio backend driver fulfills the need of most cases,
but users can inject wrapper functions for another userspace PCI
framework such as uio-pci-generic or a handmade kernel module.
In either case, the framework should provide physically contiguous memory
for DMA, because the kernel and some drivers (e.g. NVMe) assume its memory
as physically contiguous.

Signed-off-by: Shinichi Awamoto <shinichi.awamoto@gmail.com>
2020-08-20 10:51:28 +00:00
Hajime Tazaki
5cf93b8cf0 lkl: disable dpdk build for circle ci
Current linux-headers on circle ci, based on linux 4.15.0, doesn't allow
us to build dpdk-17.02 and needs to bump the dpdk version to more recent
one.  But it's not trivial to upgrade this thus temporary disabled for a
while.

The specific compilation error of dpdk-17.02 is:
 error: implicit declaration of function 'pci_enable_msix'

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2019-05-28 15:46:12 +09:00
Hajime Tazaki
ef07c38083 lkl: a follow up fix to change docker image
This is an additional fix for f8d5b2d907 to use a docker hub image
from lkldocker/circleci-i386.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2019-05-10 09:37:25 +09:00
Luca Dariz
f8d5b2d907 add circleci configuration for i386
Signed-off-by: Luca Dariz <luca.dariz@gmail.com>
2019-03-22 14:43:20 +01:00
Hajime Tazaki
4ad2c343d6 lkl: add cache version to the source cache
This is a dirty workaround to clear a cache on cirecleci: in 1.0
circleci, we can invalidate a cache by UI but with 2.0 we have no way to
do the job.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-06-26 13:41:59 +09:00
Hajime Tazaki
1d75b4d887 lkl: update docker images for circleci tests
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-05-15 16:24:22 +09:00
Hajime Tazaki
fdb7473e7b Merge pull request #420 from libos-nuse/update-circleci
lkl: update circleci images to enable ccache
2018-02-11 09:53:30 +09:00
Hajime Tazaki
6a5eaa005e lkl: refine valgrind tests and report
With this commit, if there were unknown memory issues, valgrind test on
circleci reports errors.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-02-10 09:25:23 +09:00
Hajime Tazaki
79d6341a8d lkl: update circleci images to enable ccache
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-02-10 09:15:19 +09:00
Hajime Tazaki
1f9a291140 lkl: fix missing package linux-headers*.deb for dpdk build
If package 'linux-headers-`uname -r`' is missing, use pre-installed one
of lkldocker/circleci-x86_64 by creating a symlink at /lib/modules/.
This is required when circleci doesn't update a host kernel *and* ubuntu
packages are deleted.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-02-04 23:59:58 +09:00
Hajime Tazaki
d9862fad51 lkl: fix make install
This commit fixes an issue of `make install` which was dependent on
$(ALL_LIBRARIES) and $(ALL_PROGRAMS) variables, which are no longer
available after the build system improvement.

It also adds a test for make install.

Fixes: 2030bf6e0e ("lkl tools: improve the build system")

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-01-26 08:42:30 +09:00
Hajime Tazaki
b57aa0c1e3 lkl: test FreeBSD11 with cross build
An update with circleci test over qemu (no-kvm) instance.  ssh/scp are
used to copy required files for tests. net-test only partially work file
(with loopback, tap, and pipe) while raw socket needs more work.

currently, hijack-test.sh and lklfuse.sh are skipped, which clearly need
more effort to support.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-01-23 00:18:29 +09:00
Hajime Tazaki
e8a7608a6b lkl: fix valgrind tests remained issues
The 30mins timeout isn't sometime enough so increase to 90 mins.  The
junit xml collection process was also broken on valgrind tests.  This
fixes those issues.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-01-09 14:30:42 +09:00
Hajime Tazaki
a4bbfd1bc1 lkl: fix nightly valgrind test
The commit recovers the timeout variable of an execution of valgrind
session (30mins) so that long execution of valgrind will be waited by
the end of tests.

Additionally net pipe test is skipped due to long duration of test
preparation.

And the valgrind-installed image is also used from docker hub.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2018-01-06 22:29:29 +09:00
Octavian Purdila
e07ec2cca8 circleci: add nigthly build for valgrind test runs
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-12-26 13:26:54 +01:00
Octavian Purdila
3ad97f51a9 circleci: switch to the new test runner
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-12-26 13:26:53 +01:00
Octavian Purdila
2a0c8e24d1 circleci: switch to using the new docker images
In order to improve build time for the case where the docker image is
not cached on the current container we split the docker image into
multiple smaller ones.

Also, the images are now generated from the LKL docker hub
organization (https://hub.docker.com/r/lkldocker/) and the docker
files are stored in a separate gihub repo in the LKL github
organization (https://github.com/lkl).

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 04:03:52 +02:00
Octavian Purdila
8a316e3306 circleci: small improvement for android emulator boot time
Don't start the boot animation and disable audio support.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 04:03:52 +02:00
Octavian Purdila
34ee62d189 circleci: fix checkpatch
Swtiching to shallow trees brakes checkpatch tests since we need the
full history in order to check each patch individually.

So create a separate build for checkpatch that does a full clone.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 03:36:39 +02:00
Octavian Purdila
98cb004ef6 circleci: add caching for the shallow .git tree
It is still faster to use a for the .git shallow tree than to clone it
directly, so lets add it back.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 02:52:57 +02:00
Octavian Purdila
49f68af961 circleci: fix git checkout failures for pull requests
For pull requests we can't use $CIRCLE_CI branch since pull requests
are not branches. To get the pull request we need to do use a refs
spec and we can onlu do that with fetches.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 02:52:56 +02:00
Octavian Purdila
076c52f728 circleci: use common step block
Instead of duplicating the whole step block for each build, define a
common block and reuse it for all builds.

Note: unfortunately yaml does not support appending lists, otherwise
we could have had multiple blocks like checkout, build, test to make
it easier to understand what is going on. It would have also allowed
use to get rid the the ifs in the common block and put them into
specific builds.

Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
2017-11-13 02:52:56 +02:00
Hajime Tazaki
d729dcc659 lkl: migration to circleci 2.0
This migration enables us to test android-aarch64 with proper qemu
binary.  So make test in all targets (x86_64, mingw32, android-arm32,
android-aarch64) should work fine.

This also shorten the test time because most of installation steps are
now in a LKL specific docker image
(https://github.com/thehajime/lkl-docker).

Android test of LKL_HIJACK_BOOT_CMDLINE is skipped due to
non-deterministic result of the test.

Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
2017-09-26 18:33:11 +09:00