Commit graph

134 commits

Author SHA1 Message Date
yuanyaogoog
6a8c9dc22c docs: Add virtio-fs document in crosvm book
Crosvm book don't have a documentation for how to run and use the virtio-fs.

Add a fs chapter under device, and upload a runnable example.

BUG=b:235067443
TEST=mdbook build docs/book

Change-Id: I8ef1ceb9d4cfc5f9a2e8afa2416d1f3ba69691b4
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4535500
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
2023-05-19 01:45:15 +00:00
Federico 'Morg' Pareschi
da0fefca45 docs: book: Add crosvm tracing page.
Initial doc page explaining how cros_tracing works.

BUG=b:256052372
TEST=built the mdbook and the pages look okay

Change-Id: I152e8e8582945cb4b11c4c29da8e057def8d7f69
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4123650
Auto-Submit: Morg <morg@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Morg <morg@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
2023-05-18 02:28:02 +00:00
Keiichi Watanabe
514d786e69 docs: Have Linux build section on the same level as Windows build
Now, crosvm can be built for two operating systems; linux and windows,
so put these sections for the two OS on the same level.

BUG=none
TEST=mdbook build

Change-Id: I66a4d37ca40c3af0fa2289605301954ce991a06a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4537377
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-05-17 11:34:13 +00:00
Takaya Saeki
a9a474372f docs: update the naming rule of virtio-fs root mount
Crovm's doc mentions the naming limitation of virtio-fs root mount.
However, kernels 5.15 or later no longer require that naming limitation.
This change updates the information about the limitation.

BUG=None
TEST=mdbook build docks/book

Change-Id: I5c87bb3f92fa3fa3e56b395d1bc1fca9f5026183
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4541965
Commit-Queue: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-05-17 09:44:47 +00:00
Keiichi Watanabe
719c9aedd2 docs: Have style guide as a separate section
Having a style guide section separately so people will be able to find
it more easily.

BUG=b:281972799
TEST=mdbook build

Change-Id: I3af92a3c4abe65226c7cdf1028d30e906e0952ed
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4537376
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2023-05-16 16:03:03 +00:00
Keiichi Watanabe
514084a741 docs: appendix: Add missing link to AARCH64_VIRTFREQ_BASE
BUG=none
TEST=checked with mdbook serve

Change-Id: I67fc3c7033382b27b01860a3bdeab6718ef0d7bd
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4537375
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2023-05-16 15:49:36 +00:00
yuanyaogoog
940132259b tools: Fix example script and doc in crosvm book
Currently, if a user follows the crosvm's running crosvm section, one
will encounter errors executing the sample codes in tools/examples. We
want the examples codes to run without extra manual operation. Also,
there is a wrong link in the documentation.

Add disable-sandbox option in example_simple, which prevents jail
creation error. Fix a document link in 3.1.Example Usage section to show
the correct source.

BUG=b:281951944
TEST=tools/examples/example_network tools/examples/example_simple

Change-Id: I6383112acdb7c9c5f22f39da872756ab278d1309
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4518099
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2023-05-15 01:42:58 +00:00
David Dai
e9426a6ace aarch64: devices: Add a virtual cpufreq device
Introduce support for a virtual CPU frequency device
to improve guest task placement behaviour along with performance
and power usage of workloads within VMs[1]. This device adds MMIO regions
that enables the guest to:

- Query for the frequency of the physical CPU that the current
vCPU is affined to.
- Send frequency requests that can be used as hint for the
host to schedule vCPU threads and choose physical CPU frequency.

Add a config option "--virt-cpufreq" that enables the virtual cpu device
and populates the frequencies of vCPUs through devicetree, which can
be used by a guest kernel cpufreq driver[2].

[1] https://lore.kernel.org/all/20230330224348.1006691-1-davidai@google.com/
[2] https://android-review.git.corp.google.com/c/kernel/common/+/2239182

Bug: None
Test: ./tools/presubmit
Change-Id: I03983c5e4a3fa288ca19504aa093ad1f7f9f7e51
Signed-off-by: David Dai <davidai@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4504738
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-05-11 21:13:57 +00:00
yuanyaogoog
a0c55f16f0 docs: Swap Testing section and Running crosvm section in crosvm book
At present, the Testing section sits before Running crosvm section which
will confuse readers.

Swap the order of Testing section and Running crosvm section in
SUMMARY.md makes documentation clearer to readers.

BUG=b:281780797
TEST=mdbook build docs/book

