Age | Commit message (Collapse) | Author |
|
This change introduces feature audio_aaudio on top of the support of
virtio-snd-multiple-backend. The android_audio uses the Android
AAudio NDK library to play audio. A libaaudio_stub is provided for
building and testing on non-android environment.
Bug=b:325930215
Test=Play Youtube video on panther
Test=./tools/dev_container
Test=cargo build
Test=cargo build -F audio_aaudio,libaaudio_stub
Test=./tools/run_tests
Test=./tools/presubmit
Change-Id: I7c275433bf94d4a347720ce0ffa9127ffcb66a1e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5556704
Reviewed-by: Jiyong Park <jiyong@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Auto-Submit: Mu-Le Lee <mulelee@google.com>
Commit-Queue: Mu-Le Lee <mulelee@google.com>
Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
|
|
This is selectable with a new ExecutorKind. Rather than using the
common_executor backend, it uses tokio as the backend.
Bug: b/320603688
Test: tools/presubmit
Test: cargo build --features=cros_async/tokio --target=x86_64-unknown-linux-gnu
Change-Id: Ibf65b17077048f4ed1cce07fa985787b1eb1b6a3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5174966
Commit-Queue: Cody Schuffelen <schuffelen@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
|
|
Add a metrics_event package instead of relying on metric events provided
out of a vendor/ crate. The new API defines the same events as the
existing vendor API, except it removes any dependencies on downstream
details. To allow downstream projects to define their own events, the
new API adds a vendor metrics_event package to support downstream-only
event types.
BUG=b:332466813
TEST=./tools/dev_container ./tools/presubmit all
Change-Id: I766ad6ca2a0a437bb487e27fb84a4984f66c9770
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5400361
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: David Stevens <stevensd@chromium.org>
|
|
This change introduces two features:
* android_display and
* android_display_stub
The android_display feature adds a new GPU display backend for Android
which emits the display output to an Android surface. The surface is not
created by the backend itself, but by an external entity (ex: Android
app) by creating a SurfaceView. This allows us to display a VM anywhere
the app is shown.
The owner of the surface (the app) is expected to share the surface with
the new backend by calling an AIDL method that the backend will
implement. The AIDL service implementing the method will be registered
to the service manager using the name set via the cmdline option
--android-display-service NAME.
This CL however doesn't include the implementation of the AIDL service
because upstream crosvm doesn't support building an AIDL service and
Android-specific libraries like libnativewindow. Instead, the
android_display_stub feature provides a no-op stub for the AIDL service,
so that we can at least build the rest of the new display backend.
TEST=cargo build
TEST=cargo build -F android_display,android_display_stub
TEST=./tools/run_tests
TEST=./tools/run_tests -F android_display,android_display_stub
TEST=./tools/presubmit
Bug: 325929966
Change-Id: I24f672beaa4a28253f150306a64df34f4962361e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5390926
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Jiyong Park <jiyong@google.com>
|
|
Use zerocopy functions directly instead. This is a step toward replacing
our data_model crate with standard crates.io functionality where
possible.
BUG=b:312312646
TEST=tools/dev_container tools/presubmit
Change-Id: I9717edce6fe2b4ca53ad9043db61de2e9bc55b78
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5046345
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
|
|
BUG=b:295256641
TEST=cargo build -F pvclock
TEST=cargo test -p devices -F pvclock -- pvclock
TEST=cargo test -p e2e_tests -- suspend
TEST=tools/dev_container tools/presubmit all
TEST=crrev/c/5151637
Change-Id: I57fe8ece5a205decb36ef7863d8e5c4f4f4c6bde
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4576848
Commit-Queue: Hikaru Nishida <hikalium@chromium.org>
Reviewed-by: David Stevens <stevensd@chromium.org>
|
|
Create and use PvClockState struct. Before this CL, PvClockSnapshot
had been created by hand because of Arc is used for total_suspend_ns.
However, it can be serialized when rc feature is enabled for serde crate
so enable it and share the common struct to make the code clean.
c.f. https://docs.rs/serde/latest/serde/trait.Serialize.html#impl-Serialize-for-Arc%3CT%3E
BUG=None
TEST=cargo build -F pvclock
TEST=cargo test -p devices -F pvclock -- pvclock
TEST=cargo test -p e2e_tests -- pvclock
Change-Id: I28ef9a3a4b2bf757397ce0be5a0c36bc72bc1489
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5312036
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Hikaru Nishida <hikalium@chromium.org>
|
|
The generic portion contains only interfaces, but no actual encryption
code. It will be used by an upcoming snapshot encryption option.
BUG=b:286345300
TEST=n/a (intended to always panic)
Change-Id: I54e8d4753a5584ffe7e9f0df5c31636ad34a905d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5350786
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Noah Gold <nkgold@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
This is a new display path for creating vulkan-based surfaces.
Test: build
Change-Id: I28e3b455ed265b615c4f8fe7c6ac28e2da81ec2e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5214569
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
|
|
Change-Id: I834476fe3ac906309962355ae622466682222b7a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5321576
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
This seems to build fine upstream, so re-enable it to ensure it does not
get broken accidentally.
Change-Id: I1fcb5678ce33edb24d1aa047fa405b1d27100206
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5321440
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
Change-Id: Ibfe05312db8c44dbc7f515b10b830c1e75e96852
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5321575
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
This has been replaced by individual feature flags, which are enabled by
the downstream ChromeOS chromeos-base/crosvm package.
BUG=b:244618505
TEST=tools/dev_container tools/presubmit
TEST=emerge-$BOARD chromeos-base/crosvm
Change-Id: I9f540d947ef8050335e5f8ca3e33ebbbf32a1836
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5311522
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
This is only intended to be used on the downstream ChromeOS version of
crosvm, so we should really be patching it there rather than carrying
this code in upstream crosvm.
The crosvm version of the memfd panic handler will be replaced with the
version from libchromeos-rs.
BUG=b:325081271
BUG=b:309651697
Change-Id: I0587bacd103a3f2471d2ac7227903df6cd7e0028
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5293235
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
Hook rutabaga_gfx/vulkano into a new top-level feature of the same name,
so that it can be detected for conditional compilation of gpu device
creation details.
Also moves the `vulkano` dependency out of windows-specific list and
into generic list for all platforms.
(Note: the existing rutabaga_gfx/Cargo.toml hacks must still be locally
applied and rust-toolchain channel must be manually set to 1.70 or
greater to successfully build with --feature=vulkano)
BUG=b:246334944
BUG=b:244591751
Test=tools/dev_container tools/presubmit
Change-Id: Ic1938f3d8599de1414539abf5a4b57a9fe1764dd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5264226
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Ryan Neph <ryanneph@google.com>
|
|
Add a top level noncoherent-dma feature flag as well as its
counterparts in devices and hypervisor modules.
This flag enables the MemCacheType::CacheNonCoherent handling,
ensuring that behavior introduced in the previous commit can be
selectively enabled.
BUG=b:316337317
TEST=emerge-rex chromeos-base/crosvm
TEST=USE=crosvm-noncoherent-dma emerge-rex chromeos-base/crosvm
Change-Id: I13f50547b21ce804c5fa4b8f6328931f558b717e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5237126
Reviewed-by: Frederick Mayle <fmayle@google.com>
Reviewed-by: Zhenyu Z Wang <zhenyuw@linux.intel.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Stanisław Kardach <skardach@google.com>
|
|
The pci-hotplug compile time flag is enabled for all architectures to
keep vm-control API consistency. Moving the flag to all-default ensures
test coverage for compliation of crosvm and vm-control. This CL also
contains fixes required to enable the tests.
BUG=b:243767476
BUG=b:293801301
TEST=./tools/dev_container cargo build --target aarch64-unknown-linux-gnu
TEST=./tools/dev_container ./tools/presubmit
Change-Id: I99df55eaeb89d26dd9ce5175417eb4e154c28a9b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5179895
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Ningyuan Wang <ningyuan@google.com>
|
|
gdbstub 0.6.3 -> 0.7.0
gdbstub_arch 0.2.4 -> 0.3.0
There is small change in API, see src/crosvm/gdb.rs. `read_addrs` now returns a `usize` instead of a `()`.
This change is needed to submit this AOSP topic: https://android-review.git.corp.google.com/c/platform/external/crosvm/+/2879249
BUG=b:286979636
TEST=tools/presubmit --all
Change-Id: I124d65e673c5943070c2bb5e39e3a7e5506e5528
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5146447
Commit-Queue: Frederick Mayle <fmayle@google.com>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
Crosvm enables unstable virglrenderer features based on the pkgconfig
flags. The virgl_renderer_next build flag isn't used anymore, remove it.
BUG=none
TEST=none
Suggested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Change-Id: I96ba36a9a8c1af9a252e8dcbe664cbf1597543a6
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5077248
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Ryan Neph <ryanneph@google.com>
|
|
Add codegen-units=1 build profile to further reduce binary size
and potentially improve performance.
tools/build_release is updated to allow choice of build profiles.
To keep binary size measurement trend consistent, release build
recipe is running with chromeos profile.
crosvm size of different profiles at current cl:
relase profile (w/o strip symbols) 24192680,
chromeos profile (strip symbols from release) 15088272,
lto profile (fat lto & strip symbols) 14326144,
largecodegen profile (codegen-units=1 w/ fat lto) 13764896
TEST=./tools/build_release --profile largecodegen
BUG=b:181105093
Change-Id: I057ddfce3e78aa4dfe6b4810f4bcb1f13b954bb4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027712
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Zihan Chen <zihanchen@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
TEST=booted test kernel, ensured uuid is correctly returned at
/sys/class/dmi/id/product_uuid.
BUG=b:249382713
Change-Id: I444adebcea4b374b8c2744afba32cad5ff794ce0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5010881
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Mike Gerow <gerow@google.com>
|
|
"linux"))]
Updates are made to source and documentation.
This more accurately represents the currently supported platforms of
Android/Linux and Windows, without unexpectedly including other
unix-like operating systems.
Command to reproduce:
$ find . -type f -not -path '*/\.git/*' | xargs -I {} sed -i 's/cfg(unix)/cfg(any(target_os = "android", target_os = "linux"))/g' {}
$ cargo fmt
md files manually updated to fix line lengths.
Renaming `unix` modules to `linux` will be done in a later CL.
Test: ./tools/dev_container ./tools/presubmit
Bug: b/298269162
Change-Id: I42c1bf0abf80b9a0df25551613910293217c7295
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4909059
Commit-Queue: Cody Schuffelen <schuffelen@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
|
|
DataInit type is finally completely eliminated from crosvm. No
traces, not even in comments, were left.
BUG=b:300969352
BUG=b:204409584
Change-Id: I79742f8e06b90afd53fab338d9052b25ae0af84e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4878508
Reviewed-by: Frederick Mayle <fmayle@google.com>
Commit-Queue: Frederick Mayle <fmayle@google.com>
Auto-Submit: Zihan Chen <zihanchen@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
|
|
This feature does nothing in the base and devices crates, so remove it.
The remaining features enabled by chromeos are still needed until they
are enabled explicitly in the crosvm ebuild, so they aren't removed yet.
BUG=b:244618505
TEST=emerge-brya crosvm
Change-Id: I4fec40fb7ceb4eeff75266a66f19c0f142b9195a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4873792
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
The software TPM backed by the libtpm2 simulator was only used for
testing; now that we have the vTPM proxy device, the software TPM is no
longer needed.
This also allows removal of the tpm2 submodule (tpm2-sys/libtpm2).
BUG=b:300673042
TEST=tools/dev_container tools/presubmit
Change-Id: I3feb5f715f9f12f832450df712c0f63ed7b4fb13
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4875221
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
This commit just adds the feature but intentionally does not use it yet.
For downstream projects (e.g. the ChromeOS crosvm ebuild) that use
--no-default-features and enable individual features manually, those
projects will need to add the net feature to their build scripts in
order to keep network functionality. Once that is done, then we can make
the net feature actually control whether the net device is built.
Change-Id: I47e405ac295eef933f5d83ec3a4a490028da231b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4823132
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
This code is unused and untested, while simultaneously making the rest
of the virtio device code more complex. Remove it.
BUG=b:276993009
TEST=tools/dev_container tools/presubmit
Change-Id: I9d44f92419c6912d1735043404d4f64efc95bba4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4676076
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
|
|
This will be run by default by CI builders, but not locally as it
invalidates the build cache.
BUG=b:260607247
TEST=dev_container presubmit --no-delta all
Change-Id: I75f3d97bda6881a343364875e53e529a39ff168a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4818791
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
|
|
This is not used by vm_concierge after https://crrev.com/c/4781331 and
there are no other users that I can find, so remove the unused code.
BUG=b:296117425
TEST=emerge-brya crosvm vm_host_tools
Change-Id: Icd81a977fdfa856522a9cf0ab91d1e5291a5c4e2
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4808256
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
The code is being moved to https://github.com/google/rust-p9 and published via crates.io
BUG=b:293164618
TEST=presubmit
Change-Id: Iee96cdff8bae6f9ae4faa59dfc80d2132ed31822
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4735191
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
|
|
This CL implements PCI hotplug feature for virtio-net device. The
feature is controlled by pci-hotplug feature flag and pci-hotplug-slots
runtime flag. No behavior change to crosvm unless pci-hotplug-slots flag
is set to a nonzero value.
BUG=b:243767476
TEST=tools/presubmit
TEST=e2e_test::tap_hotplug for TAP device hotplug and removal
TEST=manual test for TAP device hotplug and removal with swap
Change-Id: I5a60314293ef8a27981d7b550a61822491c254bb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4473610
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Shin Kawamura <kawasin@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Ningyuan Wang <ningyuan@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Jason Iman <jasongustaman@chromium.org>
|
|
This will ensure the binary is compiled in upstream CI.
The new location will require an updated ebuild file
and needs to be synchronized via Cq-Depend during the
ChromeOS merge process.
BUG=b:293164205
TEST=presubmit
Change-Id: I51f4d8b8e606b64f124bf2801c1e4701d00eed85
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4718765
Reviewed-by: Judy Hsiao <judyhsiao@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
|
|
BUG=b:279663365
TEST=tools/dev_container tools/presubmit
Change-Id: Iaa0b8176a54982044137b112039bf04f1e183c4e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4713506
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Grzegorz Jaszczyk <jaszczyk@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dmytro Maluka <dmy@semihalf.com>
|
|
CL introduces HotPluggable, additional requirements for a PciDevice to
be configured in a hotplug context. VirtioPciDevice is currently the
only supported type.
TEST=tools/presubmit
BUG=b:243767476
Change-Id: I0e8a6c6fbd430216874b54d7b577f04cd4bae5fd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4615383
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Ryuichiro Chiba <chibar@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
|
|
BUG=b:286107739
TEST=none
Change-Id: I8aa0dd5335a6d85566a75afc2fc1245380dd6dcd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4605997
Commit-Queue: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
|
|
Moves generic anti-tamper into its own crate under
'/vendor/generic/anti_tamper'
BUG=b:286107739
TEST=none
Change-Id: I47045ce9ffe690340cd1ba749bdb692bbd624f92
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4605893
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Vikram Auradkar <auradkar@google.com>
|
|
since the RegisteredEvent model is effectively an external API, switch
to using protobuf as a more formal/stable means of communicating
messages. also introduces exporting the registered_events.proto file as
part of crosvm_control build, alongside the currently existing header
file.
this patch also introduces feature-gating for registered_events and
protos so as not to bring in too many third party dependencies for a
base build.
BUG=b/278117550
TEST=run bzImage locally
TEST=sidecar program available at https://x20.corp.google.com/users/dr/drmasquatch/socket-pinger-proto
Change-Id: I5d91d87f7807effc125352caf5c75eee2593f70d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4521604
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: maciek swiech <drmasquatch@google.com>
|
|
Use the version of cros-codecs publishes on crates.io and adapt the code
to be able to use it. This results in a few simplifications as e.g.
frame ordering is guaranteed by cros-codecs and we don't need to handle
it anymore.
BUG=b:262824148
TEST=ffmpeg -codec:v vp9_v4l2m2m -i Big_Buck_Bunny_720_10s_1MB.webm Big_Buck_Bunny-%03d.png
TEST=cargo test --features "video-decoder,vaapi,ffmpeg" -p devices -- --include-ignored test_decode_h264
Change-Id: Ib694afe8206a4d85b307efaaf3f6669dfe4e18bb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4518093
Auto-Submit: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
|
|
This simplifies `cargo fuzz` usage. Fuzzers can be built with
`cargo fuzz build` without any other arguments.
BUG=b:279217867
TEST=`cargo fuzz build`
Change-Id: I11b8a8ba4c2b3e2d1a42973699e4d9c3920635b6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4540001
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
|
|
We no longer need to share cros-fuzz with ChromeOS. So we can
consolidate our fuzzing code and reorganize it to work well
with `cargo fuzz`.
BUG=b:279217867
TEST=cargo +nightly fuzz build --fuzz-dir=crosvm-fuzz -O
Change-Id: I75653961c6cbf251af9e54f894d6f20ea1218b53
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4539922
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
|
|
"enable" feature in swap crate was set as default to run
unit/integration tests of the crate. https://crrev.com/c/4486546
However missing `default-features = false` at non-root Cargo.toml cause
other crates (e.g. x86_64) installing userfaultfd always.
This makes the swap/enable non-default. CQ still runs unit/integration tests of the swap crate on aarch64 and x86_64.
BUG=b:281935498
TEST=cargo test -p swap --features=swap/enable
Change-Id: I57436c3cb8cbdfac04c3145cc599261b89cf4e0e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4518090
Commit-Queue: Shin Kawamura <kawasin@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
This is a step towards upstreaming Perfetto support (adding the
Perfetto Rust wrappers). These wrappers won't compile until we have
the Perfetto source & libraries in place.
BUG=b:277138899
TEST=n/a
Change-Id: Ic9cc86285383b114cecf7cfe574b3e2511d7afeb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4428221
Reviewed-by: Steven Moreland <smoreland@google.com>
Reviewed-by: Morg <morg@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Noah Gold <nkgold@google.com>
|
|
We originally held this back when switching to the 2021 edition of rust
as it was causing issues in downstream projects. If this is still an
issue, I would recommend not merging this change downstream.
BUG=b:223855233
TEST=CQ
Change-Id: I4a3eb99ee34f4495dd42cd0dea0f4864002519c3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4517945
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
|
|
Remove the architecture-specific requirements from the gdb config
checks. This enables gdb across every supported target_arch without
having to manually add new architectures to each cfg check.
For the specific case of target_arch = "arm", this patch will newly
enable gdb support. The gdbstub protocol will still send aarch64 state,
matching the guest.
This stubs out enough riscv64 gdb functions and types to make
`cargo build --features=gdb` compile, but gdb support will not be
functional on that architecture without additional work.
Change-Id: I63b079b7a3dca4aec2c13c775c0ccb8850625884
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4506285
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Dylan Reid <dgreid@rivosinc.com>
|
|
Status does not depend on any swap related feature. Exposing Status to
all variants is easy to implement swap status FFI at crosvm_control.
The new "swap/enable" feature switches the actual vmm-swap functionality
to be compiled. The feature is enabled by default on "swap" crate but
disabled on the root package for test dependency.
Vmm-swap feature is enabled by `--features=swap` flag on cargo build as
before.
swap/src/controller.rs is copied from swap/src/lib.rs.
BUG=b:265386761
TEST=tools/dev_container tools/run_tests2
Change-Id: Ifc2539a62d0f594fd5bbb41623c735ea2621f7b6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4486546
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Shin Kawamura <kawasin@google.com>
Reviewed-by: David Stevens <stevensd@chromium.org>
|
|
Allow running riscv unit tests only. This required filtering out some
workspace projects that can't yet build on riscv because the backing
packages aren't installed. Aside from that and passing the new
`--no-default-features` flag to `run_tests`, this is mostly copy/paste
of aarch64 support.
TEST=./tools/run_tests -p riscv64 --no-default-features
TEST=./tools/presubmit unit_tests
Change-Id: If0f74f1bb6eb42e1fe24ad31f4c1aa06f7822f8c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4500729
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
|
|
system_api bindings have been regenerated with protobuf 3.2; this should
be okay to land before the full ChromeOS system_api migration, since
crosvm always uses its own copy of the bindings rather than the ones
provided by the dev-rust/system_api package.
The protoc-rust crate is replaced with protobuf_codegen in 3.x.
BUG=b:277243607
BUG=b:279834784
TEST=tools/dev_container tools/presubmit
Change-Id: I6aad45ded2639d7506a7238800584bebab196455
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4405309
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
|
|
Allows running crosvm on riscv64 devices.
Tested on a qemu host with `-machine virt,aia=aplic-imsic,aia-guests=4`
Change-Id: I9b369718bcb438f043e3342f1866c56fc4983304
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4460941
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|
|
We want support for #[switch] on Option<bool> in order to support
specifying several configuration files. This feature has been merged in
0.1.10.
BUG=b:218223240
TEST=cargo build
Change-Id: I4f1a2474f797907fbd180b0ebe67d87ea7920b46
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4414501
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
|
|
Remove the extra [[bin]] from Cargo.toml, as it is no longer used by the
chromeos-base/crosvm ebuild.
The "direct" feature is kept for now, since some of the functionality
behind that flag may still be useful (and should be moved to separate
features rather than "direct" eventually).
BUG=b:276993009
TEST=cargo build
TEST=tools/dev_container tools/presubmit
Change-Id: I78269d94913a216ebfb7f22ddc58d9cfdb6a6791
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4436629
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
|