Commit graph

7885 commits

Author SHA1 Message Date
Yiwei Zhang
a3bc3d652c gpu: allow passing LD_PRELOAD to gpu render server via cmdline
This unblocks enabling GWP-ASan in production to further secure up Venus
render server. Besides, it also makes it easier to enable ASAN only for
Venus render server but not virtio-gpu device process.

BUG=b:307995295
TEST=LD_PRELOAD set correctly in render server environ via cmdline

Change-Id: Ieba9a25d47decb60bbbd6569ad487d258733b29c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5034421
Reviewed-by: Ryan Neph <ryanneph@google.com>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-11-17 00:54:00 +00:00
Daniel Verkamp
b3f46c8fcb vhost-user: vmm: fs: make tag optional
Newer versions of virtiofsd allow the backend to provide the tag, making
it no longer necessary for the frontend to synthesize the virtio config
space. Make the --vhost-user-fs frontend option's tag field optional so
the frontend only overrides the config space provided by the backend
when necessary.

BUG=b:262291811
TEST=connect to virtiofsd built from git with and without tag specified

Change-Id: Ie4a0954054c5bd261306e172063b84d090b7bf32
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5010089
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
2023-11-16 23:08:10 +00:00
Daniel Verkamp
54329fe4ea devices: vhost-user: combine all VhostUserDevice::new functions
... except fs, since it is doing some unusual stuff with config space.

BUG=b:262291811
TEST=`crosvm run` with each supported --vhost-user-* device type

Change-Id: I1ae18f151d139ce01788f62495e6b4648f278a52
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4913661
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
2023-11-16 22:13:49 +00:00
Zihan Chen
3709df5dc0 fixup: infra: Fix typo in new recipe
TEST=led get-builder luci.crosvm.ci:linux_x86_64 | led edit-recipe-bundle | led edit-cr-cl https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5038000 | led launch

Change-Id: Icd755a7725fb054a4cd947a74e8f5ab518a1b257
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5038000
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-11-16 21:23:42 +00:00
Zihan Chen
0c57e655ed crosvm: Add more release build profiles
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>
2023-11-16 20:18:01 +00:00
Pujun Lun
f4c1624319 gpu_display: nuke HandleWindowMessage trait.
BUG=b:306024335

Change-Id: Ic6f5f5ea7a65bed2e08967bd0a33a4e54a59fe55
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5008063
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Kaiyi Li <kaiyili@google.com>
Commit-Queue: Pujun Lun <lunpujun@google.com>
2023-11-16 20:13:23 +00:00
recipe-roller
1c94e27d69 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/8764247935047504097

depot_tools:
2f184917c4~..74ed6becbfe18429dbb96ec53dfeccb067d74802
  2f18491 (chanli@chromium.org)
      [depot_tools] roll led
  74ed6be (sokcevic@chromium.org)
      Trigger recipe roller

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: I70d02b3343653bb1e0f615ce3f2c2da90b4c13ae
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5037995
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>
2023-11-16 18:40:47 +00:00
Pujun Lun
57ae9b5996 linux_input_sys: add a "repeat" option to key events.
It will be used in the upcoming Windows implementation. The
behavior should remain unchanged for other platforms.

BUG=b:306407787

Change-Id: I7f925055e2d3d9e03f64096cbf590c7ac897a00c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5028148
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Pujun Lun <lunpujun@google.com>
2023-11-16 16:39:02 +00:00
recipe-roller
ca721df2a8 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/8764256738861518225

recipe_engine:
eeeea0249f
  eeeea02 (mohrr@google.com)
      recipes_cfg: Add option to not use OWNERS in rolls

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: I037b8f7ccaa6acb5c3f8591d73b12e2b7687b482
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5034429
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>
2023-11-16 16:20:50 +00:00
Joe Hattori
ec26085d6b devices: virtio: Add trace points to virtio-blk and virtio-scsi
This commit adds tracing points in virtio-blk and virtio-scsi, so that
developpers can easily measure the performance of each commands.

BUG=300042376
TEST=tools/presubmit