Change-Id: I33d78b9eb456bd5ef529e1d3de607e7ec519dac2
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4520797
Commit-Queue: Yuan Yao <yuanyaogoog@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-05-10 09:26:19 +00:00
Dennis Kempin
bbb6a24d51 tools/presubmit: Add doctests
Adds an invocation to run doctests to the health_checks builder.

To make this not run by default on every `tools/presubmit`
invocation, this CL splits default_health_checks out of the
health_checks group.

BUG=b:242635135
TEST=tools/presubmit health_checks

Change-Id: Ic850c461eb79e81c4b8118fc3182614fac907569
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4476090
Reviewed-by: Zihan Chen <zihanchen@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2023-04-26 00:09:33 +00:00
Alexandre Courbot
70715a0828 crosvm: cmdline: allow cfg to be used in configuration files
Allow the `cfg` field of RunCommand to be used in configuration files,
providing a mechanism for configuration inclusion.

Configurations are merged in the following order: first the included
files by order of specification (recursively), then the parent file,
then finally the other command-line arguments.

BUG=b:218223240
TEST=booted a VM with a configuration file that included another one and
confirmed both settings were applied.

Change-Id: I0c1e1b12b7c329510d450069e2e9de5b52af7734
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4414504
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2023-04-25 06:30:48 +00:00
Alexandre Courbot
23272fca8e crosvm: cmdline: allow to use the --cfg argument several times
Now that RunCommands can be merged several times without ambiguity,
allow the `--cfg` argument to be used several times, allowing to augment
a base configuration with others. Configurations are merged in their
order or specification, with the other command-line arguments being
merged last.

BUG=b:218223240
TEST=added test passes, booted a VM while specifying `--cfg` several
times.

Change-Id: I94d4f02e403db0203a2757e78a5932805c6d8387
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4414503
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2023-04-21 05:30:22 +00:00
Elie Kheirallah
ea6eb3adf4 docs: book: docs update and improvement
Add Podman as an option in building crosvm.
Have `Example Usage` point to `Custom Kernel/Rootfs` for preparing a
custom kernel/rootfs, instead of building crosvm.

BUG=N/A
TEST=mdbook build && check the html page

Change-Id: I920526c01140439c416e929d4711ae996bb0831e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4455448
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Elie Kheirallah <khei@google.com>
Commit-Queue: Elie Kheirallah <khei@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-04-20 22:04:37 +00:00
Christian Blichmann
c53b40e455 Fix typos found by common-typos checker
Change-Id: Ie539304c85d0dc54bc1e17892db8bbbfb15b69ef
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4417934
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-04-12 16:58:51 +00:00
Keiichi Watanabe
90db86b386 docs: testing: Fix link to named-lock
We're using `named-lock` crate, not `namedlock` crate.

BUG=none
TEST=CQ

Change-Id: I69a2eba4f5563a94f9e1ac78363aff04ed38d47c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4415096
Auto-Submit: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2023-04-11 14:56:35 +00:00
Alexandre Courbot
4b06502db1 crosvm: add --vsock command-line option and config-file parameter.
Add a `--vsock` command-line option that is designed to replace the
`--cid`, `--vhost-vsock-device` and `--vhost-vsock-fd` parameters into a
single one. This parameter can be used on Windows as well as Linux, and
on the latter users can also specify the vhost-vsock device to use.

This parameter is the preferred way to add vsock devices, and thus is
also enabled for configuration files. Also update the book's
instructions in lockstep.

BUG=b:255223604
TEST=run crosvm with `--vsock cid=42` option and ensure the guest device
is working using socat to communicate with the host.

Change-Id: I9515922415e5a55289a9e21d5f2f247a30fadc74
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4253292
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-03-22 09:19:18 +00:00
Kameron Lutes
8e31d2d5c3 docs: Fix usage of --reset flag for dev_container
The dev_container no longer has a --reset flag and instead uses --clean.
Updates docs to reflect this.

BUG=b:273389824
TEST=cq

Change-Id: Ic8bdf1900a19e525d1150ebc623ab9d6bd2eec09
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4337296
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Kameron Lutes <kalutes@chromium.org>
2023-03-15 00:48:46 +00:00
Frederick Mayle
c0e2630d69 docs: add instructions for using the --hypervisor flag
Change-Id: I254603b04b8d05b9410715e52bd7afe2db113458
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4335142
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Frederick Mayle <fmayle@google.com>
2023-03-14 02:00:04 +00:00
Frederick Mayle
35ad1df0c6 hypervisor: add README.md detailing hypervisor support
Change-Id: Ia906b551f0859294670bef340610575328fe36a0
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4326988
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
2023-03-14 02:00:04 +00:00
Daniel Verkamp
afbab80855 book: seccomp: update seccomp policy directory
The seccomp policies are located in the `jail` crate now. Fix the
include path.

