Home
last modified time | relevance | path

Searched +full:add +full:- +full:device (Results 1 – 25 of 45) sorted by relevance

12

/cloud-hypervisor/docs/
H A Dhotplug.md8 or by using this kernel patch (available in 5.5-rc1 and later): https://git.kernel.org/pub/scm/linu…
12 Extra vCPUs can be added and removed from a running `cloud-hypervisor` instance. This is controlled…
21 $ sudo setcap cap_net_admin+ep ./cloud-hypervisor/target/release/cloud-hypervisor
22 $ ./cloud-hypervisor/target/release/cloud-hypervisor \
23 --kernel custom-vmlinux.bin \
24 --cmdline "console=ttyS0 console=hvc0 root=/dev/vda1 rw" \
25 --disk path=focal-server-cloudimg-amd64.raw \
26 --cpus boot=4,max=8 \
27 --memory size=1024M \
28 --net "tap=,mac=,ip=,mask=" \
[all …]
H A Dapi.md1 - [Cloud Hypervisor API](#cloud-hypervisor-api)
2 - [External API](#external-api)
3 - [REST API](#rest-api)
4 - [REST API Location and availability](#rest-api-location-and-availability)
5 - [REST API Endpoints](#rest-api-endpoints)
6 - [Virtual Machine Manager (VMM) Actions](#virtual-machine-manager-vmm-actions)
7 - [Virtual Machine (VM) Actions](#virtual-machine-vm-actions)
8 - [REST API Examples](#rest-api-examples)
9 - [Create a Virtual Machine](#create-a-virtual-machine)
10 - [Boot a Virtual Machine](#boot-a-virtual-machine)
[all …]
H A Dvhost-user-net-testing.md1 # How to test Vhost-user net with OpenVSwitch/DPDK
3 The purpose of this document is to illustrate how to test vhost-user-net
4 in cloud-hypervisor with OVS/DPDK as the backend. This document was
10 …date the communication between two virtual machine, connecting them to vhost-user ports respective…
12 … +----+----------+ +-------------+-----------+-------------+ +----------+----+
14 … | |vhost-user|----------| vhost-user | ovs | vhost-user |----------|vhost-user| |
15 … | |net device| | port 1 | | port 2 | |net device| |
17 … | +----------+ +-------------+-----------+-------------+ +----------+ |
21 …+--+---------------------------------------------------------------------------------------------+
23 …| +---------------------------------------------------------------------------------------------+…
[all …]
H A Dwindows.md3 Starting with the release version [0.10.0](https://github.com/cloud-hypervisor/cloud-hypervisor/rel…
7 - Host with KVM enabled
8 - [UEFI](uefi.md) capable Windows guest image with Virtio drivers integrated
22 - QEMU, version >=5.0.0 is recommended.
23 - Windows installation ISO. Obtained through MSDN, Visual Studio subscription, evaluation center, e…
24 - [VirtIO driver ISO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virti…
25 - Suitable firmware for Cloud Hypervisor (`CLOUDHV.fd`) and for QEMU (`OVMF.fd`)
26 - With the suggested image size of 30G, there should be enough free disk space to hold the installa…
33 IMG_FILE=windows-disk.raw
35 VIRTIO_ISO_FILE=virtio-win-0.1.185.iso
[all …]
H A Dmacvtap-bridge.md3 Cloud Hypervisor supports using a MACVTAP device which is derived from a MACVLAN. Full details of c…
12 sudo ip link add link "$host_net" name macvtap0 type macvtap
16 # A new character device is created for this interface
20 # Ensure that we can access this device
23 # Use --net fd=3 to point to fd 3 which the shell has opened to point to the /dev/tapN device
24 target/debug/cloud-hypervisor \
25 --kernel ~/src/linux/vmlinux \
26 --disk path=~/workloads/focal.raw \
27 --cpus boot=1 --memory size=512M \
28 --cmdline "root=/dev/vda1 console=hvc0" \
[all …]
H A Dvdpa.md3 vDPA aims at achieving bare-metal performance for devices passed into a virtual
8 the VIRTIO specification on their data-path, while the control path is vendor
11 vDPA framework, being exposed through the vhost interface as a vhost-vdpa
12 device.
14 Because DMA accesses between device and guest are going through virtqueues,
15 migration can be achieved without requiring device's driver to implement any
18 must be done for each and every device's driver.
20 The official [website](https://vdpa-dev.gitlab.io/) contains some extensive
25 `VdpaConfig` (known as `--vdpa` from the CLI perspective) contains the list of
26 parameters available for the vDPA device.
[all …]
H A Dvfio-user.md1 # Cloud Hypervisor VFIO-user HOWTO
3-user is an *experimental* protocol for allowing devices to be implemented in another process and …
5 The protocol is documented here: https://github.com/nutanix/libvfio-user/blob/master/docs/vfio-user…
7 …*. Not all Cloud Hypervisor functionality is supported in particular: virtio-mem and iommu are not…
11--user-device socket=<path>` parameter is used to create a vfio-user device when creating the VM s…
13 ## Example (GPIO device)
15 There is a simple GPIO device included in the libvfio-user repository: https://github.com/nutanix/l…
17 Run the example from the libvfio-user repository:
20 rm /tmp/vfio-user.sock
21 ./build/dbg/samples/gpio-pci-idio-16 -v /tmp/vfio-user.sock &
[all …]
H A Dvfio.md3 VFIO (Virtual Function I/O) is a kernel framework that exposes direct device
4 access to userspace. `cloud-hypervisor`, as many VMMs do, uses the VFIO
7 ## Direct Device Assignment with Cloud Hypervisor
9 To assign a device to a `cloud-hypervisor` guest, the device needs to be managed
10 by the VFIO kernel drivers. However, by default, a host device will be bound to
13 As a consequence, a device must be unbound from its native driver before passing
14 it to `cloud-hypervisor` for assigning it to a guest.
21 `cloud-hypervisor` only supports assigning PCI devices to its guests. `lspci`
31 Here we see that our device is on bus 1, slot 0 and function 0 (`01:00.0`).
33 Now that we have identified the device, we must unbind it from its native driver
[all …]
H A Diommu.md17 With a virtual IOMMU, the VMM stands between the guest driver and its device
32 device implementation from the host VMM to access the entire guest L1 memory.
34 addresses the device is authorized to access.
50 ## Why virtio-iommu?
52 The Cloud Hypervisor project decided to implement the brand new virtio-iommu
53 device in order to provide a virtual IOMMU to its users. The reason being the
59 ## Pre-requisites
63 As of Kernel 5.14, virtio-iommu is available for both X86-64 and Aarch64.
68 virtio-iommu device and expose it through the ACPI IORT table. This can be
69 simply achieved by attaching at least one device to the virtual IOMMU.
[all …]
H A Dvirtiofs-root.md3 A quick guide for using virtiofs as a cloud-hypervisor guest's rootfs (i.e.
4 with no root block device). This document is a quick getting started guide.
13 * Part of the qemu-system-common package on Ubuntu
14 * Part of the qemu-common package on Fedora
15 2. cloud-hypervisor - the newer the better, but I tested with 0.12
16 3. a rootfs - This howto uses an alpine rootfs available here:
17 …* https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-minirootfs-3.13.2-x86_64.tar.…
26 sudo tar -xf /path/to/alpine-minirootfs-3.13.1-x86_64.tar.gz
32 sudo chroot $PWD apk add openrc busybox-initscripts
33 # we are using the paravirt console in cloud-hypervisor, so enable it in init
[all …]
/cloud-hypervisor/src/bin/
H A Dch-remote.rs3 // SPDX-License-Identifier: Apache-2.0
46 #[error("Error parsing device syntax")]
56 #[error("Error parsing user device syntax")]
58 #[error("Error parsing vDPA device syntax")]
79 fn vmm_ping(&self) -> zbus::Result<String>; in vmm_ping()
80 fn vmm_shutdown(&self) -> zbus::Result<()>; in vmm_shutdown()
81 fn vm_add_device(&self, device_config: &str) -> zbus::Result<Optional<String>>; in vm_add_device()
82 fn vm_add_disk(&self, disk_config: &str) -> zbus::Result<Optional<String>>; in vm_add_disk()
83 fn vm_add_fs(&self, fs_config: &str) -> zbus::Result<Optional<String>>; in vm_add_fs()
84 fn vm_add_net(&self, net_config: &str) -> zbus::Result<Optional<String>>; in vm_add_net()
[all …]
/cloud-hypervisor/vmm/src/api/openapi/
H A Dcloud-hypervisor.yaml4 description: Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
7 url: http://www.apache.org/licenses/LICENSE-2.0.html
11 - url: http://localhost/api/v1
27 summary: Shuts the cloud-hypervisor VMM.
35 summary: Returns general information about the cloud-hypervisor Virtual Machine (VM) instance.
57 …summary: Create the cloud-hypervisor Virtual Machine (VM) instance. The instance is not booted, on…
72 summary: Delete the cloud-hypervisor Virtual Machine (VM) instance.
136 /vm.power-button:
139 operationId: power-buttonVM
166 /vm.resize-zone:
[all …]
/cloud-hypervisor/vmm/src/
H A Dconfig.rs3 // SPDX-License-Identifier: Apache-2.0
32 #[error("Error parsing --fs: tag missing")]
35 #[error("Error parsing --fs: max tag length is {VIRTIO_FS_TAG_LEN}")]
38 #[error("Error parsing --fs: socket missing")]
41 #[error("Error parsing --pmem: file missing")]
44 #[error("Error parsing --vsock: socket missing")]
47 #[error("Error parsing --vsock: cid missing")]
50 #[error("Error parsing --restore: source_url missing")]
53 #[error("Error parsing --cpus")]
56 #[error("Invalid feature in --cpus features list: {0}")]
[all …]
H A Ddevice_manager.rs4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE-BSD-3-Clause file.
9 // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
148 const VIRTIO_PCI_DEVICE_NAME_PREFIX: &str = "_virtio-pci";
150 /// Errors associated with device manager
161 /// Cannot create vhost-user-net device
162 #[error("Cannot create vhost-user-net device")]
165 /// Cannot create virtio-blk device
166 #[error("Cannot create virtio-blk device")]
169 /// Cannot create virtio-net device
[all …]
H A Dmemory_manager.rs3 // SPDX-License-Identifier: Apache-2.0
66 const SNAPSHOT_FILENAME: &str = "memory-ranges";
104 pub fn region(&self) -> &Arc<GuestRegionMmap> { in region()
110 pub fn hotplugged_size(&self) -> u64 { in hotplugged_size()
113 pub fn hugepages(&self) -> bool { in hugepages()
116 pub fn blocks_state(&self) -> &Arc<Mutex<BlocksState>> { in blocks_state()
119 pub fn plugged_ranges(&self) -> MemoryRangeTable { in plugged_ranges()
134 pub fn regions(&self) -> &Vec<Arc<GuestRegionMmap>> { in regions()
137 pub fn virtio_mem_zone(&self) -> &Option<VirtioMemZone> { in virtio_mem_zone()
140 pub fn virtio_mem_zone_mut(&mut self) -> Option<&mut VirtioMemZone> { in virtio_mem_zone_mut()
[all …]
/cloud-hypervisor/vhost_user_net/src/
H A Dlib.rs7 // SPDX-License-Identifier: (Apache-2.0 AND BSD-3-Clause)
54 /// Failed to open tap device.
55 #[error("Failed to open tap device")]
68 pub const SYNTAX: &str = "vhost-user-net backend parameters \
73 fn from(e: Error) -> Self { in from()
84 /// Create a new virtio network device with the given TAP interface.
85 fn new(tap: Tap) -> Result<Self> { in new()
131 ) -> Result<Self> { in new()
165 fn num_queues(&self) -> usize { in num_queues()
169 fn max_queue_size(&self) -> usize { in max_queue_size()
[all …]
/cloud-hypervisor/pci/src/
H A Dbus.rs2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE-BSD-3-Clause file.
5 // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
19 use crate::device::{BarReprogrammingParams, DeviceRelocation, Error as PciDeviceError, PciDevice};
26 /// Errors for device manager.
29 /// Could not allocate device address space for the device.
30 #[error("Could not allocate device address space for the device")]
35 /// Could not add a device to the port io bus.
36 #[error("Could not add a device to the port io bus")]
38 /// Could not add a device to the mmio bus.
[all …]
/cloud-hypervisor/vmm/src/api/http/
H A Dmod.rs3 // SPDX-License-Identifier: Apache-2.0
75 /// The error message contained in the response is supposed to be user-facing,
78 pub fn error_response(error: HttpError, status: StatusCode) -> Response { in error_response()
85 // See <https://github.com/rust-lang/rust/issues/141673> in error_response()
112 ) -> Response { in handle_request()
149 ) -> std::result::Result<Option<Body>, HttpError> { in put_handler()
158 ) -> std::result::Result<Option<Body>, HttpError> { in get_handler()
175 /// HTTP_ROUTES contain all the cloud-hypervisor HTTP routes.
182 endpoint!("/vm.add-device"),
186 endpoint!("/vm.add-user-device"),
[all …]
/cloud-hypervisor/tests/
H A Dintegration.rs3 // SPDX-License-Identifier: Apache-2.0
7 // hence have known dead-code. This annotation silences dead-code
36 pub const FOCAL_IMAGE_NAME: &str = "focal-server-cloudimg-amd64-custom-20210609-0.raw";
38 "jammy-server-cloudimg-amd64-custom-vfio-20241012-0.raw";
39 pub const FOCAL_IMAGE_NAME_QCOW2: &str = "focal-server-cloudimg-amd64-custom-20210609-0.qcow2";
41 "focal-server-cloudimg-amd64-custom-20210609-0-backing.qcow2";
42 pub const FOCAL_IMAGE_NAME_VHD: &str = "focal-server-cloudimg-amd64-custom-20210609-0.vhd";
43 pub const FOCAL_IMAGE_NAME_VHDX: &str = "focal-server-cloudimg-amd64-custom-20210609-0.vhdx";
44 pub const JAMMY_IMAGE_NAME: &str = "jammy-server-cloudimg-amd64-custom-20241017-0.raw";
45 pub const WINDOWS_IMAGE_NAME: &str = "windows-server-2022-amd64-2.raw";
[all …]
/cloud-hypervisor/
H A Drelease-notes.md1 - [v46.0](#v460)
2 - [File-level Locking Support with `--disk`](#file-level-locking-support-with---disk)
3 - [Improved Error Reporting with VM Resizing](#improved-error-reporting-with-vm-resizing)
4 - [IPv6 Address Support with `--net`](#ipv6-address-support-with---net)
5- [Experimental AArch64 Support with the MSHV Hypervisor](#experimental-aarch64-support-with-the-m…
6 - [Deprecated SGX Support](#deprecated-sgx-support)
7 - [Notable Bug Fixes](#notable-bug-fixes)
8 - [Contributors](#contributors)
9 - [v45.0](#v450)
10 - [Experimental `riscv64` Architecture Support](#experimental-riscv64-architecture-support)
[all …]
/cloud-hypervisor/vhost_user_block/src/
H A Dlib.rs9 // SPDX-License-Identifier: (Apache-2.0 AND BSD-3-Clause)
45 // Polling for 50us should be enough to cover for the device latency
78 pub const SYNTAX: &str = "vhost-user-block backend parameters \
84 fn from(e: Error) -> Self { in from()
106 ) -> Result<Self> { in new()
121 ) -> bool { in process_queue()
213 ) -> Result<Self> { in new()
237 seg_max: 128 - 2, in new()
300 fn num_queues(&self) -> usize { in num_queues()
304 fn max_queue_size(&self) -> usize { in max_queue_size()
[all …]
/cloud-hypervisor/fuzz/fuzz_targets/
H A Dmem.rs3 // SPDX-License-Identifier: Apache-2.0
29 // The size of the guest memory for the virtio-mem region
31 // The start address of the virtio-mem region in the guest memory
57 // Virtio-queue size in bytes
58 const QUEUE_BYTES_SIZE: usize = (USED_RING_ADDR + USED_RING_SIZE - DESC_TABLE_ADDR) as usize;
60 fuzz_target!(|bytes: &[u8]| -> Corpus {
73 // Create a virtio-mem device based on the input bytes;
91 // Add the memory region for the virtio-mem device
104 // Kick the 'queue' event before activate the virtio-mem device
115 // Wait for the events to finish and virtio-mem device worker thread to return
[all …]
/cloud-hypervisor/arch/src/aarch64/
H A Dfdt.rs3 // SPDX-License-Identifier: Apache-2.0
6 // Use of this source code is governed by a BSD-style license that can be
7 // found in the THIRD-PARTY file.
41 // This is a value for virtio-iommu. Now only one virtio-iommu device is supported.
57 // https://www.kernel.org/doc/Documentation/devicetree/bindings/interrupt-controller/arm%2Cgic.txt
62 // From https://elixir.bootlin.com/linux/v4.9.62/source/include/dt-bindings/interrupt-controller/ir…
70 /// Trait for devices to be added to the Flattened Device Tree.
72 /// Returns the address where this device will be loaded.
73 fn addr(&self) -> u64; in addr()
74 /// Returns the associated interrupt for this device.
[all …]
/cloud-hypervisor/virtio-devices/src/
H A Dlib.rs4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE-BSD-3-Clause file.
9 // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
24 mod device; module
49 pub use self::device::{
88 #[error("Failed to activate virtio device")]
94 #[error("Failed to setup vhost-user-fs daemon")]
96 #[error("Failed to setup vhost-user daemon")]
102 #[error("Failed to activate the vDPA device")]
116 #[error("Failed to update memory vhost-user")]
[all …]
/cloud-hypervisor/virtio-devices/src/transport/
H A Dpci_device.rs2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE-BSD-3-Clause file.
7 // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
52 Device = 4, enumerator
78 fn bytes(&self) -> &[u8] { in bytes()
82 fn id(&self) -> PciCapabilityId { in id()
90 pub fn new(cfg_type: PciCapabilityType, pci_bar: u8, offset: u32, length: u32) -> Self { in new()
114 fn bytes(&self) -> &[u8] { in bytes()
118 fn id(&self) -> PciCapabilityId { in id()
130 ) -> Self { in new()
[all …]

12