Commit graph

4743 commits

Author SHA1 Message Date
Pierre-Clément Tosi
ced4bfe1db cmdline: run: Rename cmd.pvm_fw to its flag name
Make the variable clearer by renaming it to represent the information it
holds i.e. the firmware file AND the fact that the VM is unprotected.
And to avoid confusing it with cfg.pvm_fw and components.pvm_fw, which
both actually hold the protected VM firmware (resp. path and image).

Note: no functional change intended.

BUG=b:243646855
TEST=build

Change-Id: Ieabc2f05798c3a0e969348d6dbd9a87ffb3a8ad0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3867612
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-09-01 22:20:40 +00:00
Pierre-Clément Tosi
d6e88c9bf9 cmdline: Fix check for unique protection type
Return an Err when at least 2 protection flags are being used.
Previously, the error was only raised when all (3) flags were set.

BUG=none
TEST=build # then manually test the CLI

Fixes: 7910b89eb3 ("crosvm: move run command to argh")
Change-Id: I39588bf854fd659add68ac2e93a0ac6f26c8c813
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3867611
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
2022-09-01 22:20:40 +00:00
Pujun Lun
1c4620794b gpu: add resource_flush() interface.
On Windows, we don't use import_resource_to_display() + flip_to(),
but the newly added resource_flush(). This applies to both Vulkan
and D3D backend. We would need some refactoring for the GpuDisplay
interface to create a better abstraction.

BUG=b:213149288
TEST=presubmit

Change-Id: If1d3dc543a17aa7fabf591aa2c1b87b226e8a4a6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3869171
Reviewed-by: Kaiyi Li <kaiyili@google.com>
Commit-Queue: Pujun Lun <lunpujun@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Pujun Lun <lunpujun@google.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
2022-09-01 21:11:50 +00:00
recipe-roller
4c5c3095f8 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804192387914279937

depot_tools:
b415544db4
  b415544 (jojwang@chromium.org)
      Add cog/ cwd for fetch.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I166fb175166b8ef42e27aebdb9e16b38eaaf28d3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864079
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-09-01 20:59:10 +00:00
Daniel Verkamp
882363bbaf cros_asyncv2: remove pointless drop() in test
Fixes a new clippy lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop>

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I8ff384821a2b20a4fabd1afde16d2f808caae636
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854974
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-09-01 19:13:40 +00:00
Daniel Verkamp
504fad24ea argument: replace manually implemented split_once()
Fixes a new clippy lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#manual_split_once>

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I6983a4425b4c50662ff120a2439007f70b3ae913
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854973
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Tested-by: Dennis Kempin <denniskempin@google.com>
2022-09-01 19:07:01 +00:00
Daniel Verkamp
75db97cb2e crosvm: silence needless_match lint
clippy can't tell that the non-default power-monitor-powerd branch does
need the match, so it complains that we can remove it. Add it to the
pile of allowed warnings.

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: Ic8ea873e49a063f52331b6f042251161d747e586
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854972
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-09-01 19:00:40 +00:00
Daniel Verkamp
ee130b4013 devices: tweak pending wait syntax
The original syntax falls afoul of the new unit-valued let lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value>

We can work around it by using the turbofish instead to specify the
type.

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I1d7f774ed47850bcced4ee29118590a4462a52a7
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854971
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-09-01 18:58:51 +00:00
Daniel Verkamp
8dc63758e2 cros_async, hypervisor: remove unnecessary unit-valued lets
The functions being called do not have return values (they return the
unit value), so the `let _ =` does nothing and can be removed.

Fixes a new clippy lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value>

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I6003b162c36e7be1ee71e3edc4e304c86fdc5676
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854970
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-09-01 18:57:14 +00:00
Daniel Verkamp
b74d8df552 io_uring: use unsigned_abs() for isize -> usize
Fixes a new clippy lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned>

