New issue
Advanced search Search tips

Issue 797868 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature

Blocked on:
issue 810955



Sign in to add a comment

Add Aarch64 support to CrosVM

Project Member Reported by sonnyrao@chromium.org, Dec 28 2017

Issue description

Tracking bug to add ARM and specifically aarch64 support to crosvm
 
Labels: OS-Chrome
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/4aa86930edecf6b7842b9403dbea153ba8101e00

commit 4aa86930edecf6b7842b9403dbea153ba8101e00
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Jan 03 05:32:18 2018

kvm_sys: update bindings and add aarch64 bindings

Re-generated the bindings for x86_64 and arm which now use union types
so a little bit of code in the library also changed, and adds bindings
for aarch64 which are required to run an aarch64 guest.

Also, I manually fixed the zero-length array cases where rust bindgen
doesn't properly align the structs.  See rust bindgen  bug 684 .

BUG= chromium:797868 
TEST=run crosvm on x86_64, ensure networking works
TEST=./build_test passes on x86

Change-Id: Iab2193a8f1d4c68bd3346ae683c74bbf16fe45d4
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/845519
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/4aa86930edecf6b7842b9403dbea153ba8101e00/kvm/src/lib.rs
[add] https://crrev.com/4aa86930edecf6b7842b9403dbea153ba8101e00/kvm_sys/src/aarch64/bindings.rs
[modify] https://crrev.com/4aa86930edecf6b7842b9403dbea153ba8101e00/kvm_sys/src/arm/bindings.rs
[modify] https://crrev.com/4aa86930edecf6b7842b9403dbea153ba8101e00/kvm_sys/src/x86/bindings.rs

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/fc38d4fd61a45ce85240085b31acb54b5ba9bf18

commit fc38d4fd61a45ce85240085b31acb54b5ba9bf18
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Jan 09 01:22:59 2018

grpc: fix grpc ebuild to not strip binaries during install

Trying to build grpc on non-x86 platforms fails during install because
grpc tries to use the host version of the strip tool and get the following
error:

strip: Unable to recognise the format of the input file
<shortened>/grpc-1.3.0/libs/opt/libgrpc++.so.1.3.0

Fix this by passing STRIP=true during install and let portage handle it.

BUG= chromium:797868 
TEST=emerge-tael grpc passes

Change-Id: Iaa981b8e0b40eb15a83262b5d1268ab2ac18c04d
Reviewed-on: https://chromium-review.googlesource.com/854765
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/fc38d4fd61a45ce85240085b31acb54b5ba9bf18/dev-libs/grpc/grpc-1.3.0-r3.ebuild

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 9 2018

Labels: merge-merged-chromeos-4.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/10434170bbdcb1921a6049a7003bb8268230b0d7

commit 10434170bbdcb1921a6049a7003bb8268230b0d7
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Jan 09 06:42:08 2018

CHROMIUM: vhost: fix vhost ioctl signature to build with clang

Clang is particularly anal about signed vs unsigned comparisons and
doesn't like the fact that some ioctl numbers set the MSB, so we get
this error when trying to build vhost on aarch64:

v4.4/drivers/vhost/vhost.c:793:7: error: overflow converting case value to
switch condition type (3221794578 to 18446744072636378898) [-Werror,-Wswitch]
        case VHOST_GET_VRING_BASE:

Fix this by using unsigned ints in the function signature for
vhost_vring_ioctl().

BUG= chromium:797868 
TEST=build kevin with USE="kvm_host" and CONFIG_VSOCK=m enabled

Change-Id: Id3e5bfe7aaa3a87926971aae230477ce73f7e5ed
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/855522

[modify] https://crrev.com/10434170bbdcb1921a6049a7003bb8268230b0d7/drivers/vhost/vhost.c
[modify] https://crrev.com/10434170bbdcb1921a6049a7003bb8268230b0d7/drivers/vhost/vhost.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 9 2018

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/47cf73a7fb471bd08c686a57c5702a6231f86922

commit 47cf73a7fb471bd08c686a57c5702a6231f86922
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Jan 09 06:42:11 2018

CHROMIUM: vhost: fix vhost ioctl signature to build with clang

Clang is particularly anal about signed vs unsigned comparisons and
doesn't like the fact that some ioctl numbers set the MSB, so we get
this error when trying to build vhost on aarch64:

v4.4/drivers/vhost/vhost.c:793:7: error: overflow converting case value to
switch condition type (3221794578 to 18446744072636378898) [-Werror,-Wswitch]
        case VHOST_GET_VRING_BASE:

Fix this by using unsigned ints in the function signature for
vhost_vring_ioctl().

BUG= chromium:797868 
TEST=build kevin with USE="kvm_host" and CONFIG_VSOCK=m enabled

