Commit graph

4495 commits

Author SHA1 Message Date
Dennis Kempin
abcfc67d8b Add python configs for consistency between IDE and CI
Also adds settings to .vscode/settings.json to use the correct
formatter and type checking settings out of the box.

VSCode uses pyright and health-check uses mypy. They do not always
agree unfortunately, mypy  is a little more lenient.
Unfortunately pyright is hard to get working with our scripts that
have no file extension.

BUG=b:242605601
TEST=./tools/health-check

Change-Id: Iaef4ac6f61613e7dda409d5e717102ea9adefe82
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3833699
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Tested-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-16 18:33:23 +00:00
Keiichi Watanabe
c89cf4b332 infra: Add README about /config
BUG=none
TEST=./tools/fmt

Change-Id: Icafcb0a9fd5f84ea9d5f18e962f02046ed4ff46e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3802636
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2022-08-16 14:23:53 +00:00
Alexandre Courbot
199e3bf435 crosvm: devices: document serial option properly
Repeat the help text present in the run command. The duplication is
unfortunate but there doesn't seem to be a better way to handle this
with argh at the moment.

BUG=b:217480043
TEST=cargo build

Change-Id: I36bc2ff030f161f4c4ea3572fb31525cc8435cfd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827607
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
2022-08-16 09:17:35 +00:00
Alexandre Courbot
2182db8b32 crosvm: devices: validate serial parameters
Make sure the serial parameters are properly validated when given to the
"devices" command as they are with the "run" command.

BUG=b:217480043
TEST=cargo build

Change-Id: Id582165819d1f3dc830cf1cf6c8b74cd688a76e2
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827606
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-08-16 09:14:23 +00:00
David Stevens
4e7d00be2e vhost: mask out vhost IOTLB flag
Add proper handling for VIRTIO_F_ACCESS_PLATFORM with vhost devices. In
particular, the virtio flag can't be passed directly to vhost. If the
flag is set because of viommu translation, then the vhost IOTLB APIs
need to be used to propagate that information to the vhost driver. Since
crosvm doesn't implement this, fail in that case. If the flag is set for
other reasons (e.g. the guest bounces DMA through a DMA region, but
still uses raw GPAs), then don't enable IOTLB translation within vhost.

This is part of a deeper problem where crosvm assumes that virtio flags
are equivalent to vhost flags. While this is usually true, crosvm cannot
assume that arbitrary feature flags can be handled automatically by
vhost. Crosvm really needs to have allowlist based flag handling.

BUG=b:241034776
TEST=atest MicrodroidTestApp

Change-Id: Ifa1cd432889ff64be836371e40f37b89cab3b640
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827609
Tested-by: Andrew Scull <ascull@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
Reviewed-by: Andrew Scull <ascull@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-08-16 06:52:23 +00:00
Norman Bintang
7f3335f842 devices: snd: Fix cras_parameters_from_str test
SndParameter deserialization has been changed to use serde. The current
test for cras related parameter is using parse from string. It causes
compile error because some FromStr method has been removed. It needs
to be changed to use serde_keyvalue::from_key_value

BUG=b:242131810
TEST=add chromeos as a feature in src_test crosvm-9999.ebuild
TEST=FEATURE=test emerge crosvm

Change-Id: I5552b0f141debacaa30a93754f510bbf8ac621b5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827109
Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
Tested-by: Norman Bintang <normanbt@chromium.org>
Commit-Queue: Norman Bintang <normanbt@chromium.org>
2022-08-16 04:03:03 +00:00
Takaya Saeki
97eb036422 cros_async: fix doc test failing
`cargo test -p cros_async --doc` is failing with FdExecutor since the
example tries to seek a pipe. With UringExecutor, this error doesn't
happen by chance due to the difference in the implementation detail. So,
you need kernels prior to 5.10 to reproduce this issue.

This commit fixes the failure by not seeking a pipe.

BUG=b:242515595
FIXED=b:242515595
TEST=cargo test -p cros_async --doc succeeds.