Change-Id: Iaae2912505c6e224fa1fe587fb51c97838ecb66b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5035879
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Joe Hattori <hattorij@google.com>
2023-11-16 11:34:15 +00:00
Joe Hattori
a01a5abb69 devices: virtio: scsi: Remove the limit on the transfer size.
Currently crosvm imposes a limit on the transfer size. This has led to a
limited throughput on heavy workloads such as vm.Fio.scsi_stress_rw.
This commit removes the limit so that the guest driver can queue as much
requests as it wants to the virtqueue, leading to a slightly moderated
performance.

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

Change-Id: I8c1a465e2520441b7467053e81e0796a6535fa7f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5036061
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Joe Hattori <hattorij@google.com>
2023-11-16 08:23:39 +00:00
recipe-roller
efe8cc2225 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/8764289458285000753

depot_tools:
df3e577855
  df3e577 (tikuta@chromium.org)
      apply black and `git cl format` for ninja related python files

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: I9bd9442bed22049db9a96a6856351a5f7d60306c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5034420
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>
2023-11-16 07:42:18 +00:00
recipe-roller
ce05d677d6 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/8764290717167370849

depot_tools:
0b98e7c063
  0b98e7c (tikuta@chromium.org)
      fix for long line warnings

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: I4b653ac8b700dbb4b5aae80e813ce6d0602b94b8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5034419
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>
2023-11-16 07:20:46 +00:00
recipe-roller
3372683a2f 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/8764298894786752577

depot_tools:
58700cf7f8
  58700cf (philwo@chromium.org)
      Revert "gclient: Add skip-git experiment."

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: Id2c6d8e5e6bb6a3082c10fbdd807f6b5d4d389f0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5034418
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>
2023-11-16 05:10:33 +00:00
recipe-roller
54da874b40 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/8764307074583245425

depot_tools:
f1cbc0c0b5~..5cbc521beb5f57f2e065f0c6db2f1c203cbccbe6
  f1cbc0c (sokcevic@chromium.org)
      tests: Skip tests for old stacked changes flow
  5cbc521 (tikuta@chromium.org)
      autoninja.py: remove use_rbe support

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: I2c8e943ca90b2cf1760a994b54bcdbb1eefff7bf
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5035523
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>
2023-11-16 02:58:30 +00:00
recipe-roller
f0784e6e4d 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/8764320915228557169

depot_tools:
4cf6518959
  4cf6518 (sokcevic@chromium.org)
      scm: Remove usage of distutil

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: I43690daf09806a7f7d93bd8083447187bf4ed30d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5035279
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>
2023-11-15 23:23:07 +00:00
Daniel Verkamp
f9a3622a48 devices: virtio: add DeviceType::min_queues and use it in vhost-user
BUG=b:262291811
TEST=tools/dev_container tools/presubmit
TEST=connect vhost-user to `crosvm devices` block and fs backends

Change-Id: I3d3cde21e7918d9f71c54055caff5e6470222994
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4913660
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-11-15 23:20:11 +00:00
recipe-roller
d12d238c32 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/8764322802071667281

depot_tools:
8fb358e5b6
  8fb358e (sokcevic@chromium.org)
      Add support for Cog SCM

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: I2b0789937d68747399dbbf86d6ed6061a7f16781
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5032348
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>
2023-11-15 22:52:28 +00:00
recipe-roller
2ae26249d5 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/8764324691198092065

recipe_engine:
5944dc6a18
  5944dc6 (jiesheng@google.com)
      Fix the swarming test data init.

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: I1ccce041742e352815f44802fe1737c90f7079bc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5033473
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>
2023-11-15 22:18:13 +00:00
Elie Kheirallah
1708af903b devices: serial: read buffers just before snapshot
Read any potentially received data that was queued after crosvm was
suspended. This can happen if crosvm is suspended before other
processes.
Refactored drain timeout to share between serial and console

BUG=b:303092706
TEST=presubmit

Change-Id: If04f1987b0b70d3866f0a6c9258e6f674c919a1c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027654
Reviewed-by: Frederick Mayle <fmayle@google.com>
Commit-Queue: Elie Kheirallah <khei@google.com>
2023-11-15 22:01:45 +00:00
Daniel Verkamp
7bfaea422b devices: vhost-user: allow a fixed set of frontend protocol features
The vhost-user protocol features (VHOST_USER_PROTOCOL_FEATURE_*) that
the frontend supports can be the same for all device types; there is no
need to mask off protocol features on a per-device basis. The frontend
code will still only acknowledge and use the intersection of the
protocol features supported by the backend and the frontend
(VhostUserHandler).