Change-Id: Id3e5bfe7aaa3a87926971aae230477ce73f7e5ed
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/854775
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/47cf73a7fb471bd08c686a57c5702a6231f86922/drivers/vhost/vhost.c
[modify] https://crrev.com/47cf73a7fb471bd08c686a57c5702a6231f86922/drivers/vhost/vhost.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/6593ccc650ad03857ac251826062d4ffb1ed57d6

commit 6593ccc650ad03857ac251826062d4ffb1ed57d6
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Jan 10 23:44:49 2018

vm_tools: fix format strings for armv7a

Fix a couple of format string warnings when building for
armv7a.

BUG= chromium:797868 
TEST=emerge-tael vm_tools
TEST='USE=kvm_host emerge-kevin vm_tools'

Change-Id: Id65a5940d4f0bc7fabe49447d452c72cc575bd53
Reviewed-on: https://chromium-review.googlesource.com/858297
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/6593ccc650ad03857ac251826062d4ffb1ed57d6/vm_tools/launcher/vsock_cid.cc
[modify] https://crrev.com/6593ccc650ad03857ac251826062d4ffb1ed57d6/vm_tools/syslog/parser.cc
[modify] https://crrev.com/6593ccc650ad03857ac251826062d4ffb1ed57d6/vm_tools/syslog/forwarder.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/6d0dda156a893ed602156e002b98061977d3b061

commit 6d0dda156a893ed602156e002b98061977d3b061
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Jan 11 05:19:01 2018

tael: make tael armv7 userspace and aarch64 kernel

For our VM tools we don't really need an aarch64 userspace and it
coincidentally doesn't build right now so let's use an armv7a
userspace instead.

BUG= chromium:797868 
TEST=none

Change-Id: I3b98c96a3422ba49787e10b78c6c214f1ff954c6
Reviewed-on: https://chromium-review.googlesource.com/855640
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/6d0dda156a893ed602156e002b98061977d3b061/overlay-tael/profiles/base/parent
[modify] https://crrev.com/6d0dda156a893ed602156e002b98061977d3b061/overlay-tael/profiles/base/make.defaults
[modify] https://crrev.com/6d0dda156a893ed602156e002b98061977d3b061/overlay-tael/toolchain.conf

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63

commit 29cd40a1d61c0d558768e0d32f07f7b7ad84ca63
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Feb 02 02:08:55 2018

crosvm: change GuestAddress to always be a u64

We want to be able to run 64-bit ARM kernels using a 32-bit version of
crosvm, to make it more consistent use a u64 to represent
GuestAddress.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I43bf993592caf46891e3e5e05258ab70b6bf3045
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/896398
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/kvm/src/lib.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/sys_util/src/guest_address.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/sys_util/src/mmap.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/vm_control/src/lib.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/src/linux.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/sys_util/src/guest_memory.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/x86_64/src/regs.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/x86_64/src/lib.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/devices/src/virtio/balloon.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/devices/src/virtio/wl.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/vhost/src/lib.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/devices/src/virtio/queue.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/x86_64/src/mptable.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/devices/src/virtio/block.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/kvm/tests/dirty_log.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/sys_util/src/sock_ctrl_msg.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/data_model/src/volatile_memory.rs
[modify] https://crrev.com/29cd40a1d61c0d558768e0d32f07f7b7ad84ca63/kernel_loader/src/lib.rs

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/6cc352f4fa0ddef9f698b0e73dcd70c24701921c

commit 6cc352f4fa0ddef9f698b0e73dcd70c24701921c
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Sat Feb 03 07:53:42 2018

crosvm: move kernel_cmdline to it's own crate

We'll want architecture code to be able to supply and manipulate Linux
kernel command lines, so let's move this out to it's own crate and
export the interfaces.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I94904055ac02582a4f4d8bbb54d0f41ed14b955d
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/898351
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[add] https://crrev.com/6cc352f4fa0ddef9f698b0e73dcd70c24701921c/kernel_cmdline/Cargo.toml
[modify] https://crrev.com/6cc352f4fa0ddef9f698b0e73dcd70c24701921c/Cargo.lock
[modify] https://crrev.com/6cc352f4fa0ddef9f698b0e73dcd70c24701921c/src/main.rs
[modify] https://crrev.com/6cc352f4fa0ddef9f698b0e73dcd70c24701921c/Cargo.toml
[rename] https://crrev.com/6cc352f4fa0ddef9f698b0e73dcd70c24701921c/kernel_cmdline/src/kernel_cmdline.rs

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/51f0b700e521b85f51e9bf9693766907b6eda49d

commit 51f0b700e521b85f51e9bf9693766907b6eda49d
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Feb 09 07:42:30 2018

vm_tools: concierge: fix format string for armv7a

Fix another format string to build on armv7a.

BUG= chromium:797868 
TEST='USE=kvm_host emerge-kevin vm_tools'

Change-Id: If03719c91352fa171f0a9e9f9aee8809ff399e14
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/910260
Reviewed-by: Stephen Barber <smbarber@chromium.org>