BUG=None
TEST=mdbook build

Change-Id: I40049248c83c060c98925b61991d6a83c379b9c3
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4335147
Reviewed-by: Shin Kawamura <kawasin@google.com>
Commit-Queue: Shin Kawamura <kawasin@google.com>
Auto-Submit: Daniel Verkamp <dverkamp@chromium.org>
2023-03-14 00:48:33 +00:00
Dennis Kempin
c32300b03d book: Update building/testing sections with new tooling
Tooling has changed and the book was outdated.

BUG=None
TEST=presubmit

Change-Id: Ieb15dacbc234549411ab9351bb53a4ee9b25b035
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4278705
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Frederick Mayle <fmayle@google.com>
2023-02-28 23:11:13 +00:00
Daniel Verkamp
ab9d6a02ce Reland "docs: book: fix memory layout source links and line numbers"
Original commit message:
> docs: book: fix memory layout source links and line numbers
>
> The crosvm-upstream repository in the ChromiumOS git host was removed,
> so use crosvm instead.
>
> BUG=None
> TEST=mdbook build # and click through links

This reverts commit 935ad063c6.

BUG=None
TEST=mdbook build

Change-Id: Ifc1e308f6a23148ea4aa3fbd49c64e87c8a732e5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4277063
Reviewed-by: Shin Kawamura <kawasin@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-02-28 18:57:51 +00:00
Daniel Verkamp
6bf7371f87 Reland "x86_64: place setup_data immediately after cmdline"
The issue that caused the revert has been fixed by commit 64065f6b213a
("cros_fdt: remove max_size from FdtWriter::finish()"). The FDT was
padded to a size larger than the available setup_data space on x86-64,
which caused startup to fail any time the --android-fstab option was
used.

Original commit message:
> This moves the setup_data out of the way of the bzImage decompression
> stub, so it won't get overwritten.
>
> Fixes a regression with some kernel configurations introduced in commit
> 5bedfa3408 ("x86_64: add SETUP_RNG_SEED setup_data entry"), which
> unconditionally adds a setup_data entry.
>
> BUG=b:268397895
> TEST=boot x86-64 bzImage in crosvm that previously failed
> TEST=cargo test -p x86_64

This reverts commit a0d14ce819.

BUG=b:268397895
TEST=Start ARCVM on x86-64
TEST=Start Crostini on arm

Change-Id: I41f14578673ea00d1453841dd7cb2438a0a13355
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4277062
Reviewed-by: Shin Kawamura <kawasin@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-02-28 18:54:59 +00:00
Shin Kawamura
a0d14ce819 Revert "x86_64: place setup_data immediately after cmdline"
This reverts commit e5aec1e53d.

Reason for revert: The android fstab which is capped limited up to `X86_64_FDT_MAX_SIZE` exceeds the `SETUP_DATA_END` at least on an octopus DUT. 

Original change's description:
> x86_64: place setup_data immediately after cmdline
>
> This moves the setup_data out of the way of the bzImage decompression
> stub, so it won't get overwritten.
>
> Fixes a regression with some kernel configurations introduced in commit
> 5bedfa3408 ("x86_64: add SETUP_RNG_SEED setup_data entry"), which
> unconditionally adds a setup_data entry.
>
> BUG=b:268397895
> TEST=boot x86-64 bzImage in crosvm that previously failed
> TEST=cargo test -p x86_64
>
> Change-Id: Ie5efc19d607aad16c1ca80bcdd2fb62933dd73e1
> Fixes: 5bedfa3408 ("x86_64: add SETUP_RNG_SEED setup_data entry")
> Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4233967
> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
> Reviewed-by: Dmitrii Osipenko <dmitry.osipenko@collabora.corp-partner.google.com>
> Reviewed-by: Zihan Chen <zihanchen@google.com>

Bug: b:268397895
Change-Id: Ie430caa38b745cb1d5e69ac644a2c76813069221
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4272810
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2023-02-21 05:37:18 +00:00
Shin Kawamura
935ad063c6 Revert "docs: book: fix memory layout source links and line numbers"
This reverts commit 4a740f3801.

Reason for revert: Revert https://crrev.com/c/4233967