The only exceptional case is the non-standard SHARED_MEMORY_REGIONS
protocol feature, which is only implemented in crosvm's vhost-user-gpu
backend. Add a special case for that feature for now, with the eventual
goal of either standardizing it or removing it.

BUG=b:262291811
TEST=connect crosvm to vhost-user blk and virtiofs backends

Change-Id: I763009ebbcf99fb57487f4b9f65fa67f9b1d3f38
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4913659
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 19:26:59 +00:00
Daniel Verkamp
29695e6eae devices: vhost-user: remove frontend allow_features
Rather than requiring each specific vhost-user frontend to declare its
supported set of feature bits, we should simply allow any feature bits
that are specific to the device type to be passed through from the
driver to the backend. The vhost-user frontend does not need to know the
meaning of these features, and the normal virtio feature negotiation
mechanism will ensure the driver and vhost-user backend select a
compatible set of features.

This allows removing a bunch of the device-type-specific vhost-user
frontend code.

BUG=b:262291811
TEST=tools/dev_container tools/presubmit
TEST=connect crosvm to vhost-user block and virtiofsd backends

Change-Id: Id5d81b3e5336ef5d5f6b0c0821839a92cf7deb37
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4913658
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 19:24:46 +00:00
Pierre-Clément Tosi
b8597f436b Randomize vSID values for pKVM-VFIO devices
Rework the pvIOMMU topology by randomizing the value of vSIDs instead of
using the previous "n-th SID has vSID n". This forces the hypervisor to
support non-trivial SID mappings, which will be necessary for assigning
multiple devices to the same pvIOMMU.

TEST=tools/run_tests
BUG=b:306110430

Change-Id: Ib143a09c61d4d4e747942c7833079dfcbe77e5fc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5009549
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Pierre-Clément Tosi <ptosi@google.com>
2023-11-15 10:50:46 +00:00
Pierre-Clément Tosi
a342b8fba3 Extend pKVM-VFIO support to virtual SIDs
Add support for assigning VFIO devices with more than one Stream ID to
pKVM guests. The guest DT now uses <#iommu-cells> == 1.

Implement a virtual topology where the n-th SID is mapped to the virtual
SID with value n.

TEST=tools/run_tests
BUG=b:306110430

Change-Id: I053f4697b13b40c8c7f6eb9ef27afe5c7aeb36ca
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5009548
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 10:50:46 +00:00
Pierre-Clément Tosi
1abdd9af88 fdt: Add support for pKVM-VFIO pvIOMMUs
Expose pvIOMMUs to guests through the device tree. Due to the topology
of 1-to-1 mapping between VFIO devices and pvIOMMUs set `#iommu-cells`
to 0 as DMA masters (VFIO devices) can be uniquely identified from their
assigned pvIOMMU.

TEST=tools/run_tests
BUG=b:306110430

Change-Id: Iddac86500901b51e61de3c9b060c3bc541c64866
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5009547
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 10:50:46 +00:00
Pierre-Clément Tosi
fdb527c202 vfio: Add support for pKVM-VFIO pvIOMMUs
Teach crosvm to spawn para-virtualized IOMMUs emulated by pKVM, which
are used by protected VMs to control the DMA translation regime of their
assigned (physical) devices without relying on the (untrusted) host or
VMM.

Implement a virtual topology with a 1-to-1 mapping between VFIO devices
and pvIOMMUs (i.e. no support for multiple devices per pvIOMMU nor for
multiple pvIOMMUs per device).

To allow guests to refer to individual pvIOMMUs in calls to the
hypervisor (for example, to map/unmap DMA), they are given an ID, which
the uAPI defines as the FD returned from one of its ioctls.

Like the rest of pKVM, this feature is specific to Android on AArch64.

Note: This makes use of a uAPI that is currently only available on some
      experimental (non-production) Android kernels and is likely to
      change!

TEST=tools/run_tests
BUG=b:306110430