[modify] https://crrev.com/51f0b700e521b85f51e9bf9693766907b6eda49d/vm_tools/concierge/startup_listener_impl.cc

Blockedon: 810955
Components: OS>Systems>Containers
Project Member

Comment 13 by bugdroid1@chromium.org, Feb 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/2507ade9e20c936ca3323ac9e823ac52a922a8c2

commit 2507ade9e20c936ca3323ac9e823ac52a922a8c2
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 21 22:19:48 2018

nfs-ganesha: disable gpfs and panfs, add arm seccomp policy

These filesystems aren't really necessary for our use case and also
happen to not build on arm, so let's disable them, and add a seccomp
policy file based on the x86 policy with small tweaks for arm.

BUG= chromium:797868 
TEST='USE=kvm_host emerge-kevin nfs-ganesha'
TEST=on kevin, start rpcbind and ensure no seccomp violations

Change-Id: I6eeb03310ff56b15bde6a88c16984ceef4adccf5
Reviewed-on: https://chromium-review.googlesource.com/910428
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/2507ade9e20c936ca3323ac9e823ac52a922a8c2/net-fs/nfs-ganesha/files/nfs-ganesha-seccomp-arm.policy
[modify] https://crrev.com/2507ade9e20c936ca3323ac9e823ac52a922a8c2/net-fs/nfs-ganesha/nfs-ganesha-9999.ebuild

Project Member

Comment 14 by bugdroid1@chromium.org, Feb 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/c2cc4e6d890f70442dd30cbcce6b36110303bd5c

commit c2cc4e6d890f70442dd30cbcce6b36110303bd5c
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 21 22:19:47 2018

rpcbind: add seccomp policy for arm

This seccomp policy is based on the x86_64 policy with slight changes
for armv7a.

BUG= chromium:797868 
TEST='USE=kvm_host emerge-kevin rpcbind'
TEST=run rpcbind with seccomp policy on kevin, ensure no crashes

Change-Id: I4daf9a6a4e0bdfa44d7000f39c7aa1dfa9dbe540
Reviewed-on: https://chromium-review.googlesource.com/910452
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/c2cc4e6d890f70442dd30cbcce6b36110303bd5c/net-nds/rpcbind/files/seccomp-arm.policy
[rename] https://crrev.com/c2cc4e6d890f70442dd30cbcce6b36110303bd5c/net-nds/rpcbind/rpcbind-0.2.4-r2.ebuild

Project Member

Comment 15 by bugdroid1@chromium.org, Feb 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/61ee96145a53166d6337b1a01bb4a639abb31ef8

commit 61ee96145a53166d6337b1a01bb4a639abb31ef8
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Feb 22 01:23:23 2018

rpcbind: tighten down seccomp policy on x86

We don't seem to need setuid and setgid to run this daemon, so
disallow those in the policy.

BUG= chromium:797868 
TEST='USE=kvm_host emerge-carloine rpcbind'
TEST=run 'start rpcbind' on caroline, ensure no crashes

Change-Id: Ib77de942574db26aa9186fc7f0667b3a93b344ef
Reviewed-on: https://chromium-review.googlesource.com/920927
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/61ee96145a53166d6337b1a01bb4a639abb31ef8/net-nds/rpcbind/files/seccomp-amd64.policy
[rename] https://crrev.com/61ee96145a53166d6337b1a01bb4a639abb31ef8/net-nds/rpcbind/rpcbind-0.2.4-r3.ebuild

Project Member

Comment 16 by bugdroid1@chromium.org, Feb 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/becb7a4516135c85850152f2565a4f715f300a8b

commit becb7a4516135c85850152f2565a4f715f300a8b
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Feb 22 01:23:24 2018

nfs-ganesha: tighten down seccomp policy on x86

While making the policy for ARM I found some syscalls that weren't
necessary like execve, so let's remove those and then also use
symbolic constants.

BUG= chromium:797868 
TEST='USE=kvm_host emerge-carloine rpcbind'
TEST=run 'start rpcbind' on caroline, ensure no crashes

Change-Id: I39dca1b9cc6c35fd077f397a4ea8cfc99df36205
Reviewed-on: https://chromium-review.googlesource.com/927208
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/becb7a4516135c85850152f2565a4f715f300a8b/net-fs/nfs-ganesha/files/nfs-ganesha-seccomp-amd64.policy

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/8836bb51a23163c8d8fb55fbd271f619010d7f00

commit 8836bb51a23163c8d8fb55fbd271f619010d7f00
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Feb 27 06:07:15 2018

crosvm: move device_manager to it's own crate

I will be refactoring this code to mostly live in the architecture
code, but for now it's simpler to move it out into it's own crate.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I85c12696fcd5cbef6a72a6dcbc484a443e0b0784
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/933084

[rename] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/device_manager/src/device_manager.rs
[modify] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/src/main.rs
[modify] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/build_test.py
[modify] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/Cargo.lock
[modify] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/Cargo.toml
[add] https://crrev.com/8836bb51a23163c8d8fb55fbd271f619010d7f00/device_manager/Cargo.toml