Change-Id: Ifa97eb85d3b72061f1754e22108017df327c85d9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3831841
Tested-by: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Takaya Saeki <takayas@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-16 02:09:32 +00:00
Mike Gerow
e47a4ca725 devices: pflash: don't set status on each read
QEMU's probe of the pflash device[1] expects to be able to clear the status
register, perform a read of the same location, and then read the status
register with the cleared state. To accomplish this only set the READY
status on an explicit READ_ARRAY command.

[1]: https://github.com/tianocore/edk2/blob/master/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c

BUG=b:238344840
TEST=Added test for specific case

Change-Id: I81b326d4a546bb03fb55b766b630153ffbc758c5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3831261
Tested-by: Mike Gerow <gerow@google.com>
Auto-Submit: Mike Gerow <gerow@google.com>
Commit-Queue: Mike Gerow <gerow@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-16 00:31:22 +00:00
Clarissa Garvey
926d0063d8 base/src: Migrate Unix Tube to use StreamChannel
This CL migrates Tube from directly using a UnixSeqpacket to instead use
a StreamChannel backed by UnixSeqpackets. This CL also migrates users of
the old Tube::new(UnixSeqpacket) function to its renamed counterpart.
Tests are added for new functionality.

This CL enforces that the StreamChannel used by the Tube is backed by a
UnixSeqpacket because the reading and writing behavior of a UnixStream
is different, and it cannot guarantee the same multi-process
concurrent-writers behavior that a UnixSeqpacket can. This is because
the UnixStream does not send data as packets and the size cannot be
queried, so two underlyig writes are required for each Tube write: one
to send a header indicating message size, and one for the actual content
of the sent data. These can be interleaved during concurrent writes,
causing corruption of the Tube's data.

This CL makes the Windows and Unix API closer to each other, with some
differences remaining or added, including Tube::new_from_unix_seqpacket
existing in Unix but necessarily not Windows.

This migration (Tube from UnixSeqpacket to Stream) is intended to move
the Unix Tube API closer to the Windows API, with the eventual goal of
creating a platform-agnostic API for Tube.

Bug: b:231641496
Change-Id: I2422e76b7efa5a20bc40a8d194f5f8390dc71438
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3818253
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Tested-by: Clarissa Garvey <clarissagarvey@chromium.org>
Commit-Queue: Clarissa Garvey <clarissagarvey@chromium.org>
2022-08-15 23:15:12 +00:00
Clarissa Garvey
92acafb14c base/src: Prepare Unix StreamChannel for Tube use
This CL is one of two CLs in a series that migrate the Unix Tube from
using UnixSeqpackets directly to instead use StreamChannels backed by
UnixSeqpackets. This CL adds some pass-through functions to
StreamChannel that are needed by Tube in the follow-up CL, as well as
a new function to create a StreamChannel directly from a UnixSeqpacket.
Additionally, a test is added for the new constructor-like function.

This migration (Tube from UnixSeqpacket to Stream) is intended to move
the Unix Tube API closer to the Windows API, with the eventual goal of
creating a platform-agnostic API for Tube.

Bug: b:231641496
Change-Id: I8d7da6a0e64d38d8f9833ae8e62ec7a2c4cfda5c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3818249
Tested-by: Clarissa Garvey <clarissagarvey@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
2022-08-15 23:15:12 +00:00
Gurchetan Singh
c345f378bb crosvm: fix build with gfxstream on Unix
Fixes:

error[E0433]: failed to resolve: use of undeclared type `GpuMode`
   --> src/crosvm/sys/unix/config.rs:191:62
    |