Original change's description:
> docs: book: fix memory layout source links and line numbers
>
> The crosvm-upstream repository in the ChromiumOS git host was removed,
> so use crosvm instead.
>
> BUG=None
> TEST=mdbook build # and click through links
>
> Change-Id: Ib35d930505c1a3381ce4f4fc53f54d626c810d1e
> Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4233968
> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
> Reviewed-by: Zihan Chen <zihanchen@google.com>

Bug: None
Change-Id: I4c4d72f54bbfc58a127b3831b2d658c2472fffff
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4272809
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-02-21 05:33:20 +00:00
Daniel Verkamp
4a740f3801 docs: book: fix memory layout source links and line numbers
The crosvm-upstream repository in the ChromiumOS git host was removed,
so use crosvm instead.

BUG=None
TEST=mdbook build # and click through links

Change-Id: Ib35d930505c1a3381ce4f4fc53f54d626c810d1e
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4233968
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
2023-02-16 00:32:51 +00:00
Daniel Verkamp
e5aec1e53d x86_64: place setup_data immediately after cmdline
This moves the setup_data out of the way of the bzImage decompression
stub, so it won't get overwritten.

Fixes a regression with some kernel configurations introduced in commit
5bedfa3408 ("x86_64: add SETUP_RNG_SEED setup_data entry"), which
unconditionally adds a setup_data entry.

BUG=b:268397895
TEST=boot x86-64 bzImage in crosvm that previously failed
TEST=cargo test -p x86_64

Change-Id: Ie5efc19d607aad16c1ca80bcdd2fb62933dd73e1
Fixes: 5bedfa3408 ("x86_64: add SETUP_RNG_SEED setup_data entry")
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4233967
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dmitrii Osipenko <dmitry.osipenko@collabora.corp-partner.google.com>
Reviewed-by: Zihan Chen <zihanchen@google.com>
2023-02-16 00:28:26 +00:00
Daniel Verkamp
3d126b7976 x86_64: limit kernel command line to 2 KB
This is the limit used by Linux kernels since the 2.6 era, as reported
in the bzImage header as well as the COMMAND_LINE_SIZE definition in
setup.h.

The previous allocation of almost 2 MB was excessive and would have
also overlapped the memory region used for ACPI tables had a long
enough command line been provided.

We will use the area freed up by this change for the setup_data in the
next change.

BUG=b:268397895
TEST=boot x86-64 bzImage in crosvm

Change-Id: I3b5a3771549c3352e609a9685f591be38ae9fa63
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4233966
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
2023-02-16 00:28:26 +00:00
Frederick Mayle
653f62a4a3 aarch64: static swiotlb allocation
Adds a new hypervisor capability that causes crosvm to statically
allocate the location of the swiotlb buffer.

This will be used by the gunyah hypervisor.

BUG=b:244630071,b:232360323

Change-Id: Ia2f379bb6f2fa89167ddc73d65ec1b8c5494bdf6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4197001
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Frederick Mayle <fmayle@google.com>
2023-02-01 00:05:48 +00:00
Dennis Kempin
108a335d7d toolchain refactoring: Only support native out of the box
cross-compilation requires additional configuration that depends
heavily on the host platform. Unfortunately cargo cannot be
configured on a per host platform basis so this has to be done
manually.

Most developers are just using native compilation (and using
the containers for everything else). So we can slim our
install-deps scripts a bit.

To verify the updated install scripts, this change includes
containers to simulate a fresh developer workstation that
can be used to verify out of the box workflows.

BUG=b:262829206
BUG=b:265995780
BUG=b:265842137
TEST=tools/contrib/minimal_container/test-all.sh and CQ

Change-Id: I0e803d0224306e5351728e2c80fcbcd8260d029d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4179290
Reviewed-by: Zihan Chen <zihanchen@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2023-01-24 17:33:29 +00:00
Vikram Auradkar
cd410234dc docs: book: set execution policy before running install-deps
BUG=b:264555939
TEST=none

Change-Id: I1e0ff89dded4101120cbe591f280be9db5ac8474
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4178831
Commit-Queue: Vikram Auradkar <auradkar@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Auto-Submit: Vikram Auradkar <auradkar@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
2023-01-18 18:23:53 +00:00
Vikram Auradkar
212132ae54 docs: book: add a windows build doc to the book
The guide is WIP and doesn't contain instructions to test and run
crosvm on windows.

BUG=b:264555939
TEST=none