Project Member

Comment 18 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/1aa03e00a0b6cfff12e7298bf91ab55bac9a4012

commit 1aa03e00a0b6cfff12e7298bf91ab55bac9a4012
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 28 06:26:07 2018

x86_64: implement error trait for sub-modules in x86_64 crate

Implement the std::error::Error Trait for Error types within the
x86_64 crate.  We will make use of these implementations later on when
we are using the architecture Trait to pass architecture-specific
errors up with meaningful descriptions.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I7a30db69437990608e3a0f5e6e3a200ef6c2d0c3
Reviewed-on: https://chromium-review.googlesource.com/932976
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/1aa03e00a0b6cfff12e7298bf91ab55bac9a4012/x86_64/src/cpuid.rs
[modify] https://crrev.com/1aa03e00a0b6cfff12e7298bf91ab55bac9a4012/x86_64/src/interrupts.rs
[modify] https://crrev.com/1aa03e00a0b6cfff12e7298bf91ab55bac9a4012/x86_64/src/mptable.rs
[modify] https://crrev.com/1aa03e00a0b6cfff12e7298bf91ab55bac9a4012/x86_64/src/regs.rs

Project Member

Comment 19 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/59cdd83fda0245e310cae018b71a4a8ba4c3b280

commit 59cdd83fda0245e310cae018b71a4a8ba4c3b280
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 28 06:26:10 2018

sys_util: implement error trait for sys_util::Error

This is helpful in passing up low-level errors from system calls.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: Ic2d8a23240a1449ac78877d37a074fd97a29a065
Reviewed-on: https://chromium-review.googlesource.com/933375
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/59cdd83fda0245e310cae018b71a4a8ba4c3b280/sys_util/src/errno.rs

Project Member

Comment 20 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/765deaafb45731060ec183688f727a74e1df0201

commit 765deaafb45731060ec183688f727a74e1df0201
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 28 06:26:08 2018

kernel_loader: implement error trait

This implements the error trait so we can get more useful error
information back on failures.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I888cbe6fca8bc3885eeb4ff747f7b9dc51e0b587
Reviewed-on: https://chromium-review.googlesource.com/938311
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/765deaafb45731060ec183688f727a74e1df0201/kernel_loader/src/lib.rs

Project Member

Comment 21 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/d33407aa99fb798d6c3c9e5f4132f76354334c19

commit d33407aa99fb798d6c3c9e5f4132f76354334c19
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Feb 28 06:26:09 2018

guest_memory: implement error trait

This implements the error trait so we can get more useful error
information back on failures.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: Ia131b1eb14d24709c10f2ba752a962e822134a42
Reviewed-on: https://chromium-review.googlesource.com/938312
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/d33407aa99fb798d6c3c9e5f4132f76354334c19/sys_util/src/guest_memory.rs

Project Member

Comment 22 by bugdroid1@chromium.org, Mar 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/0a404b8a0ea52344024e61c4631a328d49af9a1e

commit 0a404b8a0ea52344024e61c4631a328d49af9a1e
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Mar 02 23:47:18 2018

sys_util: fix issue in ppoll on 32-bit architectures

I ran into an issue on ARM where ppoll() was returning EINVAL and it
was becuase our timespec value sent to ppoll contained a negative
value for tv_sec.  We need to use the correct type when determining
the max value.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I7f8818e5f93e0327fd9facefb5032f7c5fb00ea0
Reviewed-on: https://chromium-review.googlesource.com/945111
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/0a404b8a0ea52344024e61c4631a328d49af9a1e/sys_util/src/poll.rs

Project Member

Comment 23 by bugdroid1@chromium.org, Mar 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/f7963169c5360a92d2ef894b26fcd52b12b0c45e

commit f7963169c5360a92d2ef894b26fcd52b12b0c45e
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Sat Mar 03 06:22:37 2018

crosvm: add dependency to dtc on arm

We need libfdt to run VMs on ARM systems, so this adds a dependency
for that.

BUG= chromium:797868 
TEST=emerge-kevin crosvm

Change-Id: I487e824086ce9b08f14dbae950ebd795d05ae3c7
Reviewed-on: https://chromium-review.googlesource.com/947468
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/f7963169c5360a92d2ef894b26fcd52b12b0c45e/chromeos-base/crosvm/crosvm-9999.ebuild

Project Member

Comment 24 by bugdroid1@chromium.org, Mar 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/43724a239b057e48eefd29489c57fd08cdfa8b8f

commit 43724a239b057e48eefd29489c57fd08cdfa8b8f
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Sat Mar 03 06:22:29 2018

crosvm: move x86_64 arch specific stuff into the x86_64 crate