We still need the cast to u32, since the other parts of the expression are
u32.

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: Ifb6176f310f3cc7377410c251142a0f062a1ddd4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854969
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2022-09-01 18:46:40 +00:00
Daniel Verkamp
b75f65855c base: netlink: remove unused family_name_query variable
Remove the _bytes_read variable, since it is not needed. It was also
misnamed since we are writing, not reading, data.

Fixes a Rust 1.62 clippy lint:

  error: this let-binding has unit value

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I53f7b675f8e95c94ab127e500127a9153166a906
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854968
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-09-01 18:45:50 +00:00
Pierre-Clément Tosi
4a11ffc891 gdb: Upgrade gdbstub & gdbstub_arch dependencies
Bump the versions of these crates as we're about to require support for
unavailable register values and AArch64. Do it in a separate commit to
ease future bisects.

BUG=b:222222882
BUG=chromium:1141812
TEST=tools/dev_container ./tools/run_tests

Change-Id: I0bfa3559d172faf2df6bcffdc77714830f442051
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3785466
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Auto-Submit: Pierre-Clément Tosi <ptosi@google.com>
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2022-09-01 16:24:00 +00:00
Pierre-Clément Tosi
c7a49ac001 gdb: Support variable number of HW breakpoints
Make GdbStub query the number of available hardware breakpoints from the
VM as some architectures (e.g. AArch64) might permit a flexible number.

BUG=b:222222882
BUG=chromium:1141812
TEST=tools/dev_container ./tools/run_tests

Change-Id: I9220f642fc01939305bd17461eaf50c424d998bc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3785465
Auto-Submit: Pierre-Clément Tosi <ptosi@google.com>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2022-09-01 16:24:00 +00:00
Pierre-Clément Tosi
33fe685fc6 gdb: Make feature less x86_64-centric
Remove target_arch-specific #[cfg]s where the underlying code is
architecture-agnostic.

Introduce a GdbOps trait for architectures to implement.

Make use of the generic gdbstub::arch::Arch trait where relevant.

Import base::Tube unconditionally in arch/src/sys/unix.rs.

Expand crate::gdb::* in vm_control/src/lib.rs for clarity.

Keep target_arch checks in x86-specific code to exclude 32-bit builds as
those don't seem to provide GDB support.

BUG=b:222222882
BUG=chromium:1141812
TEST=tools/dev_container ./tools/run_tests

Change-Id: I3f5ceeeb9031bee222ecd388dddb815e256748e8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3785464
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Auto-Submit: Pierre-Clément Tosi <ptosi@google.com>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
2022-09-01 16:24:00 +00:00
Keiichi Watanabe
9b9c85573c devices: vhost-user: device: hander: Remove duplicated run_handler
We had the exactly same function `run_handler` in
/virtio/vhost/user/device/handler.rs and
/virtio/vhost/user/device/handler/sys/unix.rs. Since it's used only in
Unix-platform, remove the one in handler.rs.

BUG=none
TEST=build

Change-Id: I4378b201eef3eb6863d840d92e3933d35a9635e4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863045
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-09-01 15:05:40 +00:00
Keiichi Watanabe
c8e21ca15c vmm_vhost: Replace super:: with crate::
Since specifying module with absolute paths (`crate::`) is preferred over
relative path (`super::`), replace all of them except `super::*` in
`tests` modules.

BUG=none
TEST=cargo test --all-features in vmm_vhost

Change-Id: I90d4906c02505395358c8722bcbb7d0bb3024733
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863044
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2022-09-01 15:05:40 +00:00
Keiichi Watanabe
53e745078a vmm_vhost: Enable health-check for third_party/vmm_vhost
Make tools/health-check cover third_party/vmm_vhost, as we are
maintaining vmm_vhost by ourselves and we don't pull the upstream
changes so frequently unlike other third_party components.

This CL includes:
* updates in scripts under /tools, and
* the auto-gerated changes by `./tools/fmt --nightly`

BUG=b:239937122
TEST=cargo check