Change-Id: I00c065754cffa39307272ad00698647e56404894
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5009546
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 10:50:46 +00:00
Yuan Yao
1eb0962195 devices: virtio: fs: refactor casefold_cache fallback lookup logic
Previously, the fallback logic for utilizing the casefold_cache when a
standard lookup fails required manual implementation each time do_lookup
was called. This resulted in code duplication and was prone to omission
when adding new features or operations.

This CL intergrates the casefold_cache lookup logic with normal lookup
to  do_lookup_with_casefold_fallback() function. This change eliminate
the need for redundant code and simplifying future maintenance efforts.

BUG=b:304663953
TEST=cargo test --package devices --lib -- virtio::fs::passthrough::tests

Change-Id: I181d52fcfc43f4e6b0d88f6d53374c785ee05142
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5009218
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
2023-11-15 08:37:40 +00:00
Yuan Yao
e413d2774d devices: virtio: fs: Enable zero_message_open in atomic_open
Zero_message_open should also be considered in atomic_open feature. With
zero_message_open enabled, atomic_open will not open file but just
return the d_entry. Updated atomic_open unit tests with
zero_message_open feature.

BUG=b:304663953
TEST=test virtio-fs with cache=always option

Change-Id: I2929355c32dd8972d2ed988a0fad5a37431e2b53
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4963224
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2023-11-15 08:37:40 +00:00
Yuan Yao
03223ab5e5 devices: virtio: fs: improve create method by avoiding opening symlink
The atomic_open operation utilized the create() method to create new
files. However, this method involved unnecessary overhead by following
the /proc/self/fd symlink to open the file.

This commit optimizes the process by directly calling openat with parent
inode data and file name in create() method. This eliminates the symlink
lookup, reducing workload on the host system and improving performance.

BUG=b:304663953
TEST=create files in shared directory

Change-Id: I4b8bd3cb41035bceaa3b9bae64503f744cbe8361
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4937655
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
2023-11-15 08:21:13 +00:00
Yuan Yao
b13c6ae1be devices: virtio: fs: add unit test for atomic open operation
The unit tests are added for atomic open operation, whicg including
atomic open on existing/non-exsiting normal file with and without
O_CREATE flag. Also, one unit test is created for atomic_open a symbol
link file.

BUG=b:304663953
TEST=cargo test --package devices --lib -- virtio::fs::passthrough::tests

Change-Id: I13edaab60f65317189ef998274e0b78cf3fb756c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4930458
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-11-15 08:21:13 +00:00
Yuan Yao
6b723e6ba2 devices: virtio: fs: add atomic_open operation in fuse
This commit introduces support for the FUSE atomic_openoperation for
virtio-fs. Previously, when opening or creating a file without a
corresponding d_entry (directory entry), the guest had to send separate
FUSE LOOKUP and FUSE OPEN/CREATE requests.

With atomic_open, the guest can send a single FUSE ATOMIC_OPEN request,
and crosvm will handle both lookup and open/create operations. If
successful, it returns the d_entry and file handler. For symbolic links,
atomic_open returns an ELOOP error, prompting the kernel to fall back to
the standard FUSE LOOKUP + FUSE OPEN sequence.

To enable atomic_open, the guest kernel need requires path 1/8,2/8,8/8 from
the following kernel patch set:
https://lore.kernel.org/linux-fsdevel/20231023183035.11035-1-bschubert@ddn.com/

BUG=b:304663953
TEST=test virtio-fs with guest kernel cherry picked chromium:4988749

Change-Id: I94e2758765e4a422e011a83fcafcf2e0e0a20682
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4914660
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2023-11-15 08:21:13 +00:00
recipe-roller
957d6c86c6 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/8764389492602091441

depot_tools:
86c7f734f5
  86c7f73 (sokcevic@chromium.org)
      pylint: Add pylint 2.13

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: I690aa4e4464b058e52b996237282d7c2f688866d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5030984
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>
2023-11-15 05:15:14 +00:00
recipe-roller
c4626654f5 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/8764390750524035217

depot_tools:
1e503bf950
  1e503bf (mrahs@google.com)
      don't confuse users with unimportant and non-actionable error msg

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: I829864702c841219522e332915695739a728e913
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5030983
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>
2023-11-15 04:49:26 +00:00
Daniel Verkamp
f88eb7a0ed devices: console: pass in_avail_evt to read_input by reference
The read_input() function doesn't need ownership of the event, so just
borrow it to avoid the need for an extra try_clone() call.