This is in preparation to make different architectures implement a
trait, but for now it's just moving code out of linux.rs and into
x86_64 trait.  A few new functions were required which will become
part of the trait interface.  There's still a lot of ugly ifdefs
everywhere that should go away in subsequent CLs.

BUG= chromium:797868 
TEST=./build_test
TEST=run crosvm on caroline

Change-Id: Ifc95d4eb84f64ebacb4481a172524d94dc96b7bb
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/942084
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/43724a239b057e48eefd29489c57fd08cdfa8b8f/src/linux.rs
[modify] https://crrev.com/43724a239b057e48eefd29489c57fd08cdfa8b8f/Cargo.lock
[modify] https://crrev.com/43724a239b057e48eefd29489c57fd08cdfa8b8f/x86_64/src/lib.rs
[modify] https://crrev.com/43724a239b057e48eefd29489c57fd08cdfa8b8f/x86_64/Cargo.toml

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/bb7da42d1e4d7831b52d9e221f03ac2a06088f6c

commit bb7da42d1e4d7831b52d9e221f03ac2a06088f6c
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Mar 06 07:48:30 2018

crosvm: linux: separate creating vcpus from running them

On ARM we need to set up all CPUs before we can initialize the
interrupt controller, which is unfortunately the opposite of the
required ordering on X86.  This separates out the creation of the
VCPUs and puts their FDs into a vector and then launches threads from
that vector later on in the setup sequence.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I108234efd6c53c4681531701c107a11e42c029f5
Reviewed-on: https://chromium-review.googlesource.com/947462
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>

[modify] https://crrev.com/bb7da42d1e4d7831b52d9e221f03ac2a06088f6c/src/linux.rs

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/657c1850abc49c81435db03c845a4b8b77dcf288

commit 657c1850abc49c81435db03c845a4b8b77dcf288
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Mon Mar 12 19:52:39 2018

kvm: silence a warning on non-x86 builds

We don't use this particular constant on non-x86 builds, so let's
leave it out if when it's not needed.

BUG= chromium:797868 
TEST=build_test passes
TEST=crosvm runs on caroline

Change-Id: Ic752f9ae33d577d78c7df282e9803936aa181504
Reviewed-on: https://chromium-review.googlesource.com/952166
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/657c1850abc49c81435db03c845a4b8b77dcf288/kvm/src/lib.rs

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/8f73ccc45d0db10c7769f046fd99889cd9a8230d

commit 8f73ccc45d0db10c7769f046fd99889cd9a8230d
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Mar 14 18:55:56 2018

x86_64: implement error trait

This is useful for describing errors that we pass up.

BUG= chromium:797868 
TEST=build_tests passes on all architectures
TEST=crosvm runs on caroline

Change-Id: Ied456015e74830d3f1f465fca1151682c9148eb5
Reviewed-on: https://chromium-review.googlesource.com/961603
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/8f73ccc45d0db10c7769f046fd99889cd9a8230d/x86_64/src/lib.rs

Labels: Type-Feature
Project Member

Comment 29 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/85a8e02e9f59b22366d1999697a39992923688fc

commit 85a8e02e9f59b22366d1999697a39992923688fc
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Mar 16 00:58:19 2018

FROMLIST: vhost: add vsock compat ioctl

This will allow usage of vsock from 32-bit binaries on a 64-bit
kernel.

BUG= chromium:797868 
TEST=run crosvm on kevin, use maitred_client to shut down