Change-Id: Iedc9099ec458757c4cc92be536dc64ec4e6e4929
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4149728
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Vikram Auradkar <auradkar@google.com>
2023-01-12 23:28:36 +00:00
Daniel Verkamp
488327cd66 devices: vhost-user: use crosvm devices in docs
Update the vhost-user docs to recommend the new and improved
`crosvm devices` subcommand rather than `crosvm device`.

BUG=None
TEST=run the commands

Change-Id: I3ed5d2408cb217116603033eeb551df515eaf8ef
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4160471
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-01-12 02:10:47 +00:00
Daniel Verkamp
a30380dd56 docs: book: replace features.md with a link to docs
The features.md file in the book duplicates the feature descriptions
originating in Cargo.toml and generated in the cargo doc output by
document-features. Remove the (outdated) features.md descriptions and
replace the content with a link to the cargo doc feature list.

BUG=None
TEST=tools/cargo-doc
TEST=cd docs/book; mdbook build

Change-Id: I54f1873e2396363e7703dd0209589443ae8fb984
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4133829
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-01-04 01:42:49 +00:00
Daniel Verkamp
ac0fc378a3 Fix remaining Chrome/Chromium OS instances
These should be written as ChromeOS and ChromiumOS (without the space)
to match the updated branding. The copyright headers were already
migrated to the new style (https://crrev.com/c/3894243), but there were
some more instances left over.

BUG=None
TEST=tools/cargo-doc

Change-Id: I8c76aea2eb33b2e370ab71ee9b5cc0a4cfd00585
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4129934
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2023-01-03 22:14:30 +00:00
Alexandre Courbot
5142a955d5 docs: book: point to bzImage instead of vmlinux
bzImage is the cannonical way of loading a kernel image, and is simpler
overall. Update the book to refer to the bzImage instead of vmlinux.

BUG=None
TEST=mdbook build

Change-Id: I6309fe9b45e233b84a375c9a413c46dfdec05675
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4091565
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-12-12 02:39:42 +00:00
Alexandre Courbot
cd34ddcff7 docs: book: document how to specify command-line options and configuration files
Document the format and rules for specifying command-line options, and
add a section on how configuration files can also be used.

BUG=b:218223240
TEST=mdbook build

Change-Id: Ieec40315b7ae8212c6a5b60280440abc9a5e92e6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4040820
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-11-24 09:28:57 +00:00
Zihan Chen
3354723907 book: Fix footnote escape from mdformat
Footnote was escaped in last version, now deps contain all mdformat
plugins required to support markdown extensions supported in mdbook

TEST=./tools/health-check, mdbook build docs/book/ --dest-dir ../target
generates html with correct footnote

Change-Id: I0047a7174cf241c5510a84d30349ba64790f5830
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4029524
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Zihan Chen <zihanchen@google.com>
Commit-Queue: Zihan Chen <zihanchen@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-11-16 01:40:29 +00:00
Dennis Kempin
9b8097a8bd book: Add section on testing
Now that we have refactored our tests to be split into unit tests
and integration tests, let's document this.

BUG=None
TEST=None

Change-Id: Ibd12de70d3b201dd964efc1ccd6cb6a6a37c887a
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4024068
Commit-Queue: Zihan Chen <zihanchen@google.com>
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zihan Chen <zihanchen@google.com>
2022-11-15 22:53:20 +00:00
Daniel Verkamp
e7473e600e aarch64: load arm64 kernels at physical address 0
There is no reason to leave an 8 MB gap at the beginning of guest
memory; shift the kernel load address down to the very beginning of
RAM. This accomodates alternate ELF kernels that want to be loaded at
address 0 as well.

BUG=b:254601048
TEST=boot crostini on arm

Change-Id: Iaa58efc5b20046732ef0f75b3c779134a3ee454b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4015002
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-11-15 22:12:04 +00:00
Alexandre Courbot
4671de5ba3 docs: book: update references to deprecated disk and network options
Update mentions to the deprecated `--disk`, `--rwdisk`, `--root`,
`--rwroot` to use the new `--disk`, and to the obsolete network
parameters to use the new `--net` argument.

BUG=b:218223240
BUG=b:246224081
TEST=`mdbook build` in `docs/book` passes.

Change-Id: I942a9e03980a3477d4b87332f5b4cfdfebba814f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3996046
Auto-Submit: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
2022-11-03 20:32:43 +00:00
Daniel Verkamp
8d69b30c14 docs: update book for embedded seccomp
The seccomp policy files are no longer needed at runtime since they are
embedded in the crosvm binary.

BUG=b:235858187
TEST=mdbook build docs/book

Change-Id: Ib8220bce01a21bd3b4a1ef749468e12b18377a62
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3999176
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-11-02 20:32:24 +00:00
Keiichi Watanabe
9867495716 docs: Replace crbug link with issuetracker.google.com
BUG=none
TEST=./tools/fmt

Change-Id: If7a252615f81530df026c5b2659457d4e8ec6be6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3960212
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2022-10-18 06:22:41 +00:00
Gurchetan Singh
9142190652 rutabaga_gfx: allow running context types without 3D component
It's not necessary to build 3D rendering support to run the
cross-domain context type.

Default implementations are added for some hypercalls, since
the guest kernel may still think it's running a KMS display.
That adds log-spam if errors are present.

BUG=b:173630595
TEST=Run weston terminal in the guest

Change-Id: I8155cf9d9867a329927b7dd4bb22c385510966a2
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3961536
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2022-10-18 01:54:59 +00:00
Andrew Walbran
13cbc69abc aarch64: Don't include pVM firmware region in memory size calculation.
The pVM firmware memory region is allocated before
AARCH64_PHYS_MEM_START, but several parts of the code were assuming that
all memory was contiguous and after that.

BUG=b:244553205
TEST=Patched into AOSP and ran some VMs.

Change-Id: I8caefc9cae79c98ea62ee02a506b1b485d3f09a6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3921604
Reviewed-by: Pierre-Clément Tosi <ptosi@google.com>
Commit-Queue: Andrew Walbran <qwandor@google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Jiyong Park <jiyong@google.com>
2022-10-12 17:42:33 +00:00
Junichi Uekawa
3048738d9d crosvm: Add documentation for exit codes.
Use the enum to document the exit code and refer from the rustdoc.

BUG=b:251305451
TEST=mdbook build and observe

Change-Id: Ie75fc40a8301151266af112f275e331f1a49c769
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3935671
Commit-Queue: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2022-10-07 14:00:37 +00:00
Ryuichiro Chiba
d1a1397542 docs: add a vsock document to the book
Add a document which describes how to use the vsock device.

BUG=b:235965219
TEST=`mdformat --wrap 100 --check docs/book/src/SUMMARY.md docs/book/src/devices/vsock.md`
TEST=`mdbook build`

Change-Id: I7c444e84f14f5505a159358f8f5008eb231333f6
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3925333
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
Commit-Queue: Ryuichiro Chiba <chibar@chromium.org>
2022-10-04 03:40:37 +00:00
Tatsuyuki Ishi
8f2ccb3b50 virtio: video: Introduce FFmpeg encoder backend.
The FFmpeg backend is a software emulated video encoder device backend.
It can be used for testing, for developing guest kernel changes and
more.

The backend roughly mirrors how the FFmpeg decoder backend is
implemented right now, with the notable difference that it does not use
swscale as the de-facto input format is NV12 or YUV420 and the guest can
likely provide buffers in that format.

BUG=b:239897269
TEST=See testing instructions in the updated book document.

Change-Id: Iae9928bdad86729f890e738acfa58e21573a115b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3920263
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-09-30 05:36:51 +00:00
Pierre-Clément Tosi
7737c533db gdb: Add basic support for AArch64
Enable the "gdb" feature on AArch64 (KVM) builds and add support for:

 - reading & writing guest memory (only guest IPAs, for now)
 - getting & setting core registers
 - getting & setting the few system registers from kvm_regs
 - setting hardware breakpoints (no software breakpoints, for now)
 - enabling single-step mode

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

Change-Id: I0ae38c1065002d55a569b1575b1637110694e6db
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3785467
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Takaya Saeki <takayas@chromium.org>
2022-09-28 11:25:50 +00:00
Zihan Chen
b233d7d60a crosvm: Embed seccomp filters into binary
Seccomp policy files will now pre-compile to bpf bytecode for
target architecture and embedded in the crosvm binary when not
built for chrome os.
When minijail is not checked out in crosvm tree as a submodule,
MINIJAIL_DIR environment variable needs to be specified for the
policy compiler to run.
Integration tests are now sandbox enabled for better coverage.

TEST=all tests passed, vm runs fine with sandbox on and no separate
policy files present. cros deploy & crostini still works.
BUG=b:235858187
FIXED=b:226975168

Change-Id: Ieaba4b3d7160ccb342a297ebc374894d19a8dc4d
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3824062
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Zihan Chen <zihanchen@google.com>
Commit-Queue: Zihan Chen <zihanchen@google.com>
2022-09-08 21:12:55 +00:00