Change-Id: Id7362a4e65ddde5d7fd212754d2870c4ac475051
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027709
Reviewed-by: Elie Kheirallah <khei@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-11-15 01:11:12 +00:00
Isaac Bosompem
43174889bc crosvm: Add vCPU thread nice adjustment support
Adds support for specifying a nice value to be used for vCPU threads.
This can be used to boost (or deboost) the priority of the vCPU threads
relative to everything else. To boost the threads priority, the
appropriate limits will need to be set.

BUG=b:310707244
TEST=Verified nice values on "crosvm_vcpuN" using top on host.

Change-Id: Ia1ad8d2c8f88bdd411551f3be72c7eb3553417c8
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027655
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Isaac Bosompem <mrisaacb@google.com>
2023-11-14 23:22:47 +00:00
Elie Kheirallah
0d6d672e0b devices: console: init in_avail_evt on creation
Initialize in_avail_evt on creation of Console instead of on activate.
in_avail_evt is never passed as an argument, so there's no real reason
behind making it an option. Behavior is not affected.

BUG=N/A
TEST=presubmit

Change-Id: I270ba47614a4c3489fe3cde6450ed3879f63818d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5026250
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-11-14 22:27:20 +00:00
Elie Kheirallah
17d3762aea devices: virtio-console: extract read from thread to function
Reading the input in console had all the logic in a thread.
Extract that logic into a function so that we are able to read the input
without a thread. This will be used as part of 2-step snapshotting.

BUG=b:303092706
TEST=presubmit

Change-Id: Iaeda2520abf76f712642f3282d0db973d4fc1886
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5005897
Reviewed-by: Noah Gold <nkgold@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
2023-11-14 20:13:02 +00:00
dawnhan
6804b12009 third_party: Update third_party/minigbm submodule
BUG=b/265199561
TEST=CQ

Change-Id: I3fdd393d50b7805aedbe7cfeec55a7652b71e552
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5003371
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Dawn Han <dawnhan@google.com>
2023-11-14 19:51:21 +00:00
recipe-roller
4793554bf0 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/8764427870139647825

depot_tools:
fba0ae4a38
  fba0ae4 (sokcevic@chromium.org)
      recipe_modules/gclient: Exclude non-set properties

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: I62117a4be363e7d6dfddc4332ccfe276736b7911
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5028151
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>
2023-11-14 19:07:21 +00:00
Zihan Chen
60a419217c e2e_tests/benches: Add gimp benchmark for disk performance
Gimp plugin initializing, loading and file batch processing are
plausible real-world operations to run under crosvm, and can be
easily measured in an automated gui-less fasion. These operations
mainly stress small file disk performance.

BUG=b:181105093

TEST=./tools/bench gimp

Change-Id: I5891771a031f5843df4aebdfede8ae9b7ed53977
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4994843
Auto-Submit: Zihan Chen <zihanchen@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-11-14 18:37:11 +00:00
recipe-roller
ecd5795b45 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/8764434791006374417

depot_tools:
b0cfbe504b
  b0cfbe5 (tikuta@chromium.org)
      infra/config: enable no_cc_authors

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: Ic3901b6483375bda05b2e2329d783dfadec980b9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027705
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>
2023-11-14 17:16:40 +00:00
recipe-roller
0d42742065 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/8764439195377025745

recipe_engine:
9dea1246fd
  9dea124 (mohrr@google.com)
      [defer] Use ExceptionGroups

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: Ia4d32c863e570d3dc66d70eff2431361d5132653
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5028147
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>
2023-11-14 15:59:57 +00:00
Takaya Saeki
85f1221536 cros_async: remove fallocate from IoSource and delegate it to base
Currently, cros_async's async IO source provides async `fallocate`
function, and `punch_hole` and `write_zeroes_at` are delegated to
`fallocate`. However, this design has three rooms for improvements.
1. Actually, no one calls async `fallocate`.
2. We have duplicated `fallocate` and `AllocateMode` implementations in
   `base::sys`.
3. Windows has to pretend to have `fallocate` to provide `punch_hole`
   and `write_zeroes_at`

