2019-04-16 17:05:03 +00:00
|
|
|
# This file is automatically @generated by Cargo.
|
|
|
|
# It is not intended for manual editing.
|
2018-02-27 01:27:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "aarch64"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"arch",
|
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"devices",
|
|
|
|
"hypervisor",
|
|
|
|
"kernel_cmdline",
|
|
|
|
"kvm",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
|
|
|
"minijail",
|
|
|
|
"remain",
|
|
|
|
"resources",
|
|
|
|
"sync",
|
|
|
|
"vm_control",
|
|
|
|
"vm_memory",
|
2018-02-27 01:27:40 +00:00
|
|
|
]
|
|
|
|
|
2019-11-01 07:18:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "acpi_tables"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"data_model",
|
|
|
|
"tempfile",
|
2019-11-01 07:18:13 +00:00
|
|
|
]
|
|
|
|
|
2020-07-16 14:15:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "android_log-sys"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e"
|
2020-07-16 14:15:35 +00:00
|
|
|
|
2020-11-10 17:34:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "anyhow"
|
|
|
|
version = "1.0.35"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"
|
|
|
|
|
2018-02-14 06:09:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "arch"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"acpi_tables",
|
|
|
|
"base",
|
|
|
|
"devices",
|
|
|
|
"gdbstub",
|
|
|
|
"hypervisor",
|
|
|
|
"kernel_cmdline",
|
|
|
|
"libc",
|
|
|
|
"minijail",
|
|
|
|
"msg_socket",
|
2020-11-10 09:24:04 +00:00
|
|
|
"power_monitor",
|
2020-12-01 00:37:50 +00:00
|
|
|
"resources",
|
|
|
|
"sync",
|
|
|
|
"vm_control",
|
|
|
|
"vm_memory",
|
2018-02-14 06:09:43 +00:00
|
|
|
]
|
|
|
|
|
2018-12-07 19:32:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "assertions"
|
|
|
|
version = "0.1.0"
|
|
|
|
|
2020-12-03 15:20:39 +00:00
|
|
|
[[package]]
|
|
|
|
name = "async-task"
|
|
|
|
version = "4.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
|
|
|
|
|
2020-06-27 00:54:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "async-trait"
|
|
|
|
version = "0.1.36"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92"
|
2020-06-27 00:54:02 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2020-06-27 00:54:02 +00:00
|
|
|
]
|
|
|
|
|
2018-12-06 19:47:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "audio_streams"
|
|
|
|
version = "0.1.0"
|
2020-02-10 18:56:13 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"sync",
|
|
|
|
"sys_util",
|
2020-02-10 18:56:13 +00:00
|
|
|
]
|
2018-12-06 19:47:18 +00:00
|
|
|
|
2020-11-11 10:47:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "autocfg"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
|
2020-11-11 10:47:37 +00:00
|
|
|
|
2020-08-03 03:09:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "base"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"cros_async",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"sync",
|
|
|
|
"sys_util",
|
2020-08-03 03:09:41 +00:00
|
|
|
]
|
|
|
|
|
2018-05-22 18:22:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bit_field"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"bit_field_derive",
|
2018-05-22 18:22:13 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bit_field_derive"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2018-05-22 18:22:13 +00:00
|
|
|
]
|
|
|
|
|
2019-07-17 01:48:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
2021-02-17 21:38:15 +00:00
|
|
|
version = "1.2.1"
|
2019-07-17 01:48:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-17 21:38:15 +00:00
|
|
|
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
2019-07-17 01:48:02 +00:00
|
|
|
|
2018-05-18 18:33:19 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cc"
|
2019-01-18 12:00:36 +00:00
|
|
|
version = "1.0.25"
|
2018-05-18 18:33:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
|
2018-05-18 18:33:19 +00:00
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cfg-if"
|
2020-10-26 07:58:55 +00:00
|
|
|
version = "0.1.10"
|
2018-01-17 01:35:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
2018-01-17 01:35:27 +00:00
|
|
|
|
2019-01-22 07:22:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cras-sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"audio_streams",
|
|
|
|
"data_model",
|
2019-01-22 07:22:25 +00:00
|
|
|
]
|
|
|
|
|
2020-01-13 09:59:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cros_async"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-03 15:20:39 +00:00
|
|
|
"async-task",
|
2020-12-01 00:37:50 +00:00
|
|
|
"async-trait",
|
|
|
|
"futures",
|
|
|
|
"io_uring",
|
|
|
|
"libc",
|
|
|
|
"paste",
|
|
|
|
"pin-utils",
|
|
|
|
"slab",
|
2020-12-03 15:20:39 +00:00
|
|
|
"sync",
|
2020-12-01 00:37:50 +00:00
|
|
|
"sys_util",
|
|
|
|
"syscall_defines",
|
|
|
|
"thiserror",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
2017-11-09 01:33:46 +00:00
|
|
|
[[package]]
|
2017-09-20 00:48:41 +00:00
|
|
|
name = "crosvm"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"aarch64",
|
|
|
|
"acpi_tables",
|
|
|
|
"arch",
|
|
|
|
"assertions",
|
|
|
|
"audio_streams",
|
|
|
|
"base",
|
|
|
|
"bit_field",
|
|
|
|
"crosvm_plugin",
|
|
|
|
"data_model",
|
|
|
|
"devices",
|
|
|
|
"disk",
|
|
|
|
"enumn",
|
|
|
|
"gdbstub",
|
|
|
|
"hypervisor",
|
|
|
|
"kernel_cmdline",
|
|
|
|
"kernel_loader",
|
|
|
|
"kvm",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
|
|
|
"libcras",
|
|
|
|
"minijail",
|
|
|
|
"msg_socket",
|
|
|
|
"net_util",
|
|
|
|
"p9",
|
|
|
|
"protobuf",
|
|
|
|
"protos",
|
|
|
|
"rand_ish",
|
|
|
|
"remain",
|
|
|
|
"resources",
|
rutabaga_gfx: an electrifying possibility
rutabaga_gfx is a cross platform, Rust-based, Wayland and
Vulkan-centric Virtual Graphics Interface (VGI).
Apologies for the mega-change, but it was hard to do this piece
by piece.
The rationale for this change is:
1) Android graphics virtualization experts have been proposing
for a VGI for many months (years?). Their goal is to boot
Android anywhere, everywhere.
2) For the {wayland, cross-domain} context type prototype,
it's desirable to create a {wayland, camera} connection at the
appropriate time. Details can be found in the code, though the
RutabagaChannels have yet to be hooked up.
There's a high chance neither effort will work. As such,
rutabaga is just a prototype.
However, even (1) and (2) don't end up working, this
refactor/cleanup by itself makes a ton of sense.
Here's a summary of revelant changes:
* Removed auto-generated {p_defines, p_format, virgl_protocol}.
These files were added for tests when bringing up crosvm-gpu,
and AFAICT these tests are not run. There's actually now a
commit queue for virglrenderer changes and container boot tests
that provides excellent coverage.
* Removed command_buffer.rs. Used only for the previously
mentioned tests. It's quite nice, but couldn't determine the right
place to put it. Maybe data_model? But removed it in the interim.
* Removed {write_from_guest_memory, read_to_volatile}. The same
basic functionality has been moved into {transfer_write,
transfer_read} in Rutabaga.
* Removed VirtioResource, Virtio3DResource, Virtio2DResource,
and VirtioGfxStreamResource in favor of VirtioGpuResource and
RutabagaResource. This leads to less duplication and clearer
separation between external library functions and VMM functions.
* Moved display and hypervisor memory management functions to
virtio_gpu.rs. This is because external components do not interface
with this functionality, and there was a lot of duplication (for example
map/unmap blob).
* Added context management between gfxstream and virglrenderer.
* Added separate gfxstream and virglrenderer flags.
* Clearer naming.
* Added simple implementations for context init and multiple timelines.
These changes have no effect since all Google kernels don't pass the
revelant flags, but are useful for theoretical {wayland, cross-domain}
prototype.
* Unify RESOURCE_CREATE_3D and RESOURCE_CREATE_2D handling.
* Better error handling.
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=boot ARCVM
Change-Id: I240b0c134a3b562cbc65981837a41f6db7767c92
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2522452
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Zach Reizner <zachr@chromium.org>
2020-10-20 01:31:13 +00:00
|
|
|
"rutabaga_gfx",
|
2020-12-01 00:37:50 +00:00
|
|
|
"sync",
|
|
|
|
"tempfile",
|
|
|
|
"thiserror",
|
|
|
|
"vhost",
|
|
|
|
"vm_control",
|
|
|
|
"vm_memory",
|
|
|
|
"x86_64",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
2018-01-17 01:44:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crosvm_plugin"
|
2019-01-18 00:20:33 +00:00
|
|
|
version = "0.17.0"
|
2018-01-17 01:44:54 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"kvm",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
|
|
|
"protobuf",
|
|
|
|
"protos",
|
2018-01-17 01:44:54 +00:00
|
|
|
]
|
|
|
|
|
2017-09-20 00:48:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "data_model"
|
|
|
|
version = "0.1.0"
|
2018-12-07 19:32:09 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"assertions",
|
|
|
|
"libc",
|
2018-12-07 19:32:09 +00:00
|
|
|
]
|
2017-09-20 00:48:41 +00:00
|
|
|
|
2020-11-10 09:24:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dbus"
|
|
|
|
version = "0.6.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"libdbus-sys",
|
|
|
|
]
|
|
|
|
|
2017-10-06 22:26:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "devices"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"acpi_tables",
|
|
|
|
"audio_streams",
|
|
|
|
"base",
|
|
|
|
"bit_field",
|
|
|
|
"cros_async",
|
|
|
|
"data_model",
|
|
|
|
"disk",
|
|
|
|
"enumn",
|
|
|
|
"fuse",
|
2020-01-09 07:14:08 +00:00
|
|
|
"futures",
|
2020-12-01 00:37:50 +00:00
|
|
|
"gpu_display",
|
|
|
|
"hypervisor",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
devices: Add an asynchronous block device
This enables the use of basic disk images with async IO. A new
block_async.rs is added which mostly mirrors block, except that all
IO operations are asynchronous allowing for multiple virt queues to be
used.
The old block remains unchanged and is still used for qcow, android
sparse, and composite disks. Those should be converted to as time
allows, but this dual approach will have to do for now so ARCVM disk
performance can be properly evaluated.
fio --ioengine=libaio --randrepeat=1 --direct=1 --gtod_reduce=1
--name=test --filename=test --bs=4k --iodepth=64 --size=4G
--readwrite=randrw --rwmixread=75
desktop with nvme:
before:
READ: bw=36.2MiB/s (37.9MB/s), 36.2MiB/s-36.2MiB/s (37.9MB/s-37.9MB/s),
io=3070MiB (3219MB), run=84871-84871msec
WRITE: bw=12.1MiB/s (12.7MB/s), 12.1MiB/s-12.1MiB/s (12.7MB/s-12.7MB/s),
io=1026MiB (1076MB), run=84871-84871msec
after:
READ: bw=257MiB/s (269MB/s), 257MiB/s-257MiB/s (269MB/s-269MB/s),
io=3070MiB (3219MB), run=11964-11964msec
WRITE: bw=85.8MiB/s (89.9MB/s), 85.8MiB/s-85.8MiB/s (89.9MB/s-89.9MB/s),
io=1026MiB (1076MB), run=11964-11964msec
samus with 5.6 kernel
before:
READ: bw=55.3MiB/s (57.9MB/s), 55.3MiB/s-55.3MiB/s (57.9MB/s-57.9MB/s),
io=768MiB (805MB), run=13890-13890msec
WRITE: bw=18.5MiB/s (19.4MB/s), 18.5MiB/s-18.5MiB/s (19.4MB/s-19.4MB/s),
io=256MiB (269MB), run=13890-13890msec
after:
READ: bw=71.2MiB/s (74.7MB/s), 71.2MiB/s-71.2MiB/s (74.7MB/s-74.7MB/s),
io=3070MiB (3219MB), run=43096-43096msec
WRITE: bw=23.8MiB/s (24.0MB/s), 23.8MiB/s-23.8MiB/s (24.0MB/s-24.0MB/s),
io=1026MiB (1076MB), run=43096-43096msec
kevin with 5.6 kernel
before:
READ: bw=12.9MiB/s (13.5MB/s), 12.9MiB/s-12.9MiB/s (13.5MB/s-13.5MB/s),
io=1534MiB (1609MB), run=118963-118963msec
WRITE: bw=4424KiB/s (4530kB/s), 4424KiB/s-4424KiB/s (4530kB/s-4530kB/s),
io=514MiB (539MB), run=118963-118963msec
after:
READ: bw=12.9MiB/s (13.5MB/s), 12.9MiB/s-12.9MiB/s (13.5MB/s-13.5MB/s),
io=1534MiB (1609MB), run=119364-119364msec
WRITE: bw=4409KiB/s (4515kB/s), 4409KiB/s-4409KiB/s (4515kB/s-4515kB/s),
io=514MiB (539MB), run=119364-119364msec
eve with nvme and 5.7 kernel
before:
READ: bw=49.4MiB/s (51.8MB/s), 49.4MiB/s-49.4MiB/s (51.8MB/s-51.8MB/s),
io=3070MiB
(3219MB), run=62195-62195msec
WRITE: bw=16.5MiB/s (17.3MB/s), 16.5MiB/s-16.5MiB/s (17.3MB/s-17.3MB/s),
io=1026MiB
(1076MB), run=62195-62195msec
after
READ: bw=125MiB/s (131MB/s), 125MiB/s-125MiB/s (131MB/s-131MB/s),
io=3070MiB (3219MB), run=24593-24593msec
WRITE: bw=41.7MiB/s (43.7MB/s), 41.7MiB/s-41.7MiB/s
(43.7MB/s-43.7MB/s), io=1026MiB (1076MB), run=24593-24593msec
rammus with 5.10 kernel
before:
READ: bw=6927KiB/s (7093kB/s), 6927KiB/s-6927KiB/s (7093kB/s-7093kB/s),
io=3070MiB (3219MB), run=453822-453822msec
WRITE: bw=2315KiB/s (2371kB/s), 2315KiB/s-2315KiB/s (2371kB/s-2371kB/s),
io=1026MiB (1076MB), run=453822-453822msec
after:
Run status group 0 (all jobs):
READ: bw=10.0MiB/s (11.5MB/s), 10.0MiB/s-10.0MiB/s (11.5MB/s-11.5MB/s),
io=3070MiB (3219MB), run=279111-279111msec
WRITE: bw=3764KiB/s (3855kB/s), 3764KiB/s-3764KiB/s (3855kB/s-3855kB/s),
io=1026MiB (1076MB), run=279111-279111msec
BUG=chromium:901139
TEST=unitests
TEST=boot a test image and run fio tests from the guest to measure speed.
TEST=start ARCVM
TEST=tast run $DUT crostini.ResizeOk.dlc_stretch_stable
Change-Id: Idb63628871d0352bd18501a69d9c1c887c37607b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2306786
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2020-07-17 18:20:07 +00:00
|
|
|
"libchromeos",
|
2020-12-01 00:37:50 +00:00
|
|
|
"libcras",
|
|
|
|
"libvda",
|
|
|
|
"linux_input_sys",
|
|
|
|
"minijail",
|
|
|
|
"msg_on_socket_derive",
|
|
|
|
"msg_socket",
|
|
|
|
"net_sys",
|
|
|
|
"net_util",
|
|
|
|
"p9",
|
2020-11-10 09:24:04 +00:00
|
|
|
"power_monitor",
|
2020-12-01 00:37:50 +00:00
|
|
|
"protos",
|
|
|
|
"rand_ish",
|
|
|
|
"remain",
|
|
|
|
"resources",
|
rutabaga_gfx: an electrifying possibility
rutabaga_gfx is a cross platform, Rust-based, Wayland and
Vulkan-centric Virtual Graphics Interface (VGI).
Apologies for the mega-change, but it was hard to do this piece
by piece.
The rationale for this change is:
1) Android graphics virtualization experts have been proposing
for a VGI for many months (years?). Their goal is to boot
Android anywhere, everywhere.
2) For the {wayland, cross-domain} context type prototype,
it's desirable to create a {wayland, camera} connection at the
appropriate time. Details can be found in the code, though the
RutabagaChannels have yet to be hooked up.
There's a high chance neither effort will work. As such,
rutabaga is just a prototype.
However, even (1) and (2) don't end up working, this
refactor/cleanup by itself makes a ton of sense.
Here's a summary of revelant changes:
* Removed auto-generated {p_defines, p_format, virgl_protocol}.
These files were added for tests when bringing up crosvm-gpu,
and AFAICT these tests are not run. There's actually now a
commit queue for virglrenderer changes and container boot tests
that provides excellent coverage.
* Removed command_buffer.rs. Used only for the previously
mentioned tests. It's quite nice, but couldn't determine the right
place to put it. Maybe data_model? But removed it in the interim.
* Removed {write_from_guest_memory, read_to_volatile}. The same
basic functionality has been moved into {transfer_write,
transfer_read} in Rutabaga.
* Removed VirtioResource, Virtio3DResource, Virtio2DResource,
and VirtioGfxStreamResource in favor of VirtioGpuResource and
RutabagaResource. This leads to less duplication and clearer
separation between external library functions and VMM functions.
* Moved display and hypervisor memory management functions to
virtio_gpu.rs. This is because external components do not interface
with this functionality, and there was a lot of duplication (for example
map/unmap blob).
* Added context management between gfxstream and virglrenderer.
* Added separate gfxstream and virglrenderer flags.
* Clearer naming.
* Added simple implementations for context init and multiple timelines.
These changes have no effect since all Google kernels don't pass the
revelant flags, but are useful for theoretical {wayland, cross-domain}
prototype.
* Unify RESOURCE_CREATE_3D and RESOURCE_CREATE_2D handling.
* Better error handling.
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=boot ARCVM
Change-Id: I240b0c134a3b562cbc65981837a41f6db7767c92
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2522452
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Zach Reizner <zachr@chromium.org>
2020-10-20 01:31:13 +00:00
|
|
|
"rutabaga_gfx",
|
2020-12-01 00:37:50 +00:00
|
|
|
"sync",
|
2020-12-03 02:25:53 +00:00
|
|
|
"sys_util",
|
2020-12-01 00:37:50 +00:00
|
|
|
"syscall_defines",
|
|
|
|
"tempfile",
|
2020-12-03 02:25:53 +00:00
|
|
|
"thiserror",
|
2020-12-01 00:37:50 +00:00
|
|
|
"tpm2",
|
|
|
|
"usb_util",
|
|
|
|
"vfio_sys",
|
|
|
|
"vhost",
|
|
|
|
"virtio_sys",
|
|
|
|
"vm_control",
|
|
|
|
"vm_memory",
|
2017-10-06 22:26:46 +00:00
|
|
|
]
|
|
|
|
|
2019-07-02 23:54:05 +00:00
|
|
|
[[package]]
|
|
|
|
name = "disk"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"async-trait",
|
|
|
|
"base",
|
|
|
|
"cros_async",
|
|
|
|
"data_model",
|
|
|
|
"futures",
|
|
|
|
"libc",
|
|
|
|
"protobuf",
|
|
|
|
"protos",
|
|
|
|
"remain",
|
|
|
|
"tempfile",
|
|
|
|
"vm_memory",
|
2019-07-02 23:54:05 +00:00
|
|
|
]
|
|
|
|
|
2020-09-29 23:00:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "downcast-rs"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
|
2020-09-29 23:00:24 +00:00
|
|
|
|
2019-01-16 00:23:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "enumn"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2020-10-08 20:13:32 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fuse"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"bitflags",
|
|
|
|
"data_model",
|
|
|
|
"enumn",
|
|
|
|
"libc",
|
|
|
|
"thiserror",
|
2019-01-16 00:23:48 +00:00
|
|
|
]
|
|
|
|
|
2020-01-13 09:59:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "b6f16056ecbb57525ff698bb955162d0cd03bee84e6241c27ff75c08d8ca5987"
|
2020-01-13 09:59:25 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"futures-channel",
|
|
|
|
"futures-core",
|
|
|
|
"futures-executor",
|
|
|
|
"futures-io",
|
|
|
|
"futures-sink",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-channel"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86"
|
2020-01-13 09:59:25 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"futures-core",
|
|
|
|
"futures-sink",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-core"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-executor"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "1e274736563f686a837a0568b478bdabfeaec2dca794b5649b04e2fe1627c231"
|
2020-01-13 09:59:25 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"futures-core",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-io"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "e676577d229e70952ab25f3945795ba5b16d63ca794ca9d2c860e5595d20b5ff"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-macro"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "52e7c56c15537adb4f76d0b7a76ad131cb4d2f4f32d3b0bcabcbe1c7c5e87764"
|
2020-01-13 09:59:25 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro-hack",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-sink"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "171be33efae63c2d59e6dbba34186fe0d6394fb378069a76dfd80fdcffd43c16"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-task"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-util"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76"
|
2020-01-13 09:59:25 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"futures-channel",
|
|
|
|
"futures-core",
|
|
|
|
"futures-io",
|
|
|
|
"futures-macro",
|
|
|
|
"futures-sink",
|
|
|
|
"futures-task",
|
|
|
|
"memchr",
|
|
|
|
"pin-utils",
|
|
|
|
"proc-macro-hack",
|
|
|
|
"proc-macro-nested",
|
|
|
|
"slab",
|
2020-01-13 09:59:25 +00:00
|
|
|
]
|
|
|
|
|
2020-10-21 06:57:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "gdbstub"
|
2021-02-17 21:38:15 +00:00
|
|
|
version = "0.4.2"
|
2020-10-21 06:57:33 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-17 21:38:15 +00:00
|
|
|
checksum = "224c17cf54ffe7e084343f25c7f2881a399bea69862ecaf5bc97f0f6586ba0dc"
|
2020-10-21 06:57:33 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"cfg-if",
|
|
|
|
"log",
|
|
|
|
"managed",
|
|
|
|
"num-traits",
|
|
|
|
"paste",
|
2020-10-21 06:57:33 +00:00
|
|
|
]
|
|
|
|
|
2018-06-23 02:00:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "getopts"
|
2019-01-18 12:00:36 +00:00
|
|
|
version = "0.2.18"
|
2018-06-23 02:00:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
|
2019-01-18 12:00:36 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"unicode-width",
|
2019-01-18 12:00:36 +00:00
|
|
|
]
|
2018-06-23 02:00:30 +00:00
|
|
|
|
2018-05-03 20:19:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "gpu_display"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"cc",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"linux_input_sys",
|
2018-05-03 20:19:37 +00:00
|
|
|
]
|
|
|
|
|
2020-04-30 22:48:47 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hypervisor"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"bit_field",
|
|
|
|
"data_model",
|
|
|
|
"downcast-rs",
|
|
|
|
"enumn",
|
|
|
|
"kvm",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
|
|
|
"msg_socket",
|
|
|
|
"sync",
|
|
|
|
"vm_memory",
|
2020-04-30 22:48:47 +00:00
|
|
|
]
|
|
|
|
|
2020-11-10 17:34:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "integration_tests"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
|
|
|
"anyhow",
|
|
|
|
"arch",
|
|
|
|
"base",
|
|
|
|
"crosvm",
|
|
|
|
"libc",
|
|
|
|
"tempfile",
|
|
|
|
]
|
|
|
|
|
2020-11-11 10:47:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "intrusive-collections"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "4bca8c0bb831cd60d4dda79a58e3705ca6eb47efb65d665651a8d672213ec3db"
|
2020-11-11 10:47:37 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"memoffset",
|
2020-11-11 10:47:37 +00:00
|
|
|
]
|
|
|
|
|
2020-06-02 20:22:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "io_uring"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-03 09:18:20 +00:00
|
|
|
"data_model",
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
2021-01-18 08:08:16 +00:00
|
|
|
"sync",
|
2020-12-01 00:37:50 +00:00
|
|
|
"sys_util",
|
|
|
|
"syscall_defines",
|
2020-06-02 20:22:16 +00:00
|
|
|
]
|
|
|
|
|
2018-02-02 01:49:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "kernel_cmdline"
|
|
|
|
version = "0.1.0"
|
2017-09-20 00:48:41 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "kernel_loader"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"libc",
|
|
|
|
"tempfile",
|
|
|
|
"vm_memory",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "kvm"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"kvm_sys",
|
|
|
|
"libc",
|
|
|
|
"msg_socket",
|
|
|
|
"sync",
|
|
|
|
"vm_memory",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "kvm_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "libc"
|
rutabaga_gfx: rutabaga_gralloc: a shimmering beacon of hope
rutabaga_gralloc is a cross-platform, Rust-based buffer
manager.
The rationale for this change is:
1) For the {cross-domain, wayland} context type, we need to
have a good story for the crucial "wl-dmabuf" feature. As
minigbm has been thoroughly tested on ChromeOS and currently
powers the "wl-dmabuf" feature, it only makes sense for us to
have a path to minigbm for the cross-domain prototype. This
will be used by Sommelier.
2) While minigbm allocation works well on Chromebooks, it is
not sufficient for cross-platform purposes. For their Virtual
Graphics Interface (VGI) initiative, Android graphics
virtualization experts have expressed their desire for a Vulkan
based allocator. This will to go alongside cros_gralloc in
minigbm, which is considered by many to be the ""world's
premiere gralloc implementation".
3) Android graphics virtualization experts have expressed their
desire for vkMapMemory(..) to be used when crosvm is in
multi-process mode. Currently, only dma-buf mmap() is supported
for zero-copy blobs in multi-process mode. dma-buf mmap() is not
guaranteed to work on Nvidia (a "must have" for Cuttlefish) or
any other driver for that matter (we *make* it work for ChromeOS).
Possibly only solution: vkMapMemory ;-)
With these goals in mind, here's a summary of the revelant changes:
* Renamed the {gpu_allocator.rs, GpuMemoryAllocator trait} to be
{gralloc.rs, Gralloc trait}.
* Moved all GPU allocation out of the resources crate and into
the rutabaga_gfx crate. This will allow the resources crate to
be focused on managing resources for virtual machines.
* Moved the gpu_buffer crate into the gralloc module in the
rutabaga_gfx crate. The same functionality is now under
"minigbm.rs", "minigbm_bindings.rs" and "rendernode.rs"
* Added an optional dependency on vulkano.rs. vulkano.rs is a safe
Rust wrapper around the Vulkan api [a]. It's emphasis on type
safety makes a good fit for crosvm, though there are other high
quality crates out there (gfx-rs, ash.rs). Though development
has slowed down, it should satisfy goals (2) and (3) quite easily.
* Added a system_gralloc implementation based on memfd. This can be
used when minigbm or Vulkano features are not used, to replicate the
highly useful "wl-shm" feature in Sommelier. Astute observers will
note this can also enable seamless Wayland windowing without GPU
features for Android too. Some minor changes to the base crate were
needed.
* Cut down on the amount of DrmFormats to the subset needed by
Sommelier and cros_gralloc.
* Moved checked arithmetic into it's own file.
* Internally renamed to "wl-dmabuf" feature to be the "minigbm"
feature. This is because "wl-dmabuf" has a dependency on minigbm.
* Small rutabaga_gfx cleanups
[a] https://github.com/vulkano-rs/vulkano/blob/master/DESIGN.md
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=run sommelier with "wl-dmabuf" and "wl-shm"
Change-Id: I693a39cef64cd98e56d843d3c60caa7983d4d6e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2626487
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2020-12-09 18:44:13 +00:00
|
|
|
version = "0.2.81"
|
2017-09-20 00:48:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
rutabaga_gfx: rutabaga_gralloc: a shimmering beacon of hope
rutabaga_gralloc is a cross-platform, Rust-based buffer
manager.
The rationale for this change is:
1) For the {cross-domain, wayland} context type, we need to
have a good story for the crucial "wl-dmabuf" feature. As
minigbm has been thoroughly tested on ChromeOS and currently
powers the "wl-dmabuf" feature, it only makes sense for us to
have a path to minigbm for the cross-domain prototype. This
will be used by Sommelier.
2) While minigbm allocation works well on Chromebooks, it is
not sufficient for cross-platform purposes. For their Virtual
Graphics Interface (VGI) initiative, Android graphics
virtualization experts have expressed their desire for a Vulkan
based allocator. This will to go alongside cros_gralloc in
minigbm, which is considered by many to be the ""world's
premiere gralloc implementation".
3) Android graphics virtualization experts have expressed their
desire for vkMapMemory(..) to be used when crosvm is in
multi-process mode. Currently, only dma-buf mmap() is supported
for zero-copy blobs in multi-process mode. dma-buf mmap() is not
guaranteed to work on Nvidia (a "must have" for Cuttlefish) or
any other driver for that matter (we *make* it work for ChromeOS).
Possibly only solution: vkMapMemory ;-)
With these goals in mind, here's a summary of the revelant changes:
* Renamed the {gpu_allocator.rs, GpuMemoryAllocator trait} to be
{gralloc.rs, Gralloc trait}.
* Moved all GPU allocation out of the resources crate and into
the rutabaga_gfx crate. This will allow the resources crate to
be focused on managing resources for virtual machines.
* Moved the gpu_buffer crate into the gralloc module in the
rutabaga_gfx crate. The same functionality is now under
"minigbm.rs", "minigbm_bindings.rs" and "rendernode.rs"
* Added an optional dependency on vulkano.rs. vulkano.rs is a safe
Rust wrapper around the Vulkan api [a]. It's emphasis on type
safety makes a good fit for crosvm, though there are other high
quality crates out there (gfx-rs, ash.rs). Though development
has slowed down, it should satisfy goals (2) and (3) quite easily.
* Added a system_gralloc implementation based on memfd. This can be
used when minigbm or Vulkano features are not used, to replicate the
highly useful "wl-shm" feature in Sommelier. Astute observers will
note this can also enable seamless Wayland windowing without GPU
features for Android too. Some minor changes to the base crate were
needed.
* Cut down on the amount of DrmFormats to the subset needed by
Sommelier and cros_gralloc.
* Moved checked arithmetic into it's own file.
* Internally renamed to "wl-dmabuf" feature to be the "minigbm"
feature. This is because "wl-dmabuf" has a dependency on minigbm.
* Small rutabaga_gfx cleanups
[a] https://github.com/vulkano-rs/vulkano/blob/master/DESIGN.md
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=run sommelier with "wl-dmabuf" and "wl-shm"
Change-Id: I693a39cef64cd98e56d843d3c60caa7983d4d6e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2626487
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2020-12-09 18:44:13 +00:00
|
|
|
checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
|
2017-09-20 00:48:41 +00:00
|
|
|
|
2020-11-11 10:47:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libchromeos"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"data_model",
|
|
|
|
"futures",
|
|
|
|
"intrusive-collections",
|
|
|
|
"libc",
|
|
|
|
"log",
|
|
|
|
"protobuf",
|
2021-01-27 00:14:41 +00:00
|
|
|
"thiserror",
|
2020-11-11 10:47:37 +00:00
|
|
|
]
|
|
|
|
|
2019-01-22 07:22:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libcras"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"audio_streams",
|
|
|
|
"cras-sys",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"sys_util",
|
2019-01-22 07:22:25 +00:00
|
|
|
]
|
|
|
|
|
2020-11-10 09:24:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libdbus-sys"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dc12a3bc971424edbbf7edaf6e5740483444db63aa8e23d3751ff12a30f306f0"
|
|
|
|
dependencies = [
|
|
|
|
"pkg-config",
|
|
|
|
]
|
|
|
|
|
2019-12-06 13:24:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libvda"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"enumn",
|
|
|
|
"libc",
|
|
|
|
"pkg-config",
|
2019-12-06 13:24:40 +00:00
|
|
|
]
|
|
|
|
|
2019-12-17 18:07:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "linux_input_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
2019-12-17 18:07:11 +00:00
|
|
|
]
|
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "log"
|
2019-01-18 12:00:36 +00:00
|
|
|
version = "0.4.5"
|
2018-01-17 01:35:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f"
|
2018-01-17 01:35:27 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"cfg-if",
|
2018-01-17 01:35:27 +00:00
|
|
|
]
|
|
|
|
|
2020-10-21 06:57:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "managed"
|
|
|
|
version = "0.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d"
|
2020-10-21 06:57:33 +00:00
|
|
|
|
2020-01-13 09:59:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "memchr"
|
|
|
|
version = "2.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
2020-11-11 10:47:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "memoffset"
|
|
|
|
version = "0.5.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
|
2020-11-11 10:47:37 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"autocfg",
|
2020-11-11 10:47:37 +00:00
|
|
|
]
|
|
|
|
|
2020-06-26 19:01:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "minijail"
|
2020-07-23 14:42:46 +00:00
|
|
|
version = "0.2.1"
|
2020-06-26 19:01:54 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
|
|
|
"minijail-sys",
|
2020-06-26 19:01:54 +00:00
|
|
|
]
|
|
|
|
|
2020-02-18 18:31:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "minijail-sys"
|
|
|
|
version = "0.0.11"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
|
|
|
"pkg-config",
|
2020-02-18 18:31:20 +00:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:41:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "msg_on_socket_derive"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2018-09-27 17:41:11 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "msg_socket"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"cros_async",
|
|
|
|
"data_model",
|
|
|
|
"futures",
|
|
|
|
"libc",
|
|
|
|
"msg_on_socket_derive",
|
|
|
|
"sync",
|
2018-09-27 17:41:11 +00:00
|
|
|
]
|
|
|
|
|
2017-09-20 00:48:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "net_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "net_util"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"net_sys",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
2020-10-21 06:57:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
|
|
|
version = "0.2.12"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
|
2020-10-21 06:57:33 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"autocfg",
|
2020-10-21 06:57:33 +00:00
|
|
|
]
|
|
|
|
|
2018-12-20 19:49:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num_cpus"
|
|
|
|
version = "1.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
|
2018-12-20 19:49:46 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
2018-12-20 19:49:46 +00:00
|
|
|
]
|
|
|
|
|
2018-03-19 23:49:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "p9"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
|
|
|
"libchromeos",
|
|
|
|
"wire_format_derive",
|
2018-03-19 23:49:53 +00:00
|
|
|
]
|
|
|
|
|
2020-01-13 09:59:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "paste"
|
2020-10-26 07:58:55 +00:00
|
|
|
version = "1.0.2"
|
2020-01-13 09:59:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "ba7ae1a2180ed02ddfdb5ab70c70d596a26dd642e097bb6fe78b1bde8588ed97"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pin-utils"
|
|
|
|
version = "0.1.0-alpha.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
2018-11-02 07:27:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pkg-config"
|
2020-12-03 18:00:47 +00:00
|
|
|
version = "0.3.19"
|
2018-11-02 07:27:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-03 18:00:47 +00:00
|
|
|
checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
|
2018-11-02 07:27:48 +00:00
|
|
|
|
2018-02-28 06:22:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "poll_token_derive"
|
|
|
|
version = "0.1.0"
|
2018-12-06 04:36:49 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2018-12-06 04:36:49 +00:00
|
|
|
]
|
2018-02-28 06:22:35 +00:00
|
|
|
|
2020-11-10 09:24:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "power_monitor"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
|
|
|
"base",
|
|
|
|
"dbus",
|
|
|
|
"protobuf",
|
|
|
|
"protoc-rust",
|
|
|
|
]
|
|
|
|
|
2018-03-19 23:49:53 +00:00
|
|
|
[[package]]
|
2020-01-13 09:59:25 +00:00
|
|
|
name = "proc-macro-hack"
|
|
|
|
version = "0.5.11"
|
2018-03-19 23:49:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
|
2018-03-19 23:49:53 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2018-03-19 23:49:53 +00:00
|
|
|
]
|
|
|
|
|
2020-01-13 09:59:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-nested"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
|
2020-01-13 09:59:25 +00:00
|
|
|
|
2020-01-28 20:31:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro2"
|
2021-02-17 21:38:15 +00:00
|
|
|
version = "1.0.24"
|
2020-01-28 20:31:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-17 21:38:15 +00:00
|
|
|
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
|
2020-01-28 20:31:15 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"unicode-xid",
|
2020-01-28 20:31:15 +00:00
|
|
|
]
|
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "protobuf"
|
2019-10-18 21:18:59 +00:00
|
|
|
version = "2.8.1"
|
2018-01-17 01:35:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "40361836defdd5871ff7e84096c6f6444af7fc157f8ef1789f54f147687caa20"
|
2018-01-17 01:35:27 +00:00
|
|
|
|
2019-04-11 00:59:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "protobuf-codegen"
|
2019-10-18 21:18:59 +00:00
|
|
|
version = "2.8.1"
|
2019-04-11 00:59:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "12c6abd78435445fc86898ebbd0521a68438063d4a73e23527b7134e6bf58b4a"
|
2019-04-11 00:59:15 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"protobuf",
|
2019-04-11 00:59:15 +00:00
|
|
|
]
|
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "protoc"
|
2019-10-18 21:18:59 +00:00
|
|
|
version = "2.8.1"
|
2018-01-17 01:35:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "3998c4bc0af8ccbd3cc68245ee9f72663c5ae2fb78bc48ff7719aef11562edea"
|
2018-01-17 01:35:27 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"log",
|
2018-01-17 01:35:27 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "protoc-rust"
|
2019-10-18 21:18:59 +00:00
|
|
|
version = "2.8.1"
|
2018-01-17 01:35:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "234c97039c32bb58a883d0deafa57db37e59428ce536f3bdfe1c46cffec04113"
|
2018-01-17 01:35:27 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"protobuf",
|
|
|
|
"protobuf-codegen",
|
|
|
|
"protoc",
|
|
|
|
"tempfile",
|
2018-01-17 01:35:27 +00:00
|
|
|
]
|
|
|
|
|
2019-04-05 18:56:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "protos"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"kvm_sys",
|
|
|
|
"protobuf",
|
|
|
|
"protoc-rust",
|
2019-04-05 18:56:44 +00:00
|
|
|
]
|
|
|
|
|
2018-01-18 21:39:51 +00:00
|
|
|
[[package]]
|
|
|
|
name = "qcow_utils"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"disk",
|
|
|
|
"getopts",
|
|
|
|
"libc",
|
2018-01-18 21:39:51 +00:00
|
|
|
]
|
|
|
|
|
2020-01-28 20:31:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
|
2020-01-28 20:31:15 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
2020-01-28 20:31:15 +00:00
|
|
|
]
|
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
2019-01-14 22:19:04 +00:00
|
|
|
name = "rand_ish"
|
|
|
|
version = "0.1.0"
|
2018-01-17 01:35:27 +00:00
|
|
|
|
2019-03-11 19:36:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "remain"
|
2020-01-13 09:59:25 +00:00
|
|
|
version = "0.2.1"
|
2019-03-11 19:36:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "99c861227fc40c8da6fdaa3d58144ac84c0537080a43eb1d7d45c28f88dcb888"
|
2019-03-11 19:36:30 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2019-03-11 19:36:30 +00:00
|
|
|
]
|
2018-11-21 19:06:18 +00:00
|
|
|
|
2018-05-23 19:59:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "resources"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"libc",
|
|
|
|
"msg_socket",
|
2018-05-23 19:59:11 +00:00
|
|
|
]
|
|
|
|
|
rutabaga_gfx: an electrifying possibility
rutabaga_gfx is a cross platform, Rust-based, Wayland and
Vulkan-centric Virtual Graphics Interface (VGI).
Apologies for the mega-change, but it was hard to do this piece
by piece.
The rationale for this change is:
1) Android graphics virtualization experts have been proposing
for a VGI for many months (years?). Their goal is to boot
Android anywhere, everywhere.
2) For the {wayland, cross-domain} context type prototype,
it's desirable to create a {wayland, camera} connection at the
appropriate time. Details can be found in the code, though the
RutabagaChannels have yet to be hooked up.
There's a high chance neither effort will work. As such,
rutabaga is just a prototype.
However, even (1) and (2) don't end up working, this
refactor/cleanup by itself makes a ton of sense.
Here's a summary of revelant changes:
* Removed auto-generated {p_defines, p_format, virgl_protocol}.
These files were added for tests when bringing up crosvm-gpu,
and AFAICT these tests are not run. There's actually now a
commit queue for virglrenderer changes and container boot tests
that provides excellent coverage.
* Removed command_buffer.rs. Used only for the previously
mentioned tests. It's quite nice, but couldn't determine the right
place to put it. Maybe data_model? But removed it in the interim.
* Removed {write_from_guest_memory, read_to_volatile}. The same
basic functionality has been moved into {transfer_write,
transfer_read} in Rutabaga.
* Removed VirtioResource, Virtio3DResource, Virtio2DResource,
and VirtioGfxStreamResource in favor of VirtioGpuResource and
RutabagaResource. This leads to less duplication and clearer
separation between external library functions and VMM functions.
* Moved display and hypervisor memory management functions to
virtio_gpu.rs. This is because external components do not interface
with this functionality, and there was a lot of duplication (for example
map/unmap blob).
* Added context management between gfxstream and virglrenderer.
* Added separate gfxstream and virglrenderer flags.
* Clearer naming.
* Added simple implementations for context init and multiple timelines.
These changes have no effect since all Google kernels don't pass the
revelant flags, but are useful for theoretical {wayland, cross-domain}
prototype.
* Unify RESOURCE_CREATE_3D and RESOURCE_CREATE_2D handling.
* Better error handling.
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=boot ARCVM
Change-Id: I240b0c134a3b562cbc65981837a41f6db7767c92
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2522452
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Zach Reizner <zachr@chromium.org>
2020-10-20 01:31:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rutabaga_gfx"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
2021-02-16 01:45:22 +00:00
|
|
|
"sync",
|
rutabaga_gfx: an electrifying possibility
rutabaga_gfx is a cross platform, Rust-based, Wayland and
Vulkan-centric Virtual Graphics Interface (VGI).
Apologies for the mega-change, but it was hard to do this piece
by piece.
The rationale for this change is:
1) Android graphics virtualization experts have been proposing
for a VGI for many months (years?). Their goal is to boot
Android anywhere, everywhere.
2) For the {wayland, cross-domain} context type prototype,
it's desirable to create a {wayland, camera} connection at the
appropriate time. Details can be found in the code, though the
RutabagaChannels have yet to be hooked up.
There's a high chance neither effort will work. As such,
rutabaga is just a prototype.
However, even (1) and (2) don't end up working, this
refactor/cleanup by itself makes a ton of sense.
Here's a summary of revelant changes:
* Removed auto-generated {p_defines, p_format, virgl_protocol}.
These files were added for tests when bringing up crosvm-gpu,
and AFAICT these tests are not run. There's actually now a
commit queue for virglrenderer changes and container boot tests
that provides excellent coverage.
* Removed command_buffer.rs. Used only for the previously
mentioned tests. It's quite nice, but couldn't determine the right
place to put it. Maybe data_model? But removed it in the interim.
* Removed {write_from_guest_memory, read_to_volatile}. The same
basic functionality has been moved into {transfer_write,
transfer_read} in Rutabaga.
* Removed VirtioResource, Virtio3DResource, Virtio2DResource,
and VirtioGfxStreamResource in favor of VirtioGpuResource and
RutabagaResource. This leads to less duplication and clearer
separation between external library functions and VMM functions.
* Moved display and hypervisor memory management functions to
virtio_gpu.rs. This is because external components do not interface
with this functionality, and there was a lot of duplication (for example
map/unmap blob).
* Added context management between gfxstream and virglrenderer.
* Added separate gfxstream and virglrenderer flags.
* Clearer naming.
* Added simple implementations for context init and multiple timelines.
These changes have no effect since all Google kernels don't pass the
revelant flags, but are useful for theoretical {wayland, cross-domain}
prototype.
* Unify RESOURCE_CREATE_3D and RESOURCE_CREATE_2D handling.
* Better error handling.
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=boot ARCVM
Change-Id: I240b0c134a3b562cbc65981837a41f6db7767c92
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2522452
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Zach Reizner <zachr@chromium.org>
2020-10-20 01:31:13 +00:00
|
|
|
]
|
|
|
|
|
2018-03-19 23:49:53 +00:00
|
|
|
[[package]]
|
2020-01-13 09:59:25 +00:00
|
|
|
name = "slab"
|
|
|
|
version = "0.4.2"
|
2018-03-19 23:49:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
|
2018-03-19 23:49:53 +00:00
|
|
|
|
2020-01-28 20:31:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2021-02-17 21:38:15 +00:00
|
|
|
version = "1.0.58"
|
2020-01-28 20:31:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-17 21:38:15 +00:00
|
|
|
checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
|
2020-01-28 20:31:15 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-xid",
|
2020-01-28 20:31:15 +00:00
|
|
|
]
|
|
|
|
|
2018-12-04 07:37:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sync"
|
|
|
|
version = "0.1.0"
|
|
|
|
|
2017-09-20 00:48:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sys_util"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"android_log-sys",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"poll_token_derive",
|
|
|
|
"sync",
|
|
|
|
"syscall_defines",
|
|
|
|
"tempfile",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "syscall_defines"
|
|
|
|
version = "0.1.0"
|
|
|
|
|
2018-01-17 01:35:27 +00:00
|
|
|
[[package]]
|
2019-04-11 00:59:15 +00:00
|
|
|
name = "tempfile"
|
|
|
|
version = "3.0.7"
|
2018-01-17 01:35:27 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"libc",
|
2018-01-17 01:35:27 +00:00
|
|
|
]
|
|
|
|
|
2020-09-17 01:21:58 +00:00
|
|
|
[[package]]
|
|
|
|
name = "thiserror"
|
|
|
|
version = "1.0.20"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
|
2020-09-17 01:21:58 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"thiserror-impl",
|
2020-09-17 01:21:58 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thiserror-impl"
|
|
|
|
version = "1.0.20"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
|
2020-09-17 01:21:58 +00:00
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2020-09-17 01:21:58 +00:00
|
|
|
]
|
|
|
|
|
2018-12-20 19:49:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tpm2"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"tpm2-sys",
|
2018-12-20 19:49:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tpm2-sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"num_cpus",
|
|
|
|
"pkg-config",
|
2018-12-20 19:49:46 +00:00
|
|
|
]
|
|
|
|
|
2019-01-18 12:00:36 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-width"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
|
2019-01-18 12:00:36 +00:00
|
|
|
|
2020-01-28 20:31:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-12-01 00:37:50 +00:00
|
|
|
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
|
2020-01-28 20:31:15 +00:00
|
|
|
|
2019-07-10 00:21:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "usb_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
2019-07-10 00:21:54 +00:00
|
|
|
]
|
|
|
|
|
2018-11-02 07:27:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "usb_util"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"assertions",
|
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"remain",
|
|
|
|
"usb_sys",
|
2018-11-02 07:27:48 +00:00
|
|
|
]
|
|
|
|
|
2019-04-23 09:14:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vfio_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
2019-04-23 09:14:43 +00:00
|
|
|
]
|
|
|
|
|
2017-09-20 00:48:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vhost"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"assertions",
|
|
|
|
"base",
|
|
|
|
"libc",
|
|
|
|
"net_util",
|
|
|
|
"virtio_sys",
|
|
|
|
"vm_memory",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "virtio_sys"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
2017-09-20 00:48:41 +00:00
|
|
|
]
|
|
|
|
|
2017-10-06 22:30:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vm_control"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"gdbstub",
|
|
|
|
"hypervisor",
|
|
|
|
"libc",
|
|
|
|
"msg_socket",
|
|
|
|
"resources",
|
rutabaga_gfx: rutabaga_gralloc: a shimmering beacon of hope
rutabaga_gralloc is a cross-platform, Rust-based buffer
manager.
The rationale for this change is:
1) For the {cross-domain, wayland} context type, we need to
have a good story for the crucial "wl-dmabuf" feature. As
minigbm has been thoroughly tested on ChromeOS and currently
powers the "wl-dmabuf" feature, it only makes sense for us to
have a path to minigbm for the cross-domain prototype. This
will be used by Sommelier.
2) While minigbm allocation works well on Chromebooks, it is
not sufficient for cross-platform purposes. For their Virtual
Graphics Interface (VGI) initiative, Android graphics
virtualization experts have expressed their desire for a Vulkan
based allocator. This will to go alongside cros_gralloc in
minigbm, which is considered by many to be the ""world's
premiere gralloc implementation".
3) Android graphics virtualization experts have expressed their
desire for vkMapMemory(..) to be used when crosvm is in
multi-process mode. Currently, only dma-buf mmap() is supported
for zero-copy blobs in multi-process mode. dma-buf mmap() is not
guaranteed to work on Nvidia (a "must have" for Cuttlefish) or
any other driver for that matter (we *make* it work for ChromeOS).
Possibly only solution: vkMapMemory ;-)
With these goals in mind, here's a summary of the revelant changes:
* Renamed the {gpu_allocator.rs, GpuMemoryAllocator trait} to be
{gralloc.rs, Gralloc trait}.
* Moved all GPU allocation out of the resources crate and into
the rutabaga_gfx crate. This will allow the resources crate to
be focused on managing resources for virtual machines.
* Moved the gpu_buffer crate into the gralloc module in the
rutabaga_gfx crate. The same functionality is now under
"minigbm.rs", "minigbm_bindings.rs" and "rendernode.rs"
* Added an optional dependency on vulkano.rs. vulkano.rs is a safe
Rust wrapper around the Vulkan api [a]. It's emphasis on type
safety makes a good fit for crosvm, though there are other high
quality crates out there (gfx-rs, ash.rs). Though development
has slowed down, it should satisfy goals (2) and (3) quite easily.
* Added a system_gralloc implementation based on memfd. This can be
used when minigbm or Vulkano features are not used, to replicate the
highly useful "wl-shm" feature in Sommelier. Astute observers will
note this can also enable seamless Wayland windowing without GPU
features for Android too. Some minor changes to the base crate were
needed.
* Cut down on the amount of DrmFormats to the subset needed by
Sommelier and cros_gralloc.
* Moved checked arithmetic into it's own file.
* Internally renamed to "wl-dmabuf" feature to be the "minigbm"
feature. This is because "wl-dmabuf" has a dependency on minigbm.
* Small rutabaga_gfx cleanups
[a] https://github.com/vulkano-rs/vulkano/blob/master/DESIGN.md
BUG=b:146066070, b:173630595, b:150239451
TEST=launch virtual machine with 2D mode
TEST=launch virtual machine with 3D mode
TEST=run sommelier with "wl-dmabuf" and "wl-shm"
Change-Id: I693a39cef64cd98e56d843d3c60caa7983d4d6e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2626487
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
2020-12-09 18:44:13 +00:00
|
|
|
"rutabaga_gfx",
|
2020-12-01 00:37:50 +00:00
|
|
|
"sync",
|
|
|
|
"vm_memory",
|
2020-07-21 03:21:11 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "vm_memory"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"base",
|
|
|
|
"cros_async",
|
|
|
|
"data_model",
|
|
|
|
"libc",
|
|
|
|
"syscall_defines",
|
2018-01-18 21:39:51 +00:00
|
|
|
]
|
|
|
|
|
2018-03-19 23:49:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wire_format_derive"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn",
|
2018-03-19 23:49:53 +00:00
|
|
|
]
|
|
|
|
|
2018-01-18 21:39:51 +00:00
|
|
|
[[package]]
|
|
|
|
name = "x86_64"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
2020-12-01 00:37:50 +00:00
|
|
|
"acpi_tables",
|
|
|
|
"arch",
|
|
|
|
"assertions",
|
|
|
|
"base",
|
|
|
|
"data_model",
|
|
|
|
"devices",
|
|
|
|
"gdbstub",
|
|
|
|
"hypervisor",
|
|
|
|
"kernel_cmdline",
|
|
|
|
"kernel_loader",
|
|
|
|
"libc",
|
|
|
|
"minijail",
|
|
|
|
"msg_socket",
|
|
|
|
"remain",
|
|
|
|
"resources",
|
|
|
|
"sync",
|
|
|
|
"vm_control",
|
|
|
|
"vm_memory",
|
|
|
|
]
|