Change-Id: I51bcf5087dd079360fe81c3d443c981aac24d4b7
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
(am from https://patchwork.kernel.org/patch/10283631/)
Reviewed-on: https://chromium-review.googlesource.com/963543

[modify] https://crrev.com/85a8e02e9f59b22366d1999697a39992923688fc/drivers/vhost/vsock.c

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/46c8ff4e8eb3818ae897c33943cb9beaee3093d9

commit 46c8ff4e8eb3818ae897c33943cb9beaee3093d9
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Mar 16 00:58:28 2018

FROMLIST: vhost: add vsock compat ioctl

This will allow usage of vsock from 32-bit binaries on a 64-bit
kernel.

BUG= chromium:797868 
TEST=run crosvm on kevin, use maitred_client to shut down

Change-Id: I51bcf5087dd079360fe81c3d443c981aac24d4b7
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
(am from https://patchwork.kernel.org/patch/10283631/)
Reviewed-on: https://chromium-review.googlesource.com/963512
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/46c8ff4e8eb3818ae897c33943cb9beaee3093d9/drivers/vhost/vsock.c

Project Member

Comment 31 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/ed517d1bfe028564076ee45bd9412882c85ebbe7

commit ed517d1bfe028564076ee45bd9412882c85ebbe7
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Mar 16 00:58:33 2018

crosvm: create a LinuxArch trait and use it for x86

This creates a trait that different architectures can implement to
support running Linux VMs.

In the implementation on X86 we remove some error and return errors
from lower-level modules as appropriate.  These modules now implement
the Error trait so we can get meaningful descriptions without an extra
error from the calling function. This still keeps all the ifdefs in
linux.rs for now until we have another implementation to use for ARM.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: If24bcc83e25f9127d6aea68f9272e639296aad8b
Reviewed-on: https://chromium-review.googlesource.com/952368
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/x86_64/Cargo.toml
[add] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/arch/Cargo.toml
[add] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/arch/src/lib.rs
[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/src/linux.rs
[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/src/main.rs
[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/Cargo.lock
[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/x86_64/src/lib.rs
[modify] https://crrev.com/ed517d1bfe028564076ee45bd9412882c85ebbe7/Cargo.toml

Labels: Hotlist-Crostini-Platform
Project Member

Comment 33 by bugdroid1@chromium.org, Mar 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/674f5ff891b3edd8c1d986cc5085fd9c93ea075d

commit 674f5ff891b3edd8c1d986cc5085fd9c93ea075d
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Mar 21 02:30:16 2018

CHROMIUM: config: arm64: make tael reboot on kernel panic

Current behavior on panic is to spin forever which is not what we want
when a VM kernel panics so let's ask the kernel to reboot instead.

BUG= chromium:797868 
TEST=manual: run VM on arm, force panic and ensure VM gets shut down

Change-Id: I4fcdd8f4c26bcc27998932e09cc2d536412d9661
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/969636
Reviewed-by: Stephen Barber <smbarber@chromium.org>

[modify] https://crrev.com/674f5ff891b3edd8c1d986cc5085fd9c93ea075d/arch/arm64/configs/chromiumos-container-vm-arm64_defconfig

Project Member

Comment 34 by bugdroid1@chromium.org, Mar 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/40b4b6853759a3d19881fa3e0dd32d5a76e9bdbe

commit 40b4b6853759a3d19881fa3e0dd32d5a76e9bdbe
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Mar 27 00:03:31 2018

kvmtool: add a static use flag

This is useful if you want to build a 64-bit binary and then use it on
a system with a 32-bit userspace.

BUG= chromium:797868 
TEST='USE=static emerge-arm64-generic kvmtool'

Change-Id: I78ba09f588613e296e023e59ac8cc7d31569a3ba
Reviewed-on: https://chromium-review.googlesource.com/972545
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/40b4b6853759a3d19881fa3e0dd32d5a76e9bdbe/sys-kernel/kvmtool/kvmtool-9999.ebuild

Project Member

Comment 35 by bugdroid1@chromium.org, Mar 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/62a4063aa6c28d1f73e93fd0e7da2135d4d46d02

commit 62a4063aa6c28d1f73e93fd0e7da2135d4d46d02
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Wed Mar 28 01:01:43 2018

crosvm: guest_memory: add memory_size method

This is useful to get the total size of memory without having to write
something that iterates over the regions explicitly.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: Iac9a341b4c41d6462cf731f6267b92a0169578e4
Reviewed-on: https://chromium-review.googlesource.com/977565
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/62a4063aa6c28d1f73e93fd0e7da2135d4d46d02/sys_util/src/guest_memory.rs

Project Member

Comment 36 by bugdroid1@chromium.org, Mar 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/6ce158fb86b034c8a12bee4d65baba452ef42d6a

commit 6ce158fb86b034c8a12bee4d65baba452ef42d6a
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Mar 29 20:32:59 2018

crosvm: support VM shutdown via SystemEvent

ARM systems don't have an exit event fd like x86, instead one of the Vcpus
will exit with the SystemEvent reason and put a code into the kvm run
union of either shutdown, reboot, or crash.  We currently don't handle
reboot or crash differently but can do so in the future.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on kevin - manually test shutdown via maitred

Change-Id: I455cbe1ac653f61a1e9eae1ce22922d14cff4e3c
Reviewed-on: https://chromium-review.googlesource.com/982531
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/6ce158fb86b034c8a12bee4d65baba452ef42d6a/kvm/src/lib.rs
[modify] https://crrev.com/6ce158fb86b034c8a12bee4d65baba452ef42d6a/src/linux.rs

Project Member

Comment 37 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/00549b04a9a4240d9313769c446d4be30d634c1f

commit 00549b04a9a4240d9313769c446d4be30d634c1f
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Mar 30 02:51:34 2018

crosvm: fix documentation for SystemEvent

The documentation for the SystemEvent exit reason needs to specify
the positions for the two fields.

BUG= chromium:797868 
TEST=./build_test passes on all architectures

Change-Id: Ida98ba4a6b383a1c10fa48356decc1c5264999ec
Reviewed-on: https://chromium-review.googlesource.com/986721
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/00549b04a9a4240d9313769c446d4be30d634c1f/kvm/src/lib.rs

Project Member

Comment 38 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/b1ccbeaf696c52e95263e25086f75b27b96bb29d

commit b1ccbeaf696c52e95263e25086f75b27b96bb29d
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Apr 03 08:29:14 2018

crosvm: skip unit tests for aarch64 crate

This crate won't build on x86 so we cannot run the unit tests for it
on our build machines natively.

BUG= chromium:797868 
TEST=run unittests on eve build

Change-Id: I213c72c2454217b22384720791d589275680afd8
Reviewed-on: https://chromium-review.googlesource.com/990894
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/b1ccbeaf696c52e95263e25086f75b27b96bb29d/chromeos-base/crosvm/crosvm-9999.ebuild

Project Member

Comment 39 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ab5df3c3aa14f29b0658c45522ecd80ab4ec470f

commit ab5df3c3aa14f29b0658c45522ecd80ab4ec470f
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Apr 03 19:50:38 2018

crosvm: install seccomp policies for ARM devices

Now that we have seccomp policies for ARM let's install them.

CQ-DEPEND=969987
BUG= chromium:797868 
TEST=emerge-kevin crosvm
 look for /build/kevin/usr/share/policy/crosvm/

Change-Id: Id980fdd413cbaf699110cc208ca7586c37c15784
Reviewed-on: https://chromium-review.googlesource.com/982980
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/ab5df3c3aa14f29b0658c45522ecd80ab4ec470f/chromeos-base/crosvm/crosvm-9999.ebuild

Project Member

Comment 40 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e

commit 2ffa0cbe5bb41beea81fd2d14a7f781747bb955e
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Apr 03 19:50:37 2018

crosvm: aarch64 guest support

- removes old ARMv7a (32-bit) bindings as we're only supporting aarch64
  guests right now
- switches both ARMv7 and aarch64 builds to use aarch64 kvm bindings
- adds support for ARMv8 Linux guest with dynamic flattened-device-tree

CQ-DEPEND=990894
BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline
TEST=crosvm runs on kevin built with USE="kvm_host"

Change-Id: I7fc4fc4017ed87fd23a1bc50e3ebb05377040006
Reviewed-on: https://chromium-review.googlesource.com/969987
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/kvm/src/lib.rs
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/rng_device.policy
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/block_device.policy
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/vhost_vsock_device.policy
[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/src/main.rs
[delete] https://crrev.com/5d586b73a4c78f4118b97e65a229cbb7e99bf963/kvm_sys/src/arm/bindings.rs
[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/src/linux.rs
[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/kvm_sys/src/lib.rs
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/net_device.policy
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/aarch64/src/fdt.rs
[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/Cargo.lock
[modify] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/Cargo.toml
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/aarch64/src/lib.rs
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/aarch64/Cargo.toml
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/balloon_device.policy
[add] https://crrev.com/2ffa0cbe5bb41beea81fd2d14a7f781747bb955e/seccomp/aarch64/vhost_net_device.policy

Project Member

Comment 41 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/a7fae252b05b617fd27f58b9bba8122d18154ccb

commit a7fae252b05b617fd27f58b9bba8122d18154ccb
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Tue Apr 03 19:50:39 2018

crosvm: aarch64: get kernel's preferred target type for vcpus

This fixes an issue on kevin where if we start on a little core, the
kernel doesn't like the generic ARMv8 target cpu type for some reason.  To
fix this we must query the preferred type from the vm device first and
supply that to the vcpu init ioctl.

We need to change the signature of the configure_vcpu method to pass
in the vm object even though we aren't using it on x86.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on kevin

Change-Id: I460cb9db62a8805bb88f838956aa4f1c69183961
Reviewed-on: https://chromium-review.googlesource.com/982996
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/a7fae252b05b617fd27f58b9bba8122d18154ccb/kvm/src/lib.rs
[modify] https://crrev.com/a7fae252b05b617fd27f58b9bba8122d18154ccb/aarch64/src/lib.rs
[modify] https://crrev.com/a7fae252b05b617fd27f58b9bba8122d18154ccb/src/linux.rs
[modify] https://crrev.com/a7fae252b05b617fd27f58b9bba8122d18154ccb/x86_64/src/lib.rs
[modify] https://crrev.com/a7fae252b05b617fd27f58b9bba8122d18154ccb/arch/src/lib.rs

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f3df14bc7ee9b477213c36d612bcd4c2e3786dc5

commit f3df14bc7ee9b477213c36d612bcd4c2e3786dc5
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Apr 06 21:44:03 2018

CHROMIUM: config: add CONFIG_BTRFS to arm64 vm config

We need BTRFS on ARM.

BUG= chromium:797868 
TEST=manual test on kevin

Change-Id: I04ca589aa95bcf56f099925a65758b78b5c8a645
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/999121
Reviewed-by: Stephen Barber <smbarber@chromium.org>

[modify] https://crrev.com/f3df14bc7ee9b477213c36d612bcd4c2e3786dc5/arch/arm64/configs/chromiumos-container-vm-arm64_defconfig

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/318419c3713aae8c622785bc3cd148c271e87d4e

commit 318419c3713aae8c622785bc3cd148c271e87d4e
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Apr 06 21:44:00 2018

CHROMIUM: config: add CONFIG_VIRTIO_WL to arm64 vm config

We'll need this to get virtio Wayland support working.

BUG= chromium:797868 
TEST=manual test on kevin

Change-Id: I53f661415b98a476e2b629bb20a68f8d6ccc8f85
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/999167
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/318419c3713aae8c622785bc3cd148c271e87d4e/arch/arm64/configs/chromiumos-container-vm-arm64_defconfig

Project Member

Comment 44 by bugdroid1@chromium.org, Apr 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosvm/+/7951f16b87eb785248ca57ad24c15c96baf1fb23

commit 7951f16b87eb785248ca57ad24c15c96baf1fb23
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Fri Apr 06 21:44:10 2018

crosvm: aarch64: add seccomp policy for wl_wayland

Add a seccomp policy for virtio wayland devices on aarch64.

BUG= chromium:797868 
TEST=./build_test passes on all architectures
TEST=crosvm runs on kevin built with USE="kvm_host" with a
  wayland socket passed in

Change-Id: I89e9904b48598d78be0721ba8b3242d1b43f7aa3
Reviewed-on: https://chromium-review.googlesource.com/999169
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[add] https://crrev.com/7951f16b87eb785248ca57ad24c15c96baf1fb23/seccomp/aarch64/wl_device.policy

Project Member

Comment 45 by bugdroid1@chromium.org, Apr 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/72f85c29a6106f5d770574dc304fcaf705a724a1

commit 72f85c29a6106f5d770574dc304fcaf705a724a1
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Sat Apr 07 05:00:31 2018

CHROMIUM: config: arm64 VM enable netfilter configs

This brings Arm64 and x86 to parity for the VM guest kernel options
for netfilter, which are required for lxd.

BUG= chromium:797868 
TEST=manual test on kevin

Change-Id: I2f4d07acc9076ec3482dd91df747390248f4a0e2
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1000766
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/72f85c29a6106f5d770574dc304fcaf705a724a1/arch/arm64/configs/chromiumos-container-vm-arm64_defconfig

Project Member

Comment 46 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/86a12f9497ec89e5d2ab645a19e28c18965bb94a

commit 86a12f9497ec89e5d2ab645a19e28c18965bb94a
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Apr 12 19:38:25 2018

vm_tools: adjust unit-tests to run on 32-bit platforms

We're currently running a 32-bit userspace on arm systems so the
struct timeval isn't capable of dealing with dates beyond 2038, so any
year specified passed 138 will cause a failure.  Avoid the issue by
using earlier years.

BUG= chromium:797868 
TEST=unittests for vm_host_tools pass on kevin

Change-Id: I5a0956343a567fb16bd5693ca64be7810a6bb63a
Reviewed-on: https://chromium-review.googlesource.com/1009112
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>

[modify] https://crrev.com/86a12f9497ec89e5d2ab645a19e28c18965bb94a/vm_tools/syslog/scrubber_unittest.cc
[modify] https://crrev.com/86a12f9497ec89e5d2ab645a19e28c18965bb94a/vm_tools/syslog/forwarder_unittest.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/865616911e79ce451165742d1c76a6810234f533

commit 865616911e79ce451165742d1c76a6810234f533
Author: Sonny Rao <sonnyrao@chromium.org>
Date: Thu Apr 12 22:22:22 2018

kevin: set kvm_host USE flag

This will let us roll out VMs on kevin systems and later we can
switch all of baseboard gru over to use this flag.

CQ-DEPEND=1009112
BUG= chromium:797868 
TEST=build packages/image on kevin, boot

Change-Id: I72a7eeae882c6edf98db742911a00e93e850d4b6
Reviewed-on: https://chromium-review.googlesource.com/1006480
Commit-Ready: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/865616911e79ce451165742d1c76a6810234f533/overlay-kevin/profiles/base/make.defaults

Status: Fixed (was: Untriaged)
going to call this fixed -- I'l open separate bugs for the other issues
Project Member

Comment 49 by bugdroid1@chromium.org, Jun 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/7629eeda51772cb5be5353d5397e9c2d66fdef51

commit 7629eeda51772cb5be5353d5397e9c2d66fdef51
Author: Mike Frysinger <vapier@chromium.org>
Date: Sat Jun 16 01:50:54 2018

gru: move kvm_host to the baseboard

BUG= chromium:797868 
TEST=precq passes

Change-Id: I7b217c5d9c492e14aebde8f5ac94c45636de3c9b
Reviewed-on: https://chromium-review.googlesource.com/1102491
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>

[modify] https://crrev.com/7629eeda51772cb5be5353d5397e9c2d66fdef51/overlay-kevin/profiles/base/make.defaults
[modify] https://crrev.com/7629eeda51772cb5be5353d5397e9c2d66fdef51/baseboard-gru/profiles/base/make.defaults

Sign in to add a comment