191 |         if gpu_params.vulkan.is_none() && gpu_params.mode == GpuMode::ModeGfxstream {
    |                                                              ^^^^^^^ use of undeclared type `GpuMode`

error[E0433]: failed to resolve: use of undeclared type `GpuMode`
   --> src/crosvm/sys/unix/config.rs:197:17
    |
197 |                 GpuMode::ModeGfxstream => {}
    |                 ^^^^^^^ use of undeclared type `GpuMode`

error[E0609]: no field `vulkan` on type `GpuParameters`
   --> src/crosvm/sys/unix/config.rs:191:23
    |
191 |         if gpu_params.vulkan.is_none() && gpu_params.mode == GpuMode::ModeGfxstream {
    |                       ^^^^^^ unknown field

BUG=b:239639751
TEST=cargo build --features=gfxstream

Change-Id: I1840ab0a5aca792595fcb3cbbc7406f80740873c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3832397
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2022-08-15 21:12:12 +00:00
Mike Gerow
12a1fcddc7 devices: debugcon: add docs and switch def port to 0x402
0x402 is the port OVMF expects to use, and is the most likely we'll end
up using.

TEST=deployed to hatch device, ensured default port allowed OVMF to
print debug logs
BUG=b:239706232

Change-Id: I607a3a042e3f066a3372c0307b1f5bbf6c20258d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3829848
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Mike Gerow <gerow@google.com>
Auto-Submit: Mike Gerow <gerow@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-08-15 20:19:12 +00:00
Dennis Kempin
84f0f4f068 tools/health-check: Remove legacy checks used by Luci
Since luci recipes are updated asynchronously, we had to keep
the old check names around. Now that all builders are updated,
we can remove it.

BUG=b:239255137
TEST=CQ

Change-Id: I0550912d466045e12da1717cdb96346de9474ab7
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3831283
Tested-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-08-15 19:48:02 +00:00
Dennis Kempin
29dce9b14c Add Cargo.lock check to tools/health-check
The check will verify that the Cargo.lock file is current. This
catches issues where conflicting changes would leave ToT with
an outdated lockfile.

BUG=b:240435583
TEST=./tools/health-check lockfiles

Change-Id: Idd92fe58d3b76f62582848673cbfdd18698ac3e8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3811202
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Tested-by: Dennis Kempin <denniskempin@google.com>
2022-08-15 19:38:44 +00:00
Dennis Kempin
3ec91c4653 Add Cargo.lock files to version control again
We originally removed it because we had frequent merge conflicts
and all downstream projects were doing their own pinning already.
We also had CI issues because ChromeOS changes could trigger
Cargo.lock changes in crosvm back then.

The new Cargo.lock format should ease the merge conflicts and we
no longer have issues with external changes triggering changes
in our Cargo.lock. So let's bring it back in.

This will allow us to judge the impact of changing third party
dependencies and gives us a chance to implement a special
review process.

BUG=b:240435583
TEST=CQ

Change-Id: Ie53e5616cc98d7e50a84f3c0a91902dd539f2520
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3795655
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Tested-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-08-15 19:38:44 +00:00
Dennis Kempin
9ecd15f4a5 infra: Disable coverage collection on armhf
The armhf rustc is not compiled with profiling enabled.
See https://github.com/rust-lang/rust/issues/79640

BUG=b:239255082
TEST=lucicfg validate

Change-Id: I65f66e1119f9560aea72fd00d8cc3427c1161525
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3831286
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Dennis Kempin <denniskempin@google.com>
2022-08-15 19:38:42 +00:00
Victor Ding
076476eb5e x86_64: Fix incorrect _OSC in DSDT
The auto-generated _OSC in DSDT is incorrect, fixing it.

BUG=None
TEST=Dump DSDT table and verify the generated _OSC

Change-Id: Ib6c5c355a7b6ebb6c891b8f3c685e59d4117abad
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3831821
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Victor Ding <victording@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-08-15 19:34:12 +00:00
Dennis Kempin
a2b14f7061 infra: Use new health check script
The updated recipe will use --list-checks to iterate a list of
checks to run. Each check will be run separately and create a separate
luci step.

BUG=239255137
TEST=led get-builder luci.crosvm.try:health_check
  | led edit-recipe-bundle
  | led edit-cr-cl https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3830246
  | led launch

https://ci.chromium.org/swarming/task/5cacfaf0ecf10010

Change-Id: Ia67bfa8a2da9ec337174a6a9e686c72f43e84ebf
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3830246
Tested-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-08-15 18:52:02 +00:00
Dennis Kempin
92f804e3f8 tools/health-check: Revamp script to run on git delta only
The updated health-check will by default only run on modified
files. If you do not make changes to python code, python checks
won't run, etc.

The script also simplifies the writing of those checks so we can
start adding more of them.

Luci will be updated to make use of the --list-checks function to
run each check in a separate luci step. In the meantime, we
keep a compatibility layer to translate the old arguments
to the new style.

BUG=b:239255137
TEST=./tools/health-check in all it's variations

Change-Id: I21b986b46c7cfccf3d13f4c76bbd3d0ec7240c26
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827174
Tested-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-08-15 18:52:02 +00:00
Dennis Kempin
a0a1820f41 Revert "infra: Disable coverage collection"
This reverts commit 0654af7d81.

Reason for revert: coverage collection is now working on aarch64

TEST=https://ci.chromium.org/swarming/task/5cad1b7c7d1e5110

Original change's description:
> infra: Disable coverage collection
>
> It is failing on aarch64/armhf
>
> BUG=b:239255082
> TEST=lucicfg validate
>
> Change-Id: I459d05b33cf1de66e72d399dd024e27933428f65
> Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3820343
> Tested-by: Dennis Kempin <denniskempin@google.com>
> Commit-Queue: Dennis Kempin <denniskempin@google.com>
> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
> Auto-Submit: Dennis Kempin <denniskempin@google.com>
> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>

Bug: b:239255082
Change-Id: I90d430dbe3febe9be7919c21c092d1a5dae58730
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3830227
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-08-15 18:49:06 +00:00
Keiichi Watanabe
9c064d636b devices: vhost-user: blk: Support multiple queues
Allow vhost-user block to use multiple virtqueues (max: 16).

Note that not all of 16 vqs that crosvm prepared will always be used by the
guest. In the current Linux implementation, the number of vqs are
bounded to min(16, |# of sibling VM's vcpus|)  because of a kernel
commit:
"bf348f9: virtio-blk: limit number of hw queues by nr_cpu_ids".

BUG=b:181753022
TEST=Run vhost-user block with 2 vcpus and checked the numbers of vqs
TEST=Run vvu block device with 2 vcpus and checked the numbers of vqs

Change-Id: Ibdb091261abea924ebcbcec98ce54bb3fac2f4bb
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3826604
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-08-15 12:22:16 +00:00
Takaya Saeki
d0676292e5 devices: virtio: video: extract some device codes to functions
Extract the part of building the virtio video config and the backend
device to standalone functions so that other modules such as vhost-user
video backend can use them.

BUG=None
TEST=simple_decoder test script (see the crosvm book)
worked with both the virtio video and the vhost-user video, but with
URingExecutor disabled (b/238965061).

Change-Id: Iaf6926e81fa67f0048058f1178106b5cc0a5a7bf
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3800843
Commit-Queue: Takaya Saeki <takayas@chromium.org>
Tested-by: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-08-15 10:23:48 +00:00
Norman Bintang
e88e6ba209 devices: snd: Use serde for Params deserialization
Change current manual Virtio Snd Parameters deserialization to use serde.

BUG=b:242131810
TEST=emerge crosvm
TEST=tast run vm.AudioAplay

Change-Id: I00a9eab78f23ede98f69c12fb9ac4316d2dba3ad
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3823192
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
Tested-by: Norman Bintang <normanbt@chromium.org>
Commit-Queue: Norman Bintang <normanbt@chromium.org>
2022-08-15 09:24:46 +00:00
David Stevens
88e0828aa3 vm_control: skip VfioDmabufUnmap when possible
Add tracking to VmMemoryRequest.execute so that only requests which were
mapped with VfioDmabufMap get unmapped with VfioDmabufUnmap. This fixes
a deadlock that occurs when unregistering memory before the viommu
device is started, which is triggered by VfioPciDevice on ManaTEE.

Note that although a deadlock with registering memory is still possible,
this doesn't seem to be a problem in practice. Registration of such
buffers is driven by the virtio-gpu driver, and thus tends to occur
later during guest boot.

BUG=b:235508487
TEST=boot brya-manatee

Change-Id: I080d27b43d01a01b7d962b62c986d837be72b288
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3830133
Tested-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Auto-Submit: David Stevens <stevensd@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2022-08-15 05:50:15 +00:00
Dennis Kempin
0a826cc508 run_tests: Enable profile collection from remote tests
Write profiles to a temp file and download them afterwards.

BUG=b:239255082
TEST=./tools/run_tests --target=vm:aarch64 --generate-lcov=aarch64.lcov

Change-Id: I1c81dd72aadca4cad3310347d94596d45a0e0ede
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3821463
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Tested-by: Dennis Kempin <denniskempin@google.com>
2022-08-12 22:58:56 +00:00
Dennis Kempin
fc5e998d73 infra: Remove build_coverage recipe
Coverage has been integrated into build_linux.

BUG=b:239255082
TEST=None

Change-Id: I3b6229c2b44b73bb24748e667fd1b334dcfe418c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3820349
Tested-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-08-12 22:58:56 +00:00
Pujun Lun
64880d13dc gpu_display: switch from UnixStream to StreamChannel.
Prefer the platform agnostic interface StreamChannel.

BUG=b:213150276
TEST=presubmit

Change-Id: I68e9b943cd18ec07ee06876c6f07a00e67b1ec9b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3829714
Tested-by: Pujun Lun <lunpujun@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Pujun Lun <lunpujun@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-12 20:55:34 +00:00
recipe-roller
433230b01b 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/8806004956014883697

depot_tools:
268d645853
  268d645 (yuanjunh@google.com)
      [depot_tools] roll bb

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: I4931d08d063e383c604610e32cf7bb4c5f21ae81
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3829722
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-12 20:47:20 +00:00
recipe-roller
8300b3a614 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/8806009359814632961

depot_tools:
8d78bd1fc1
  8d78bd1 (brucedawson@chromium.org)
      Print which PRESUBMIT.py scripts run on Python 2

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: I0f5dfad3ffaa8b57b83e013c6039795696c1570c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3829718
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-12 19:38:35 +00:00
recipe-roller
0e4c5a2f64 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/8806009988719089953

depot_tools:
a358defc3f
  a358def (brucedawson@chromium.org)
      Revert "Update autoninja.bat to work with other shells."

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: I0db9c5e8c15a45ec3a5efa95cce222b84a6ea8e0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3829717
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-12 19:24:43 +00:00
Alexandre Courbot
b5e861fc69 crosvm: rename DevicesSubcommand to DeviceSubcommand
DevicesSubcommand was for the `device` command, so rename it to avoid
confusion with the `devices` one.

BUG=b:217480043
TEST=cargo build

Change-Id: I4c321ff61a71d0ca731b23951d583beb9ce5d46c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3827603
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Auto-Submit: Alexandre Courbot <acourbot@chromium.org>
2022-08-12 18:05:03 +00:00
Tatsuyuki Ishi
96e98ef882 media: ffmpeg: Remove AsMut from AvFrame.
This is actually highly unsound since it allows you to write arbitrary
garbage to the buffer pointer fields.

BUG=None
TEST=cargo test -p ffmpeg &&
     cargo test --features "video-decoder,ffmpeg" -p devices video
     + v4l2r test from crosvm book

Change-Id: I77bd32b856afef8538791a99829f7248cd77787e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3822433
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-08-12 04:48:35 +00:00
Tatsuyuki Ishi
894b15044d media: ffmpeg: Add AvError::result to convert simple return codes.
We're going to use this pattern more in future CLs, so factor it out to
a helper.

BUG=None
TEST=cargo test -p ffmpeg &&
     cargo test --features "video-decoder,ffmpeg" -p devices video
     + v4l2r test from crosvm book

Change-Id: Ic20555f8a4ebf0403cc2f933c92bb9bb1d3f51f9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3822432
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-08-12 04:48:35 +00:00
Tatsuyuki Ishi
40ffb3708b virtio: video: Add per-backend plane_align attribute.
The ffmpeg backend requires alignment that is different from 1, so make
a per-backend attribute to handle that.

The other backends inherits the alignment requirement of 1 (noop) from
before.

BUG=None
TEST=cargo test -p ffmpeg &&
     cargo test --features "video-decoder,ffmpeg" -p devices video
     + v4l2r test from crosvm book

Change-Id: I5c9f991615f8d66fd055c57a001812a42ea75c71
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3822431
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
2022-08-12 04:48:35 +00:00
Tatsuyuki Ishi
d06145a1ce media: ffmpeg: Add binding to obtain the required buffer alignment.
FFmpeg requires buffer alignment in case of SIMD-accelerated codec
implementations. This patch prepares for exposing the
respective requirement in the virtio-video interface.

BUG=None
TEST=cargo build -p ffmpeg

Change-Id: Ia8f3b2987571ddb8cf84b1201019ded83547e8f0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3822430
Commit-Queue: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Tested-by: Tatsuyuki Ishi <ishitatsuyuki@google.com>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
2022-08-12 04:48:35 +00:00
Pujun Lun
abe55a9e95 gpu: add support for Extended Display Identification Data (EDID)
We use an existing virtio command to expose some display data to the
guest system, which currently includes resolution and refresh rate.
EDID contains lots of other fields that are not needed by our graphics
stack, so instead of pulling the exact numbers from the system, we
just use some typical values to fill them.

BUG=b:213149288
TEST=presubmit

Change-Id: I24a5a8c706774bca7e5413b18fc5be3930050168
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3805836
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Pujun Lun <lunpujun@google.com>
Commit-Queue: Pujun Lun <lunpujun@google.com>
2022-08-11 20:51:42 +00:00
Richard Zhang
1b90d3fd0c ac97: Upstream Windows' ac97_bus_master
BUG=b:237681055
TEST=built and presubmits

Change-Id: I50c9c2dea2942440bb567ec12ff14dd42e50307c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3805830
Commit-Queue: Richard Zhang <rizhang@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Richard Zhang <rizhang@google.com>
Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
2022-08-11 19:57:32 +00:00
recipe-roller
932f5c9a9f 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/8806100587449901105

depot_tools:
73cc22d4e6
  73cc22d (chanli@chromium.org)
      [depot_tools] roll dirmd

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: Icd830f2d4abeb596c00d45ddeddc5eb10d5d0a0e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3826603
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-11 19:26:02 +00:00
Xiong Zhang
7f7b8ef3b0 x86_64: Change each pci device's vcfg mmio size from 4k to 8k
Extend pci device's vcfg mmio size frome 4k to 8k, the first page is
trapped by crosvm, the second page is share memory between guest and
crosvm, so that guest could read/write it directly without vm exit.

BUG=b:194391459
TEST=check vcfg mmio size for each pci device

Change-Id: If5ac75b4dc8a829cabce4370e7592f23600e4ef8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3813136
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Victor Ding <victording@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-11 17:42:42 +00:00
Xiong Zhang
60711c2bac x86_64: Make pcie vcfg size same as pcie ECAM size
Pcie vcfg use similiar pcie ECAM to distribute vcfg mmio into
each pci device, in order to make each pci device has such pcie
vcfg mmio, its size should be same as pcie ECAM.

BUG=b:194391459
TEST=check each device's pcie vcfg mmio in guest

Change-Id: I1ca13384514f323b1e49decd3de198bdfa3ac347
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3813135
Reviewed-by: Victor Ding <victording@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-11 17:42:42 +00:00
Xiong Zhang
728dcd2cdd x86_64: Remove the repeated read_pcie_cfg_mmio() call in build_vm()
pcie_cfg_mmio_range has been gotten at the beginning of build_vm,
and its value won't be changed. So later it could be used directly
instead of read_pcie_cfg_mmio() again.

BUG=None
TEST=tools/presubmit

Change-Id: If52843634692bbd9cec7b3679856a3959b41f397
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3813134
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Victor Ding <victording@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-11 17:38:02 +00:00
Jorge E. Moreira
01ad8e7fad Add KEY_BACK to the default virtio keyboard
This allows simulating a hardware back button in android devices

BUG=b:241614876
TEST=tools/presubmit

Change-Id: I8243cb5f03a23b4c07fc2a4381d8e7362b229fc3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3817971
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Jorge Moreira Broche <jemoreira@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Auto-Submit: Jorge Moreira Broche <jemoreira@google.com>
Tested-by: Jorge Moreira Broche <jemoreira@google.com>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
2022-08-11 01:56:51 +00:00
recipe-roller
073b160755 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/8806174182580225025

depot_tools:
f53bb836de~..e0fee9fa4bcb466d33e6180797a9763f70a0c594
  f53bb83 (vadimsh@chromium.org)
      [cipd] Update CIPD client v2.6.7 => v2.6.8.
  e0fee9f (gavinmak@google.com)
      Add BatchListBestOwners and ListBestOwners to GerritClient

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: I4889c0c427553a07722ef3fe5145e295ffde7670
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3824063
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-10 23:58:01 +00:00
recipe-roller
0e11635033 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/8806191181558301761

depot_tools:
ba352e00ba
  ba352e0 (kylixrd@chromium.org)
      Update autoninja.bat to work with other shells.

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: Iae2a56c7300afc4eeea6a5f27df48a41fa644757
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3823188
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-10 19:27:16 +00:00
recipe-roller
a1060f0ef8 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/8806193069254107281

depot_tools:
0af709772e
  0af7097 (brucedawson@chromium.org)
      Don't do double-serial Pylint checks

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: I32c669fb600380594201f1299951f91acd26858c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3823187
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-10 18:57:06 +00:00
Tinghao Zhang
b8373210a5 manatee: hotplug pcie switch for tbt device
When tbt device is plugged in to the system, there are one or more
pcie switch connected to it. To let host see this topology, this
patch hotplugs all pcie switch to guest along with the endpoint
devices.

BUG=b:199986018
TEST=./tools/presubmit

Change-Id: I46fc365413f0c43fe4362243e60fa74e2ebaa0b0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3769818
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-10 18:50:26 +00:00
Tinghao Zhang
e3401082c9 devices: support hotplug for pcie switch
This patch adds support for hotplug pcie switch. The user send
HotplugCommand of the new added device with the same order they
appear in device tree, and in handle_hotplug_command we add device
accordingly. During hotplug out, firstly vfio endpoint device will
send hot unplug command, we remove these endpoint device immediate-
ly, and then remove any bridge that is hotplugged into the system
but with zero child device connected to it. When all child bridges
got cleared up and pcie root port have no child devices, we send
plug out interrupt to guest kernel and probe hotplug out handling
in guest.

BUG=b:199986018
TEST=hotplug in and out pcie switch repeatedly

Change-Id: Ic3ab86d14efba4d05e204936e08bc6a582723484
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3769817
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-08-10 18:50:26 +00:00
recipe-roller
902cf918fc 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/8806194330300595697

depot_tools:
164e33529e
  164e335 (tperrotta@chromium.org)
      Add a fetch config for GN.

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: Ifdbf7af320e2d3fa4b18aa97d282a09e276fe23f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3823186
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-10 18:34:46 +00:00
David Stevens
e81096bde9 devices: fs: make dax bar prefetchable
Make the virtio-fs dax BAR prefetchable. This fixes an issue where bar
allocation fails because non-prefetchable bars are now always allocated
from <4GB. Making the bar prefetchable should also have performance
improvements.

BUG=b:241717747
TEST=tast run volteer vm.Fio.virtiofs_dax_randread

Change-Id: I4d06ca25ff5666ba05d75c7fd8c2ec63b10b971f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3821563
Tested-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: David Stevens <stevensd@chromium.org>
2022-08-10 17:21:19 +00:00
recipe-roller
0e55beefbf 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/8806203137717710225

depot_tools:
8121d634fb
  8121d63 (robliao@chromium.org)
      Make "All rights reserved" Optional in the License

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: I762cc5c7ca933d18248252dde8c9f3a14d0ca9db
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3823185
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-10 16:18:16 +00:00