So, this change removes `fallocate` and `AllocateMode`, which no one
actually calls, from `IoSource` and deletegate it to `base::sys`. With
this, we don't have to maintain `fallocate` implementation in
cros_async.

This will also enable us to call a non-`fallocate` systemcall in
`punch_hole` implementation which will be necessary to correctly support
block files.

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

Change-Id: I8e7fcd94380da980cc52e6f751b134fa325d7b39
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5019241
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Commit-Queue: Takaya Saeki <takayas@chromium.org>
2023-11-14 07:12:11 +00:00
Takaya Saeki
d769eff40b base: linux: remove keep_size parameter from fallocate
Currently, `fallocate` helper function in base/sys/linux has the
`keep_size` parameter which controls whether to add
`FALLOC_FL_KEEP_SIZE` flag or not. However, no one passes `false` to
this parameter and all callers want to keep size. We have no reason to
make this configurable.

This change removes `keep_size` parameter from `fallocate` and simplify
the implementation. This will also enable us to remove another
`fallocate` implementation in `cros_async` replacing it with this
`fallocate` in base/sys/linux.

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

Change-Id: I2926121acb32de62a7457f851ae48f829a3c8a6c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5019240
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Takaya Saeki <takayas@chromium.org>
2023-11-14 07:11:04 +00:00
Joe Hattori
c306d55910 devices: virtio: scsi: Implement thin-provisioning
Currently crosvm does not implement provisioning management. This leads
to discard operations not being called, which results in poor
performance on some I/O workloads (e.g. vm.Fio.scsi_stress_rw).

This commit implements the Block Limits and Logical Block Provisioning
vpd page to let the driver know we support thin-provisioning. Then, the
driver calls UNMAP, WRITE SAME(10), and WRITE SAME(16) commands to
perform discard operations, so this commit implements these commands as
well.

TEST=tools/presubmit
BUG=b:300042376

Change-Id: Ie17b64ce35e0810549b9b254d5617e106358efca
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4996804
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Joe Hattori <hattorij@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-11-14 06:56:50 +00:00
recipe-roller
53594c7a53 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/8764483865402481345

depot_tools:
7a9b709a6c
  7a9b709 (mrahs@google.com)
      avoid unnecessary failures in get_hostname

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: I01277b17a38aaedf54e06bb534f224b3a6f4c06c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027699
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>
2023-11-14 04:08:11 +00:00
recipe-roller
00a836ea29 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/8764489525823914481

depot_tools:
1cd58a27b0
  1cd58a2 (sokcevic@chromium.org)
      boostrap: Use python 3.11 in bleeding_edge

recipe_engine:
a9737d853f
  a9737d8 (mohrr@google.com)
      [engine] Log step time in multiple formats

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: Iaaaeb3d60e577629a92a531b40f2d14cd8597cf0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027698
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>
2023-11-14 02:40:04 +00:00
Vikram Auradkar
41d4b92cef tools: remove link run_test2
BUG=b:308883445
TEST=none

Change-Id: I6fe0dbf90ebaee2cd0d1585a0b3f02e1761f3826
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5027694
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Vikram Auradkar <auradkar@google.com>
2023-11-14 01:21:43 +00:00
Elie Kheirallah
881b6bc937 devices: virtio: change snapshot to take mutable ref
Part of efforts of two-step snapshotting, to avoid dropping any data
lingering in buffers.

BUG=b:303092706
TEST=presubmit

Change-Id: I1d36a10c8d317349d12ca66b817cf92c099ede10
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5005896
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
2023-11-13 23:53:53 +00:00
Elie Kheirallah
46b1df1890 devices: change snapshot to take a mutable device
Snapshot needs to modify the device as part of efforts for 2-step
snapshotting. This is to make sure no messages are dropped. The
snapshotting process on cuttlefish involves stopping the VM first,
followed by the processes. This means that a process might send a
message which crosvm has not yet received.
On snapshot, we should receive any messages and then snapshot.

BUG=b:303092706
TEST=presubmit
Change-Id: If3431318d5d115072c65f61dad9f13222001f937

Change-Id: Iea8a159bff21af67c0c59f36cfa9324179723515
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5005898
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Elie Kheirallah <khei@google.com>
2023-11-13 23:44:57 +00:00