Change-Id: I12956a60bb24764ffb541261c7fb3f09eb974dd8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863043
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Auto-Submit: Keiichi Watanabe <keiichiw@chromium.org>
2022-09-01 15:05:31 +00:00
Pierre-Clément Tosi
8c4df298c8 hypervisor: kvm: aarch64: KvmVcpuRegister: Support any kvm_regs
Turn KvmVcpuRegister into an enum that supports any kvm_regs entry (not
just kvm_regs::regs i.e. user_pt_regs).

Improve the abstraction provided by KvmVcpuRegister through the 2-step
conversion "VcpuRegAArch64 -> KvmVcpuRegister -> u8", which allows more
flexibility when KVM doesn't provide 1-to-1 mappings (CCISDR, SVE, ...)
and when other types (e.g. gdbstub) need to be mapped to KVM_SET_ONE_REG
values.

Introduce the firmware pseudo-register type as a KvmVcpuRegister variant
and use it for KVM_ARM_PSCI_VERSION.

BUG=b:222222882
BUG=chromium:1141812
TEST=tools/dev_container ./tools/run_tests

Change-Id: Id11c427fc48f4b6bef9df607eeb73928aa7f5da7
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3785463
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Auto-Submit: Pierre-Clément Tosi <ptosi@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Pierre-Clément Tosi <ptosi@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2022-09-01 14:16:59 +00:00
Christian Blichmann
8847de2725 qcow: Turn QCOW support into a feature
This change allows to turn off support for QCOW. This is useful for
projects that do not need/want it.

A follow-up change (if this one is merged) will do the same for Android
sparse disk images.

BUG=none
TEST=./tools/presubmit

Change-Id: I69083c4c2e21d504db89eff47f4c86c6f61d67e9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864926
Tested-by: Christian Blichmann <cblichmann@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Christian Blichmann <cblichmann@google.com>
2022-09-01 08:13:29 +00:00
Christian Blichmann
9dc9210d3d crosvm_control: Also create a static lib
This is useful for projects that build in lock-step with crosvm and want
to control a VM without having to `dlopen()` or embed
`libcrosvm_control.so`.

TEST=./tools/presubmit --quick
BUG=none

Change-Id: I9407c3e1783f55e399358bdf291a999ee8dc8892
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864925
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Christian Blichmann <cblichmann@google.com>
Tested-by: Christian Blichmann <cblichmann@google.com>
2022-09-01 07:33:29 +00:00
recipe-roller
05246b107c Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools, recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804247125118300625

depot_tools:
5084800dc3
  5084800 (sokcevic@google.com)
      Fix flaky testPreDepsHooks test

recipe_engine:
4e6762a8d3
  4e6762a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 28997a29e35b to f9c708a28b46

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I453db7d0a5dfccabd4ba7ed8148dc3fd3202b185
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3865084
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-09-01 06:26:19 +00:00
Tatsuyuki Ishi
325e9f5bca media: ffmpeg: Add a builder for decoding AvCodecContext.
Creating a context frequently involves optional parameters, and the
builder pattern handles this more descriptively, especially in the case
of an encoder context.

Encoder support is coming in a later commit, but it's a good idea to
align the decoder to use the builder pattern to ensure a consistent way
of doing things.

BUG=b:239897269
TEST=cargo test --features "video-decoder,ffmpeg" -p devices video

Change-Id: I92bd5f72b638c13a3257d54238b1beb229c64fa0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3856042
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-09-01 03:21:20 +00:00
Tatsuyuki Ishi
61d72266e4 media: ffmpeg: Take AvBuffer directly in AvPacket::new_owned.
With more types going to support AvPacket in the future, it's probably
more maintainable to separate the construction of AvBuffer from the
consumer types.

The borrowing constructor will still take AvBufferSource generically as
it doesn't have a buffer object to construct.

As AvBuffer is directly used in the interface now, make its definition
and methods public.

BUG=None
TEST=cargo test --features "video-decoder,ffmpeg" -p ffmpeg -p video

Change-Id: I0959d383438a94d562fc6ff34c40389e98be7bfd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3833772
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-09-01 03:13:29 +00:00
recipe-roller
55430d2687 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804271657840471793

depot_tools:
228fedfaad
  228fedf (sokcevic@google.com)
      Update diff_deps receipe to py3

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I73574c9da2c58526f80342c88fd4747195ba4246
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864876
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-31 23:59:39 +00:00
Frederick Mayle
96d8e77926 base: dedup EventReadResult
TEST=cargo build
BUG=b:231344063

Change-Id: I461d5dda013fe69322ef51144d7a28824a607553
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863923
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Auto-Submit: Frederick Mayle <fmayle@google.com>
Commit-Queue: Frederick Mayle <fmayle@google.com>
Tested-by: Frederick Mayle <fmayle@google.com>
2022-08-31 21:29:08 +00:00
Daniel Verkamp
015ee4eaf5 cmdline: propagate --vhost-user-fs option to Config
The fs device option was parsed but did not get copied into Config, so
we never attempted to create any vhost user fs devices.

BUG=b:244454265
TEST=crosvm run --vhost-user-fs ...

Change-Id: Ia3ed49681a5da2190325f9b59e4a61884509cb20
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3867534
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-31 20:32:48 +00:00
Idan Raiter
5419f1907b vmm_vhost: make shared memory protection flags cross-platform
The existing flags assume unix libc read = 1, write = 2. On Windows we
have read = 4, write = 2. We can implement the conversion between
base::Protection and VhostUserShmemMapMsgFlags to keep the protocol
itself separate from the platform flags.

BUG=b:221882601
TEST=presubmit & tested downstream

Change-Id: I6fe69df679926b240f7d02dfbbf0704bbca5a5b0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3860646
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Idan Raiter <idanr@google.com>
Tested-by: Idan Raiter <idanr@google.com>
2022-08-31 19:06:48 +00:00
Gurchetan Singh
710b3c9082 rutabaga_gfx: add stream_renderer_vulkan_info
The exact internals of the API may change though.  For example,
using a device UUID is a less error-prone than using physical
device index.

However, this is sufficient to get gfxstream external memory on
atleast some platforms.

BUG=b:235485545
TEST=compile and run ./deqp-vk with kFeature_ExternalBlob enabled

Change-Id: I10d2aaecfbcd61f383dd326184e60942755db196
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864029
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Idan Raiter <idanr@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
2022-08-31 18:03:28 +00:00
Daniel Verkamp
583e650455 disk: add AsyncDiskFileWrapper
As a stepping stone toward fully asynchronous disk formats, add a
wrapper that takes a regular synchronous DiskFile and provides the
async disk API.

BUG=b:219595052
TEST=cargo build --features=composite-disk

Change-Id: Id785ad7ff69ae869a8a9007134fdb4fe7f3be4ba
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3824066
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
2022-08-31 17:36:10 +00:00
Tatsuyuki Ishi
7fcbd8e9e1 media: ffmpeg: Add 'static bounds to AvBuffer::new.
The previous signature allowed lifetime laundering if code like below
was used:

impl<'a> AvBufferSource for &'a mut [u8] { ... }

fn foo() {
    let mut storage = vec![];
    let buf = AvBuffer::new(storage.deref_mut());
    drop(storage);
    // buf can be used after free
}

Add a 'static bound to prevent it.

BUG=None
TEST=cargo build --release --features "video-decoder,ffmpeg" -p devices

Change-Id: Ifda2793a3e3d4d8b400fa076f1d6f9474d0ae159
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3833771
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-08-31 05:42:58 +00:00
Chia-I Wu
39ad7ce5d6 seccomp: allow setpriority on arm/aarch64 for gpu
It is called by Mesa's u_trace.

BUG=b:243028790
TEST=enable renderstage tracing with perfetto

Change-Id: Id0e43e0e08b60a48b5d6bf6f887510152d9ba133
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863855
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Chia-I Wu <olv@google.com>
Tested-by: Chia-I Wu <olv@google.com>
2022-08-31 00:39:48 +00:00
Daniel Verkamp
209151ebea vmm_vhost: eliminate unnecessary collect() into a Vec
The `buf_lens` vector was created only to be destroyed in the next line.
Just use `sum()` on the buf iterator.

BUG=None
TEST=tools/presubmit --all

Change-Id: Iddfa4f783b6eda326b9dbb9c6a1f443b7976ca2c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3858688
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-30 21:59:15 +00:00
recipe-roller
5861d0be5d Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804370436467868721

depot_tools:
8d2f774038~..b0fb8d570df94ed4e457adaa827d1ce9b51ade00
  8d2f774 (sokcevic@google.com)
      Use py3 in documentation generation
  b0fb8d5 (tperrotta@chromium.org)
      Introduce --send-email flag as an alias to --send-mail for `git...

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ie2c5c2b7f10be8245fa5973a2e721e397119088a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3866690
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-30 21:57:48 +00:00
Renato Pereyra
08dc240b7e crosvm: Add the new MESA_SHADER_CACHE* env var names
(Previous names deprecated in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15390)

BUG=None
TEST=None

Change-Id: I5e5180da5c60ca33c57768d90db0a21aec07f14a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3786929
Reviewed-by: David Riley <davidriley@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Renato Pereyra <renatopereyra@google.com>
Tested-by: Renato Pereyra <renatopereyra@google.com>
Commit-Queue: Renato Pereyra <renatopereyra@google.com>
2022-08-30 19:47:48 +00:00
Victor Ding
8d72733baf aml: Use the shortest form possible to generate integers
Values 0 and 1 can be represented with one-byte binaries.

BUG=None
TEST=./tools/presubmit

Change-Id: If5d61c598087118858a6b57799ab1b90ad729f70
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3859217
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Victor Ding <victording@chromium.org>
Tested-by: Victor Ding <victording@chromium.org>
2022-08-30 18:08:58 +00:00
Dmytro Maluka
eeb11115a8 acpi: Remove netlink based propagation of GPE events
Currently both direct and non-direct GPEs are unconditionally forwarded
to the guest, just in different ways. This is wrong not only because we
don't necessarily want to propagate the given non-direct GPE to the
guest, but also because non-direct GPEs are forwarded without preventing
handling them in the host, so that a GPE handler is run twice: in the
host and in the guest. This behavior doesn't seem to make sense and is
generally buggy.

The idea of this patch is that acpi device code should forward direct
GPEs only, and for non-direct GPEs it should just notify the registered
gpe_notify listeners, if any. Those listeners may then inject the given
GPE to the guest or do something else, depending on the purpose of the
given GPE.

This patch doesn't change any behavior for direct GPEs, so currently it
doesn't affect ManaTEE, since currently all 4 GPEs on Brya/Volteer are
used as direct GPEs. However in the future we may use non-direct GPEs
e.g. for a cleaner solution for handling Thunderbolt hotplug GPE.

BUG=b:230592368
TEST=Inspect /sys/firmware/acpi/interrupts/ to see if GPE events (EC,
Thunderbolt etc) work correctly in ManaTEE. No specific test for
non-direct GPEs, since we don't use them.

Change-Id: I4c9b59c217ce347cfe06decf25694cbf6c4170f4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3861973
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dmytro Maluka <dmaluka@google.com>
Tested-by: Dmytro Maluka <dmaluka@google.com>
2022-08-30 08:44:17 +00:00
Dmytro Maluka
425c618676 acpi: Remove netlink based propagation of power button events
It is wrong to unconditionally propagate ACPI power button events in the
host to the guest, since some guests (e.g. ARCVM) don't expect them and
misbehave when such an event is received. If at all, this propagation
should be enabled only in crosvm builds with "direct" feature enabled,
i.e. crosvm-direct builds for ManaTEE.

Moreover, even for ManaTEE, the correct approach is to propagate them
via direct forwarding of physical ACPI events, rather than via listening
on ACPI netlink events in the host (in particular because we want them
to be handled in the guest only, not in the host).

Since CL:3645408 and CL:3599200 we are using direct forwarding of ACPI
power button events, so the netlink based forwarding in the ACPI event
listener is no more used by anyone and can be removed.

BUG=b:241191471, b:230592368
TEST=ACPI power button events are not propagated to ARCVM guest.

Change-Id: I2541bf900d51507dc246b46fb6691dfa0b1c2956
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3859626
Tested-by: Dmytro Maluka <dmaluka@google.com>
Reviewed-by: Grzegorz Jaszczyk <jaz@semihalf.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dmytro Maluka <dmaluka@google.com>
2022-08-30 08:34:07 +00:00
Dmytro Maluka
4e871b389b acpi: Fix misleading "unknown acpi event" warnings
It's not a problem if some ACPI events generated in the host are
ignored by crosvm ACPI event listener.

BUG=None
TEST=No "unknown acpi event battery" warnings in ARCVM and Crostini

Change-Id: I4961b4637fa79cbebc0b2e2afc86ad8da598f8fd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3859625
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Dmytro Maluka <dmaluka@google.com>
Reviewed-by: Grzegorz Jaszczyk <jaz@semihalf.com>
Commit-Queue: Dmytro Maluka <dmaluka@google.com>
2022-08-30 08:32:58 +00:00
recipe-roller
b5e7fd57b0 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804422653812368593

depot_tools:
3528d4d3c5
  3528d4d (jwata@google.com)
      Update goma client

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I06289e3bc271c5dd4d742bc7c46024b693cda1d1
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3863795
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-30 07:57:47 +00:00
recipe-roller
e7e5d24985 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804457259998472833

depot_tools:
f41670fdad
  f41670f (gbeaty@chromium.org)
      Add a presubmit check to enforce that code is formatted.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iff0ec458a12a1e7e5794fcacf1fcb75562d9b52c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864027
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-29 22:50:00 +00:00
recipe-roller
a3082728cc Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804459776335373073

depot_tools:
bbb66d7980
  bbb66d7 (jojwang@chromium.org)
      Add cog/ cwd.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I2f657b78f94f03d0bc727e46679e364fb3b735c5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3864023
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-29 22:07:42 +00:00
Daniel Verkamp
aa1fd0e78e devices: register_space: use $crate inside macros
Using $crate ensures the macro always refers to its own crate rather
than the one where it is being evaluated.

Fixes a new clippy lint:
<https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def>

BUG=b:243677117
TEST=tools/clippy # with Rust 1.62

Change-Id: I4e3499f69b1b3040dcd112438b2e0586611389ae
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3854967
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-29 19:44:00 +00:00
Shao-Chuan Lee
fef9ce2bef Revert "virtio: video: decoder: reset session when input queue is cleared"
This reverts commit 5cdeb2a8b3.

Reason for revert: broke xTS decoder tests b/244113170

Original change's description:
> virtio: video: decoder: reset session when input queue is cleared
>
> Clearing the input queue means a reset of all parameters, so reset the
> session when it happens. This allows the guest to change input
> parameters after a reset.
>
> BUG=b:161774071
> TEST=ffmpeg in the guest does not complain that "parameter for input cannot be changed once decoding started" upon exit.
> TEST=tast arc.VideoDecodeAccel*_vm passes on hatch.
>
> Change-Id: I2e25ddc01d99cb9ce39f0dbf9bbb9413084dba19
> Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3841482
> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
> Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
> Tested-by: Alexandre Courbot <acourbot@chromium.org>

BUG=b:161774071
BUG=b:244113170
TEST=CtsMediaTestCases android.media.cts.DecoderTest#testCodecResetsH264WithSurface

Change-Id: I532e72c6abb49677fd20e755c7369a361e821bdb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3859215
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-08-29 10:12:13 +00:00
Christian Blichmann
ab3e298e4e base: Simplify sched.rs a bit
Behavior should be exactly the same.
- Use `CpuSet::new()` directly instead of duplicating its code
- Use the `syscall!()` macro for error handling

TEST=./tools/presubmit
BUG=None

Change-Id: I371e9a113914db7ffdecbf4bf8770be157368569
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3858174
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Auto-Submit: Christian Blichmann <cblichmann@google.com>
Reviewed-by: Christian Blichmann <cblichmann@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-08-29 08:42:19 +00:00
Alexandre Courbot
8b75feb12f serde_keyvalue: more natural signed number parsing
Support parsing negative numbers with a specified radix as e.g.
`-0xff00` instead of `0x-ff00`.  This is a potentially breaking change
but I don't believe anyone made use of the former syntax anyway.

The new number parser has the nice side-effect of removing some extra
code, and also signaling parsing errors more accurately, so that's an
added bonus. On the other hand we lose the distinction between "invalid
number" and "expected number", but that distinction was dubious anyway
so losing it is for the better IMHO.

BUG=b:218223240
TEST=cargo test -p serde_keyvalue

Change-Id: I6b2943ecd0df92071afe0682b339dcf5b59e2826
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3853315
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-08-27 03:27:48 +00:00
Gurchetan Singh
7f5c54392a rutabaga_gfx: update Vulkano to match ToT
- Instance creation requires VulkanLibrary type
- UnsafeImage --> Arc<UnsafeImage>

BUG=b:173630595
TEST=cargo test --features=vulkano

Change-Id: Ie64d06fe0f20d63a19c94ae9fe6c904e83508178
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3858687
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-26 20:57:17 +00:00
Tomasz Nowicki
7a6049d0d7 x86_64: Generate ACPI content for Virtio MMIO device
Virtio MMIO device needs only one MMIO region and one edge-triggered
IRQ. Both based MMIO address and IRQ number are allocated dynamically.

BUG=b:189182339
TEST=boot manatee and verify that Virtio PCI devices work properly

Change-Id: Icdd6213068ef05c5a71e23728e2a4e1d69ac454b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3855009
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
Tested-by: Tomasz Nowicki <tnowicki@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-26 15:39:02 +00:00
Tomasz Nowicki
7f2b6b4b5a x86_64: Wire up Virtio MMIO-based devices to the main MMIO bus
Lookup Vitio MMIO devices and allocate resources:
- hardcoded 0x200 size single MMIO region to configure vrings
- just one shared and edge-triggered IRQ to notify guest
- per-queue ioevents to poke host
Then plug device into main bus.

BUG=b:189182339
TEST=boot manatee and verify that Virtio PCI devices work properly

Change-Id: Ic255b2c9cdf1cb43b8663d39970daf54e55c6eed
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3855008
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Tomasz Nowicki <tnowicki@google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
2022-08-26 14:27:27 +00:00
recipe-roller
562e2e6940 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8804764279623381921

recipe_engine:
a6f21e9dfe
  a6f21e9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from b85c4e34cc95 to 3226112a79a7

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I18a1e9af4e50f341948e2934ba819fbfbe377eae
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3857714
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-08-26 13:30:17 +00:00
Tomasz Nowicki
0de3bd9f50 crosvm: unix: Allow to instantiate Virtio MMIO-based devices
As an alternative to PCI transport, instantiate Virtio MMIO device.
The caller which create Virtio device (and corresponding VirtioDeviceStub)
needs to mark device as MMIO type explicitly, otherwise PCI transport is
the default choice.

BUG=b:189182339
TEST=boot manatee and verify that Virtio PCI devices work properly

Change-Id: Id28345f5b004ebd0d8cfeb9ecd2966c3b821a4ea
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3855007
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Tomasz Nowicki <tnowicki@google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
2022-08-26 12:22:31 +00:00