Skip to content
This repository has been archived by the owner on Feb 24, 2020. It is now read-only.

Switch default kvm flavour from lkvm to qemu #3562

Merged

Conversation

jodh-intel
Copy link
Contributor

A private semaphoreCI run on this branch shows:

  • No test failures (same as lkvm)
  • The same number of test passes

Added qemu where lkvm was mentioned without also mentioning that
qemu is another stage1 kvm hypervisor option.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Change the default so that if "--with-stage1-flavors=kvm" is specified
but "--with-stage1-kvm-hypervisors=" is not, qemu will be used rather
than lkvm.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
@grahamwhaley
Copy link

lgtm
(pending CI)

@jodh-intel
Copy link
Contributor Author

@Reviewer lucab

@lucab lucab self-requested a review January 30, 2017 10:05
@lucab
Copy link
Member

lucab commented Jan 30, 2017

I'm 👍 on this. For release scheduling purposes, we have 1.24.0 being cut on 02/02 and #3484 still pending, how do we prefer to proceed?

My suggestion would be:

  • rebase and merge stage1: Ensure ptmx device usable by non-root for all flavours. #3484
  • tag 1.24.0 (current week), last one defaulting to lkvm
  • switch rkt SemaphoreCI to test qemu-kvm and perform a smoke run
  • merge this PR
  • ensure that we have everything in place for releasing it (eg. rkt-builder)
  • tag 1.25.0 (in two weeks), first one defaulting to qemu-kvm

@jodh-intel
Copy link
Contributor Author

@lucab - Thanks. +1 for your suggested plan.

@grahamwhaley
Copy link

yep, @jodh-intel and I had a chat and agreed - +1

@s-urbaniak
Copy link
Contributor

I built a rkt-builder image which works with this PR (rebased locally on master), but I get a few warnings during linkage.

@jodh-intel @grahamwhaley could you please take a look at the output below?

Here's the relevant log output:

config.status: creating Makefile

        rkt 1.24.0+gitdb46cd9a-dirty

        stage1 setup

        type:                                   'flavor'
        default stage1 location:                '/usr/lib/rkt/stage1-images/stage1-coreos.aci'
        default stage1 images directory:        '/usr/lib/rkt/stage1-images'

        built stage1 flavors:                   'coreos,kvm,fly'
        default stage1 flavor:                  'coreos'
        implied default stage1 name:            'coreos.com/rkt/stage1-coreos'
        implied default stage1 version:         '1.24.0+gitdb46cd9a-dirty'

        coreos/kvm flavor specific build parameters

        local CoreOS PXE image path:            ''
        local CoreOS PXE image systemd version: ''
        stage1 CoreOS board:                    'amd64-usr'

        kvm flavor specific build parameters

        hypervisors:                            'qemu'

        coreos flavor specific build parameters

        interpreter:                            '/usr/lib/ld-linux-x86-64.so.2'

        other build parameters

        functional tests enabled:               'no'
        incremental build:                      'no'
        features:                               '-TPM +SDJOURNAL'
        ACI arch:                               'amd64'
        go version:                             '1.7.4'
        go arch:                                'amd64'
...
  ACTOOL       /opt/build-rkt/target/bin/stage1-fly.aci
  ACTOOL       /opt/build-rkt/target/bin/stage1-coreos.aci
  BUILD EXT    qemu
  COPY BIOS    bios-256k.bin
  COPY BIOS    kvmvapic.bin
  COPY BIOS    linuxboot.bin
  COPY BIOS    linuxboot_dma.bin
  COPY BIOS    vgabios-stdvga.bin
  COPY BIOS    efi-virtio.rom
  UNTAR        /opt/build-rkt/tmp/usr_from_kvm/kernel/linux-4.9.2.tar.xz => /opt/build-rkt/tmp/usr_from_kvm/kernel
  BUILD EXT    bzImage
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libqemuutil.a(qemu-sockets.o): In function `inet_connect_saddr':
qemu-sockets.c:(.text+0xc12): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libqemuutil.a(qemu-sockets.o): In function `inet_connect_saddr':
qemu-sockets.c:(.text+0xc12): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libqemuutil.a(qemu-sockets.o): In function `inet_connect_saddr':
qemu-sockets.c:(.text+0xc12): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x26d): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
../os-posix.o: In function `os_setup_post':
os-posix.c:(.text+0x515): warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
../os-posix.o: In function `os_parse_cmd_args':
os-posix.c:(.text+0x2c4): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
../net/slirp.o: In function `slirp_smb':
slirp.c:(.text+0x4b5): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0xdc): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
(.text+0x114): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
../net/l2tpv3.o: In function `net_init_l2tpv3':
l2tpv3.c:(.text+0xade): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
../net/net.o: In function `parse_host_port':
net.c:(.text+0x674): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
  COPY FILES   kvm-qemu
  ACTOOL       /opt/build-rkt/target/bin/stage1-kvm.aci

I did a small smoke test, and it seems to work though:

$ sudo ./release-build/target/bin/rkt run --stage1-path=./release-build/target/bin/stage1-kvm.aci --interactive --insecure-options=image,ondisk docker://progrium/busybox --exec=/bin/sh
/ # uname -a
Linux rkt-598436b9-e48f-4e7e-929a-ee33e76dc144 4.9.2-rkt-v1 #2 SMP Mon Feb 13 16:31:28 CET 2017 x86_64 GNU/Linux

@lucab
Copy link
Member

lucab commented Feb 13, 2017

switch rkt SemaphoreCI to test qemu-kvm and perform a smoke run

This was a dumb comment. As per this PR, Semaphore has already happily performed a smoke run.

@lucab
Copy link
Member

lucab commented Feb 16, 2017

Holding this against rkt/rkt-builder#5, and then in turn holding 1.25 against this. Plan is to get a rkt-builder release out earlier tomorrow and then proceed with rkt one.

/cc @squeed @s-urbaniak

@lucab lucab merged commit 9e63d7e into rkt:master Feb 17, 2017
@lucab lucab mentioned this pull request Feb 20, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants