patches and low-level development discussion
 help / color / mirror / code / Atom feed
blob 82c7b249ee1ae4cd27b787cd40beb752e377a5d9 7677 bytes (raw)
name: Documentation/software/cloud-hypervisor/index.html 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
 
---
layout: page
title: Cloud Hypervisor with virtio-gpu support
---
<!-- SPDX-FileCopyrightText: 2019-2020, 2022, 2024 Alyssa Ross <hi@alyssa.is> -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later -->
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->

<p>
This is a patchset for <a href="https://cloudhypervisor.org/">Cloud
Hypervisor</a> support providing a virtio-gpu device to guests,
using <a href="https://crosvm.dev/">crosvm</a>’s virtio-gpu
implementation
over <a href="https://www.qemu.org/docs/master/interop/vhost-user.html">vhost-user</a>.

<p>
If this patchset is useful to you, please consider donating to support
its continued development via
either <a href="https://github.com/sponsors/alyssais">GitHub
Sponsors</a> or <a href="https://liberapay.com/qyliss">LiberaPay</a>.

<p>
The patches as developed as part of <a href="../..">Spectrum</a>, a
compartmentalized desktop operating system project.

<h2>Building</h2>

<ol>
  <li>
  Clone the repository
  for <a href="https://github.com/cloud-hypervisor/cloud-hypervisor">Cloud
  Hypervisor</a>.

  <li>
  Download and apply the patchset for the correct version of Cloud
  Hypervisor.

  <li>
  Use <code>cargo build</code> in the Cloud Hypervisor source tree as
  normal.
</ol>

<h2>Usage example</h2>

Start the crosvm GPU device:

<pre><code>crosvm device gpu --socket-path gpu.sock</code></pre>

Connect to the GPU device with cloud-hypervisor:

<pre><code>cloud-hypervisor --generic-vhost-user virtio_id=gpu,socket=gpu.sock,queue_sizes='[16,256]' …</code></pre>

<h2>Downloads</h2>

<ol reversed style="list-style-type: none; padding-left: 0;">
  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-50.0-spectrum0-patches.tar.gz">cloud-hypervisor-50.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/18bc84d003e04108d973a5233f0c6f3b2039d756">18bc84d00</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-49.0-spectrum0-patches.tar.gz">cloud-hypervisor-49.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/f6de423867b914a59d86c54d102831bccc7ed2c8">f6de42386</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-48.0-spectrum0-patches.tar.gz">cloud-hypervisor-48.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/3202c663eaa555678bd142320d51c63acce266bc">3202c663e</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-47.0-spectrum0-patches.tar.gz">cloud-hypervisor-47.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/940eaae7246300bb01e1efb8c3d21ea93e0e63cd">940eaae72</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-46.0-spectrum0-patches.tar.gz">cloud-hypervisor-46.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/581ccb06d726b037fd75f64ef964b3d0eb989e33">581ccb06d</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-45.0-spectrum0-patches.tar.gz">cloud-hypervisor-45.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/6b75e831de4d5f44a362142d25b77d9c4d7988aa">6b75e831d</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-44.0-spectrum0-patches.tar.gz">cloud-hypervisor-44.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/d8e0f16c287b962505c8746c3be08323492186c9">d8e0f16c2</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-43.0-spectrum0-patches.tar.gz">cloud-hypervisor-43.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/9d42f918373f962b7d035ff52a1629e184cb496e">9d42f9183</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-42.0-spectrum0-patches.tar.gz">cloud-hypervisor-42.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/b7fd753b43baf2da422a1fe5e2c6d05180f7cd0b">b7fd753b4</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-40.0-spectrum0-patches.tar.gz">cloud-hypervisor-40.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/6a7ff1ecb7fad6820d3bbfe8b11e65854059aba5">6a7ff1ecb</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-39.0-spectrum1-patches.tar.gz">cloud-hypervisor-39.0-spectrum1-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/bc2900b9ccbdf37b780a63888ca94437fd7dd6af">bc2900b9c</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-39.0-spectrum0-patches.tar.gz">cloud-hypervisor-39.0-spectrum0-patches.tar.gz</a>
  (tested with crosvm <a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/7c75ad6185893b4cc26676b6a0eb9fbdf9ed5b72">7c75ad618</a>)

  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-38.0-spectrum0-patches.tar.xz">cloud-hypervisor-38.0-spectrum0-patches.tar.xz</a>
  <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-37.0-spectrum0-patches.tar.xz">cloud-hypervisor-37.0-spectrum0-patches.tar.xz</a>
</ol>

<h2>Contributing</h2>

<p>
The patches are maintained
in <a href="https://spectrum-os.org/git/spectrum">Spectrum’s git
repository</a>.  Please refer to the documentation
for <a href="/doc/contributing/">contributing to Spectrum</a>.

<h2>Can these patches be upstreamed?</h2>

<p>
I don’t think so.  The Cloud Hypervisor developers
are <a href="https://github.com/cloud-hypervisor/cloud-hypervisor/issues/3212#issuecomment-937823742">not
very interested</a> in GPU support — although perhaps an
implementation that was just a vfio-user frontend implementation,
deletaging all of the complexity of rendering, input handling, etc. to
another process would be light enough to overcome that — but on top of
that, communicating with crosvm’s GPU device requires using
non-standard commands that are not part of
the <a href="https://www.qemu.org/docs/master/interop/vhost-user.html">vhost-user
specification</a>.

<p>
It’s possible that, in future, it might be possible to use an external
virtual GPU device with an unmodified Cloud Hypervisor
using <a href="https://spdk.io/news/2021/05/04/vfio-user/">vfio-user</a>
or <a href="https://lore.kernel.org/qemu-devel/20230901110018.3704459-1-alex.bennee@linaro.org/"><code>VHOST_USER_PROTOCOL_F_PROBE</code></a>,
or that at least the custom vhost-user commands could be standardized.

<p>
Other Cloud Hypervisor work is
regularly <a href="https://github.com/cloud-hypervisor/cloud-hypervisor/commits?author=alyssais">upstreamed</a>
as part of the Spectrum project.

<h2>Bug reports and other questions</h2>

<p>
Bug reports for and other questions about the patchset are welcome!
You can send mail to
the <a href="mailto:discuss@spectrum-os.org">discuss@spectrum-os.org</a>
<a href="/doc/contributing/communication.html#mailing-lists">mailing
list</a>, or ask in the
Spectrum <a href="/doc/contributing/communication.html#chat">Matrix
chat</a>.

debug log:

solving 82c7b24 ...
found 82c7b24 in https://inbox.spectrum-os.org/spectrum-devel/20260708154315.678807-2-hi@alyssa.is/
found 399b5e5 in https://spectrum-os.org/git/spectrum
preparing index
index prepared:
100644 399b5e5b752174806900e7043bf46e63e4d3af7b	Documentation/software/cloud-hypervisor/index.html

applying [1/1] https://inbox.spectrum-os.org/spectrum-devel/20260708154315.678807-2-hi@alyssa.is/
diff --git a/Documentation/software/cloud-hypervisor/index.html b/Documentation/software/cloud-hypervisor/index.html
index 399b5e5..82c7b24 100644

Checking patch Documentation/software/cloud-hypervisor/index.html...
Applied patch Documentation/software/cloud-hypervisor/index.html cleanly.

index at:
100644 82c7b249ee1ae4cd27b787cd40beb752e377a5d9	Documentation/software/cloud-hypervisor/index.html

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).